安徽大学第九届大学生程序设计竞赛 网络预选赛 G - 交换大法好
2017-03-24 20:00
316 查看
[align=center]G. 交换大法好[/align]
Time Limit: 1000 ms Memory Limit: 64 MB
Total Submission: 158 Submission Accepted: 31
[align=center][/align]
Description
有一天,天上掉馅饼了。不过不是直接掉馅饼,是告诉你你将要得到的馅饼的数量a。聪明的你得到了一种魔法,可以在整数a中交换任意两个相邻的数字。而这种魔法,你最多只能使用k次。你使用魔法操作a,得到的最大的结果就是你最终获得的馅饼数量。
你最多可以获得的馅饼数量是多少呢?
Input
第一行,一个数字n(1<=n<=60)。代表测试数据数量。
接下来n行,每行两个整数a和k(1<=a<=1,000,000,000; 0<=k<=100)。
Output
输出n行,每行一个整数,代表你最多使用魔法k次,可以得到的最大的数字。
Sample Input
Sample Output
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
char a[15];
int fun(int beg,int k)
{
int mmax = a[beg] - '0', j = beg, len = strlen(a);
for(int i = beg; i <= min(len, beg + k); i++)
{
if(a[i] - '0' > mmax) {mmax = a[i] - '0'; j = i; }
}
return j;
}
int main()
{
int t;
scanf("%d", &t);
while(t--)
{
int k, temp;
int loc;
scanf("%s", a);
scanf("%d", &k);
for(int i = 0; i <= strlen(a); i++)
{
loc = fun(i, k);
k -= (loc - i);
temp = a[loc];
for(int j = loc - 1; j >= i; j--)
a[j + 1] = a[j];
a[i] = temp;
if(k == 0) break;
}
printf("%s\n", a);
}
return 0;
}
Time Limit: 1000 ms Memory Limit: 64 MB
Total Submission: 158 Submission Accepted: 31
[align=center][/align]
Description
有一天,天上掉馅饼了。不过不是直接掉馅饼,是告诉你你将要得到的馅饼的数量a。聪明的你得到了一种魔法,可以在整数a中交换任意两个相邻的数字。而这种魔法,你最多只能使用k次。你使用魔法操作a,得到的最大的结果就是你最终获得的馅饼数量。
你最多可以获得的馅饼数量是多少呢?
Input
第一行,一个数字n(1<=n<=60)。代表测试数据数量。
接下来n行,每行两个整数a和k(1<=a<=1,000,000,000; 0<=k<=100)。
Output
输出n行,每行一个整数,代表你最多使用魔法k次,可以得到的最大的数字。
Sample Input
Original | Transformed |
2 1990 1 1034 2
Sample Output
Original | Transformed |
9190 3104
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
char a[15];
int fun(int beg,int k)
{
int mmax = a[beg] - '0', j = beg, len = strlen(a);
for(int i = beg; i <= min(len, beg + k); i++)
{
if(a[i] - '0' > mmax) {mmax = a[i] - '0'; j = i; }
}
return j;
}
int main()
{
int t;
scanf("%d", &t);
while(t--)
{
int k, temp;
int loc;
scanf("%s", a);
scanf("%d", &k);
for(int i = 0; i <= strlen(a); i++)
{
loc = fun(i, k);
k -= (loc - i);
temp = a[loc];
for(int j = loc - 1; j >= i; j--)
a[j + 1] = a[j];
a[i] = temp;
if(k == 0) break;
}
printf("%s\n", a);
}
return 0;
}
相关文章推荐
- 安徽大学第九届大学生程序设计竞赛 网络预选赛 F - 周末大法好
- 安徽大学第九届大学生程序设计竞赛 网络预选赛
- 安徽大学第九届大学生程序设计竞赛 网络预选赛 A - 成功人士
- 安徽大学第九届大学生程序设计竞赛 网络预选赛 B - 迭代归一
- 安徽大学第九届大学生程序设计竞赛 网络预选赛 C - 置换的魔术
- 安徽大学第九届大学生程序设计竞赛 网络预选赛 D - 买买买
- 安徽大学第九届大学生程序设计竞赛 网络预选赛 H - 今年多少岁
- 中南大学第九届大学生程序设计竞赛网络预选赛
- “正直角三角形” Contest2074 - 中南大学第九届大学生程序设计竞赛网络预选赛
- 外卖的撕‘哔’大战 Contest2074 - 中南大学第九届大学生程序设计竞赛网络预选赛
- ACM/ICPC黑龙江省第四届大学生程序设计竞赛网络预选赛有感
- 中南大学第十一届大学生程序设计竞赛网络预选赛总结
- “Wishare杯”南邮第九届大学生程序设计竞赛之网络赛 部分题解
- 第十八届中山大学程序设计竞赛网络预选赛B题
- “Wishare杯”南邮第九届大学生程序设计竞赛之现场赛 部分题解
- CSU 1335: 高桥和低桥(树状数组啊 二分查找啊 湖南省第九届大学生计算机程序设计竞赛)
- 湖南省第九届大学生计算机程序设计竞赛 Interesting Calculator
- “Wishare杯”南邮第八届大学生程序设计竞赛之网络预赛 题解报告
- Interesting Calculator( 湖南省第九届大学生计算机程序设计竞赛)
- 第九届湖南省大学生程序设计竞赛部分题解