日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

BZOJ 1692: [Usaco2007 Dec]队列变换( 贪心 )

發(fā)布時(shí)間:2023/12/13 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ 1692: [Usaco2007 Dec]队列变换( 贪心 ) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)據(jù) n <= 30000 , 然后 O( n2 ) 的貪心也過(guò)了..... USACO 數(shù)據(jù)是有多弱啊 = =

( ps : BZOJ 1640 和此題一模一樣 , 雙倍經(jīng)驗(yàn) )?

--------------------------------------------------------------------------------------

#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#define rep( i , n ) for( int i = 0 ; ?i < n ; ++i )#define clr( x , c ) memset( x , c , sizeof( x ) )using namespace std;const int maxn = 30000 + 5;char seq[ maxn ];char ans[ maxn ];int n;int cur = 0;void Read() {cin >> n;rep( i , n ) {char c = getchar();while( ! isupper( c ) ) ? ?c = getchar();seq[ i ] = c;}}bool cmp( int l , int r ) {while( l < r && seq[ l ] == seq[ r ] )? ? ?l++ , r--;return seq[ l ] < seq[ r ];}void print() {rep( i , cur ) {putchar( ans[ i ] );if( ! ( ( i + 1 ) % 80 ) ) ? ?printf( "\n" );}}int main() {Read();int L = 0 , R = n - 1;while( n-- )ans[ cur++ ] = cmp( L , R ) ? seq[ L++ ] : seq[ R-- ];print();return 0;}

?

--------------------------------------------------------------------------------------?

?

1692: [Usaco2007 Dec]隊(duì)列變換

Time Limit:?5 Sec??Memory Limit:?64 MB
Submit:?812??Solved:?330
[Submit][Status][Discuss]

Description

FJ打算帶他的N(1 <= N <= 30,000)頭奶牛去參加一年一度的“全美農(nóng)場(chǎng)主大獎(jiǎng)賽”。在這場(chǎng)比賽中,每個(gè)參賽者都必須讓他的奶牛排成一列,然后領(lǐng)她們從裁判席前依次走過(guò)。 今年,競(jìng)賽委員會(huì)在接受隊(duì)伍報(bào)名時(shí),采用了一種新的登記規(guī)則:他們把所有隊(duì)伍中奶牛名字的首字母取出,按它們對(duì)應(yīng)奶牛在隊(duì)伍中的次序排成一列(比如說(shuō),如果FJ帶去的奶牛依次為Bessie、Sylvia、Dora,登記人員就把這支隊(duì)伍登記為BSD)。登記結(jié)束后,組委會(huì)將所有隊(duì)伍的登記名稱按字典序升序排列,就得到了他們的出場(chǎng)順序。 FJ最近有一大堆事情,因此他不打算在這個(gè)比賽上浪費(fèi)過(guò)多的時(shí)間,也就是說(shuō),他想盡可能早地出場(chǎng)。于是,他打算把奶牛們預(yù)先設(shè)計(jì)好的隊(duì)型重新調(diào)整一下。 FJ的調(diào)整方法是這樣的:每次,他在原來(lái)隊(duì)列的首端或是尾端牽出一頭奶牛,把她安排到新隊(duì)列的尾部,然后對(duì)剩余的奶牛隊(duì)列重復(fù)以上的操作,直到所有奶牛都被插到了新的隊(duì)列里。這樣得到的隊(duì)列,就是FJ拉去登記的最終的奶牛隊(duì)列。 接下來(lái)的事情就交給你了:對(duì)于給定的奶牛們的初始位置,計(jì)算出按照FJ的調(diào)整規(guī)則所可能得到的字典序最小的隊(duì)列。

Input

* 第1行: 一個(gè)整數(shù):N

* 第2..N+1行: 第i+1行僅有1個(gè)'A'..'Z'中的字母,表示隊(duì)列中從前往后數(shù)第i 頭奶牛名字的首字母

Output

* 第1..??行: 輸出FJ所能得到的字典序最小的隊(duì)列。每行(除了最后一行)輸 出恰好80個(gè)'A'..'Z'中的字母,表示新隊(duì)列中每頭奶牛姓名的首 字母

Sample Input

6
A
C
D
B
C
B

輸入說(shuō)明:

FJ有6頭順次排好隊(duì)的奶牛:ACDBCB

Sample Output

ABCBCD

輸出說(shuō)明:

操作數(shù) 原隊(duì)列 新隊(duì)列
#1 ACDBCB
#2 CDBCB A
#3 CDBC AB
#4 CDB ABC
#5 CD ABCB
#6 D ABCBC
#7 ABCBCD

HINT

Source

Gold

?

轉(zhuǎn)載于:https://www.cnblogs.com/JSZX11556/p/4556546.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的BZOJ 1692: [Usaco2007 Dec]队列变换( 贪心 )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。