早教吧作业答案频道 -->其他-->
杭州电子科技大学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...的网友还看了以下:
对某式两边取积分是不是这么理解的(不懂装懂的同学请绕道啊别害人啊)比如对i(t)=Cdv(t)/d 2020-05-13 …
英语翻译Thought it wouldn't matterIf we didn't stay t 2020-05-16 …
英语翻译how much~自然卷how much i love youhow much i lov 2020-05-16 …
——Tom,you are 10 minutes late,please don't be lat 2020-05-16 …
Dont't forget to give my best wishes to your pare 2020-05-16 …
i don't want to eat anything.i'm feeling well tod 2020-05-17 …
求助!有没有这个公式:定积分∫[Asin(2π/T)]^2=(A^2*T)/4高中物理交流电那块讲 2020-06-10 …
英语单词填空1.时间状语:d-r-n-2.场所:b-s-s-o-f-r--e-a-t-e-t3.教 2020-07-14 …
matlab求解二阶导数方程,四个方程四个未知量>>symst>>E=32;G=10.81;b=2 2020-07-19 …
用matlab求最大值i=(18-t^(2/3))-(5+t+2*t^(2/3))i是因变量,t是 2020-07-25 …