早教吧作业答案频道 -->其他-->
杭州电子科技大学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...的网友还看了以下:
已知在Rt△ABC中,∠C=90°,AD是∠BAC的平分线,以AB上一点O为圆心,AD为弦作圆O( 2020-05-13 …
锌粒 镁条 铜片 铁丝.在实验用品中:为什么锌要做成粒?为什么镁要做成条?为什么铜要做成片?为什么 2020-05-17 …
已知线段a,按下列步骤画图:用直尺任意做一条直线l,在直线l上任取一点o,利用圆规在l上做出点o距 2020-05-22 …
用纸做梁,做怎样的截面最稳定已知在梁中间一部分受均布载荷,纸为硬纸片,做成怎样的截面,才能使得承载 2020-06-02 …
仿写新叶青青,使我忽然想到,即使不能做一朵流芳溢彩的花朵,做一片纯净高尚的绿叶有何乐而不为呢仿写新 2020-06-16 …
数学题目一个牛奶场有9吨鲜奶,直接上市鲜奶,每吨可赚500元,做酸奶,每吨能赚1200元,做奶片, 2020-06-17 …
如图oabc是一张放在平面直角坐标系中的长方形纸片,O为原点,点A在x轴的正半轴上如图①,OABC 2020-06-27 …
《口算训练》每片有60道题.原来做一片要5分钟现在每分钟做的是原来的1.25倍,现在做一片要用多少分 2020-12-13 …
(2012•南昌)已知,纸片⊙O的半径为2,如图1,沿弦AB折叠操作.(1)①折叠后的AB所在圆的圆 2021-01-02 …
如图所示,将铁、铜通过导线相连,置于稀硫酸中.铁片为极,电极o发生的是反应(填“氧化”或“还原”), 2021-01-24 …