早教吧作业答案频道 -->其他-->
杭州电子科技大学ACM4550题卡片游戏怎么做ProblemDescription小明最近宅在家里无聊,于是他发明了一种有趣的游戏,游戏道具是N张叠在一起的卡片,每张卡片上都有一个数字,数字的范
题目详情
杭州电子科技大学 ACM 4550题卡片游戏怎么做
Problem Description 小明最近宅在家里无聊,于是他发明了一种有趣的游戏,游戏道具是N张叠在一起的卡片,每张卡片上都有一个数字,数字的范围是0~9,游戏规则如下:
首先取最上方的卡片放到桌子上,然后每次取最上方的卡片,放到桌子上已有卡片序列的最右边或者最左边。当N张卡片全部都放到桌子上后,桌子上的N张卡片构成了一个数。这个数不能有前导0,也就是说最左边的卡片上的数字不能是0。游戏的目标是使这个数最小。
现在你的任务是帮小明写段程序,求出这个最小数。
Input第一行是一个数T,表示有T组测试数据;
然后下面有T行, 每行是一个只含有0~9的字符串,表示N张叠在一起的卡片,最左边的数字表示最上方的卡片。
[Technical Specification]
T<=1000
1 <= N <= 100
Output对于每组测试数据,请在一行内输出能得到的最小数。
Sample Input3
565
9876543210
9876105432
Sample Output556
1234567890
1678905432
Problem Description 小明最近宅在家里无聊,于是他发明了一种有趣的游戏,游戏道具是N张叠在一起的卡片,每张卡片上都有一个数字,数字的范围是0~9,游戏规则如下:
首先取最上方的卡片放到桌子上,然后每次取最上方的卡片,放到桌子上已有卡片序列的最右边或者最左边。当N张卡片全部都放到桌子上后,桌子上的N张卡片构成了一个数。这个数不能有前导0,也就是说最左边的卡片上的数字不能是0。游戏的目标是使这个数最小。
现在你的任务是帮小明写段程序,求出这个最小数。
Input第一行是一个数T,表示有T组测试数据;
然后下面有T行, 每行是一个只含有0~9的字符串,表示N张叠在一起的卡片,最左边的数字表示最上方的卡片。
[Technical Specification]
T<=1000
1 <= N <= 100
Output对于每组测试数据,请在一行内输出能得到的最小数。
Sample Input3
565
9876543210
9876105432
Sample Output556
1234567890
1678905432
▼优质解答
答案和解析
这个是在百度是找的 这场比赛我没做 、、呵呵
#include
#include
#include
#include
#include
using namespace std;
const int N = 110;
char s[N];
int main(){
int _;
scanf("%d", &_);
while( _-- ){
scanf("%s", s);
string t;
t += s[0];
char ch = '9';
int pos;
for(int i = 0; s[i]; i++)
if( (s[i]!='0') && (ch>=s[i]) ) ch = s[pos=i];
for(int i = 1; s[i]; i++){
if( i == pos ) t = s[i] + t;
else if( i < pos ){
if( s[i] <= t[0] ) t = s[i] + t;
else t = t + s[i];
}
else t = t + s[i];
}
printf("%s\n", t.c_str() );
}
return 0;
}
#include
#include
#include
#include
#include
using namespace std;
const int N = 110;
char s[N];
int main(){
int _;
scanf("%d", &_);
while( _-- ){
scanf("%s", s);
string t;
t += s[0];
char ch = '9';
int pos;
for(int i = 0; s[i]; i++)
if( (s[i]!='0') && (ch>=s[i]) ) ch = s[pos=i];
for(int i = 1; s[i]; i++){
if( i == pos ) t = s[i] + t;
else if( i < pos ){
if( s[i] <= t[0] ) t = s[i] + t;
else t = t + s[i];
}
else t = t + s[i];
}
printf("%s\n", t.c_str() );
}
return 0;
}
看了 杭州电子科技大学ACM455...的网友还看了以下:
八年级1班班长小明准备在春节期间给同学寄贺年卡.这些贺年卡可在甲乙丙三个商店内买到,已知三个商店的 2020-05-13 …
概率题,有甲乙丙三位同学分别写了一张贺卡放在一起,现在三人均从中抽取一张(1)求这三位同学都抽到别 2020-05-13 …
小明买甲乙两种贺卡,甲1.5元一张,乙1.7元一张.买了若干张,刚好价钱花完.但售货员将乙贺卡张数 2020-05-13 …
元旦前夕,小倩同学打算用20块钱买10张贺卡,现在有两种贺卡.元旦前夕,小倩同学打算用20元钱买1 2020-05-20 …
有编号为1到13的卡片,每个编号有4张,共52张卡片,问至少摸出多少张,就可保证一定有3张卡片编号 2020-06-22 …
小华有24张贺卡,小明有3o张贺卡,小华给多少张贺年卡小明,小明的贺年卡张数是小华的5倍? 2020-07-04 …
看下面!因为字数问题,干脆不多说.有一堆卡片,在上面顺次写上1,2,3,4,5.写完之后,把这些卡 2020-07-04 …
我有几道数奥题不会,教教我1.小明用21.4元去买两种贺卡,甲卡每张1.5元,乙卡每张0.7元,钱 2020-07-13 …
甲,乙,丙三个小朋友共有贺年卡96张,如果甲给乙18张后,乙又送给丙14张,那么三个人的贺年卡的贺年 2020-12-23 …
盛盛,东东和飞飞共有六十二张积分卡.其中盛盛拥有卡张数的五分之三,正好是东东的三分之二,飞飞有二四张 2020-12-23 …