hdu 模拟 贪心 4550
生活随笔
收集整理的這篇文章主要介紹了
hdu 模拟 贪心 4550
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
卡片游戲Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 1704 Accepted Submission(s): 500Problem Description小明最近宅在家里無聊,于是他發(fā)明了一種有趣的游戲,游戲道具是N張疊在一起的卡片,每張卡片上都有一個數(shù)字,數(shù)字的范圍是0~9,游戲規(guī)則如下:首先取最上方的卡片放到桌子上,然后每次取最上方的卡片,放到桌子上已有卡片序列的最右邊或者最左邊。當(dāng)N張卡片全部都放到桌子上后,桌子上的N張卡片構(gòu)成了一個數(shù)。這個數(shù)不能有前導(dǎo)0,也就是說最左邊的卡片上的數(shù)字不能是0。游戲的目標(biāo)是使這個數(shù)最小。現(xiàn)在你的任務(wù)是幫小明寫段程序,求出這個最小數(shù)。Input
第一行是一個數(shù)T,表示有T組測試數(shù)據(jù);
然后下面有T行, 每行是一個只含有0~9的字符串,表示N張疊在一起的卡片,最左邊的數(shù)字表示最上方的卡片。[Technical Specification]
T<=1000
1 <= N <= 100Output
對于每組測試數(shù)據(jù),請在一行內(nèi)輸出能得到的最小數(shù)。Sample Input
3
565
9876543210
9876105432Sample Output
556
1234567890
1678905432Source
2013金山西山居創(chuàng)意游戲程序挑戰(zhàn)賽——初賽(2)Recommend
liuyiding | We have carefully selected several similar problems for you: 5634 5633 5632 5631 5630
1 /* 2 分析 : 給你的一串?dāng)?shù)字中 大致 分為兩種情況 1 : 有 0 2: 無 0 3 之所以 有這兩種情況是因為 0 不能放在開頭 4 現(xiàn)在 考慮一下 這兩種情況 能不能盡量的合并處理 應(yīng)該能 5 */ 6 //找到 所給的 數(shù)字鐘最靠后并且最小(第一次的時候,不能是0)數(shù)字,這個數(shù)字就放在 開頭 這個數(shù)字后面跟隨的數(shù)字就放在最末位 , 7 // 然后 除了這幾個數(shù)字 剩下的前面的數(shù)字也執(zhí)行此操作(這次 最小的數(shù)字 可以是0 )然后 放到上一次 排列數(shù)字的中間 8 #include<cstdio> 9 #include<cstring> 10 #include<algorithm> 11 using namespace std; 12 int main() 13 { 14 char a[111]; 15 int b[111],i,j,q,m,n,l,miin,address,c[111],begin,end; //begin 和 end 分別代表著 最后隊列里 還未填充 部分的 開始 和結(jié)束 16 scanf("%d",&n); 17 while(n--) 18 { 19 scanf("%s",a); 20 l=strlen(a); 21 for(miin=1000,i=0;i<l;i++) 22 { 23 b[i]=a[i]-'0'; 24 } 25 q=begin=0; 26 address=10; 27 while(address) 28 { 29 for(i=0;i<l;i++) 30 { 31 if(b[i]==11) 32 break; 33 if(q==0) 34 { 35 if(miin>=b[i]&&b[i]!=0) 36 { 37 address=i; //找到最后一個最小且不等零的數(shù)字的 地址 38 miin=b[i]; 39 } 40 } 41 else 42 if(miin>=b[i]) 43 { 44 address=i; 45 miin=b[i]; 46 } 47 } 48 miin=1000; 49 q++; 50 c[begin++]=b[address]; 51 b[address]=11; 52 } 53 for(i=0;i<begin;i++) 54 printf("%d",c[i]); 55 for(i=0;i<l;i++) 56 { 57 if(b[i]!=11) 58 printf("%d",b[i]); 59 } 60 printf("\n"); 61 memset(a,'0',sizeof(a)); 62 } 63 }
?
轉(zhuǎn)載于:https://www.cnblogs.com/A-FM/p/5222933.html
總結(jié)
以上是生活随笔為你收集整理的hdu 模拟 贪心 4550的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Zabbix监控ZooKeeper服
- 下一篇: mac OS X中升级php5.5至ph