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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nyoj905 卡片游戏

發布時間:2025/3/17 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nyoj905 卡片游戏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

卡片游戲

時間限制:1000 ms ?|? 內存限制:65535 KB 難度:1 描述
小明最近宅在家里無聊,于是他發明了一種有趣的游戲,游戲道具是N張疊在一起的卡片,每張卡片上都有一個數字,數字的范圍是0~9,游戲規則如下:
  首先取最上方的卡片放到桌子上,然后每次取最上方的卡片,放到桌子上已有卡片序列的最右邊或者最左邊。當N張卡片全部都放到桌子上后,桌子上的N張卡片構成了一個數。這個數不能有前導0,也就是說最左邊的卡片上的數字不能是0。游戲的目標是使這個數最小。
  現在你的任務是幫小明寫段程序,求出這個最小數。
輸入
第一行是一個數T,表示有T組測試數據;
然后下面有T行, 每行是一個只含有0~9的字符串,表示N張疊在一起的卡片,最左邊的數字表示最上方的卡片。

[Technical Specification]
T<=1000
1 <= N <= 100
輸出
對于每組測試數據,請在一行內輸出能得到的最小數。
樣例輸入
3 565 9876543210 9876105432
樣例輸出
556 1234567890 1678905432
講解:剛開始覺得還挺簡答的,但是寫著寫著才發現,陷阱挺多的啊,于是乎就老是出錯,氣憤,后來修改了下,算是AC了;
具體代碼如下: 1 2 #include<stdio.h> 3 #include<string.h> 4 #include<algorithm> 5 using namespace std; 6 void SOLVE(char *a, int len, int k) 7 { 8 char s[303]; 9 int st = 101, ed = 101, i, n; 10 s[101] = a[0]; 11 for(n = 1; n < len; n++) 12 { 13 if(n < k) 14 { 15 if(a[n] <= s[st]) 16 s[--st] = a[n]; 17 else 18 s[++ed] = a[n]; 19 } 20 else 21 { 22 if(n == k) 23 s[--st] = a[n]; 24 else //第一位就是最小的非零數字 25 n--; 26 break; 27 } 28 }//最小的找到以后,就只需要把后面的數直接放到后面就行了 29 for(i = n+1; i < len; i++) 30 s[++ed] = a[i]; 31 for(i = st; i <= ed; i++) 32 printf("%c",s[i]); 33 printf("\n"); 34 } 35 int main() 36 { 37 int t, i, len, j; 38 char str[102],str1[102]; 39 scanf("%d",&t); 40 getchar(); 41 while(t--) 42 { 43 gets(str); 44 len = strlen(str); 45 strcpy(str1,str); 46 sort(str1,str1+len); 47 i = 0; 48 while(str1[i] == '0') 49 i++; 50 int p = i; 51 for(j = 0; j < len; j++) 52 if(str[j] == str1[i]) 53 p = j; //尋找最后一個最小的非零數字所在位置 54 SOLVE(str,len,p); 55 } 56 return 0; 57 }

?

總結

以上是生活随笔為你收集整理的nyoj905 卡片游戏的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。