【JZOJ 4310】【NOIP2015模拟11.4】最优交换(贪心)
2018-01-30 20:49
405 查看
问题描述
输入
输出
样例输入
2
1432 2
4321 2
样例输出
4312
4321
算法讨论
用贪心就能过了,在当前位置以后,长度为k的子串中找到最大的交换即可。
输入
输出
样例输入
2
1432 2
4321 2
样例输出
4312
4321
算法讨论
用贪心就能过了,在当前位置以后,长度为k的子串中找到最大的交换即可。
#include <cstdio> using namespace std; long long a[56],t,k,maxx,p; bool f; int main() { freopen("swap.in","r",stdin); freopen("swap.out","w",stdout); scanf("%lld",&t); while (t>0) { long long x,n=0; scanf("%d%d",&x,&k); while (x>0) { a[++n]=x % 10; x/=10; } for (int i=n;i>=1;i--) { maxx=a[i]; f=0; a[0]=0; int tt=i-k; if (tt<1) tt=1; for (int j=i-1;j>=tt;j--) if (a[j]>maxx) { maxx=a[j]; p=j; f=1; } if (f) { k-=(i-p); a[0]=a[p]; for (int j=p;j<i;j++) a[j]=a[j+1]; a[i]=a[0]; if (k==0) break; } } for (int i=n;i>=1;i--) printf("%lld",a[i]); printf("\n"); t--; } fclose(stdin); fclose(stdout); }
相关文章推荐
- Day 5 jzoj 4310. 【NOIP2015模拟11.4】最优交换
- 【JZOJ 4309】【NOIP2015模拟11.4】刷题计划 刷题计划
- 【JZOJ 4314】【NOIP2015模拟11.4】老司机
- Day 5 jzoj4309. 【NOIP2015模拟11.4】刷题计划
- Day 6 jzoj 4312. 【NOIP2015模拟11.4】格点统计
- Day 5 jzoj 4311. 【NOIP2015模拟11.4】统一天下
- 【NOIP2015模拟11.4】电话线铺设 jzoj 4313 最小生成树+树链剖分
- JZOJ 4307. 【NOIP2015模拟11.3晚】喝喝喝
- JZOJ 4298. 【NOIP2015模拟11.2晚】我的天
- [jzoj]3427. 【NOIP2013模拟】归途与征程(字符串DP+贪心)
- jzoj4310 最优交换
- JZOJ4307. 【NOIP2015模拟11.3晚】喝喝喝
- JZOJ 4302【NOIP2015模拟11.3】IOIOI卡片占卜
- JZOJ.4300[NOIP2015模拟11.3]装饰大楼 解题报告
- jzoj3929【NOIP2014模拟11.6】创世纪(图论,bfs,贪心)
- 【jzoj5346】【NOIP2017提高A组模拟9.5】【NYG的背包】【贪心】
- [jzoj]4216. 【NOIP2015模拟9.12】平方和【线段树二分+码量】
- 【JZOJ3819】【NOI2015模拟9.9】【hdu 4111】取石子(博弈+贪心+记忆化搜索)
- NOIP2015 day1[tarjan][搜索][模拟][贪心]
- JZOJ 4294【NOIP2015模拟11.2】复制&粘贴2