这题题解dp不懂 因为不知道它怎么记录dp的答案的 字符串那么长
我是贪心过得,当时还被四个人hack,都没成功,hhhhh
大意就是优先从头取字典序小的字母,担也要让后面不管怎么取都合法

#include<bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const int MAXN = 1e3+5;
int N,M;
char S[MAXN];
char ans[MAXN];
int tg[MAXN];int ju(int x,int y,int c) {
//    printf("%d %d %d\n",x,y,c);if(c < 0) return 0;if(x == 0) {if(c%2 || c > y*2) return 0;}else if(c > (x+y)*2 || c < x) return 0;
//    printf("got\n");return 1;
}
int main(){int T; scanf("%d",&T);while(T--) {scanf("%d %d",&N,&M);scanf("%s",S+1);int c1 = 0; int c2 = 0;for(int i = 1; i <= N/2; ++i) {if(S[i] > S[i+N/2]) swap(S[i], S[i+N/2]);if(S[i] != S[i+N/2]) tg[i] = 1, c1 ++;else tg[i] = 2, c2 ++;}if(c1==0) {if(M%2 || M>c2*2) {printf("Impossible\n"); continue;}}else if(M > (c2+c1)*2 || M < c1) {printf("Impossible\n"); continue;}for(int i = 1; i <= N/2; ++i) {char t1= S[i]; char t2= S[i+N/2];if(tg[i] == 1) {if(t1 == 'a') {if(ju(c1-1,c2,M-1)) ans[i] = 'a', M--;else {if(t2 == 'b') ans[i] = 'c', M-=2;else ans[i] = 'b', M-=2;}}else {if(ju(c1-1,c2,M-2)) ans[i] = 'a', M-=2;else ans[i] = min(t1,t2), M--;}c1--;}else {if(t1 == 'a'){if(ju(c1,c2-1,M)) ans[i] = 'a';else ans[i] = 'b', M-=2;}else {if(ju(c1,c2-1,M-2)) ans[i] = 'a', M-=2;else ans[i] = t1;}c2--;}            }for(int i = 0; i < 2; ++i)for(int j = 1; j <= N/2; ++j)printf("%c",ans[j]); printf("\n");}return 0;
}

转载于:https://www.cnblogs.com/Basasuya/p/8433747.html

hdu 5903 Square Distance相关推荐

  1. hdu 5079 Square

    http://acm.hdu.edu.cn/showproblem.php?pid=5079 题意: n*n网格,每个格子可以涂黑色或白色,有的格子必须涂黑色 问最大白色正方形边长分别为0,1,2,- ...

  2. HDU 4712 Hamming Distance(随机算法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4712 题目大意:任意两个数按位异或后二进制中含1的个数被称为海明距离,给定n个数,求出任意其中两个最小 ...

  3. 2013杭电warm up1 hdu 4712 Hamming Distance

    题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=4712 首先,算汉明距离就是二进制异或以后的1的个数,统计1的个数用x&=x-1很快很神奇. ...

  4. hdu 1398 Square Coins/hdu 1028 Ignatius and the Princess III

    两道母函数的模板题: http://acm.hdu.edu.cn/showproblem.php?pid=1398 View Code #include<iostream>#include ...

  5. HDU 1398 Square Coins

    母函数简单应用 题目: Square Coins Problem Description People in Silverland use square coins. Not only they ha ...

  6. HDU 1398 Square Coins

    题目大意:有面值分别为.1,4,9,.......17^2的硬币无数多个.问你组成面值为n的钱的方法数. 最简单的母函数模板题: #include <cstdio> #include &l ...

  7. HDU 1518 Square

    dfs+剪枝. AC代码例如以下: ///dfs+剪枝 62MS 300K#include<iostream> #include<cstring> #include<al ...

  8. HDU 2376 Average distance

    HDU_2376 对于任意一棵子树来讲,以根节点为深度最浅的点的路径一共有两类,一类是以根节点为端点的路径,另一类是过根节点但端点分别在两棵子树中的路径.然后将无根树转化为有根树后dfs时计算出上面两 ...

  9. Python编程语言学习:sklearn.manifold的TSNE函数的简介、使用方法、代码实现之详细攻略

    Python编程语言学习:sklearn.manifold的TSNE函数的简介.使用方法.代码实现之详细攻略 目录 Manifold简介 TSNE简介-数据降维且可视化 TSNE使用方法 TSNE代码 ...

最新文章

  1. compareto方法_compare方法和compareTo方法区别
  2. Spring 注解配置
  3. Windows 下 OpenGL ES 开发环境搭建
  4. 1019:浮点数向零舍入
  5. OpenGL运用辅佐库创立规矩几许目标
  6. 操作系统之进程管理:3、进程控制(进程状态转化的实现)、原语、进程通信(共享、管道、消息)
  7. 姿态估计 | OpenPose Plus值得期待
  8. 怎样让电脑速度变快_电脑常用软件推荐
  9. QT实现头像图片剪切框
  10. MAC下利用Github 、hexo、 多说、百度统计 建立个人博客指南
  11. 罗技 GHUB驱动的官方下载网址
  12. linux多线程 进程休眠,转载:Linux多线程之线程休眠
  13. App测试实战:测试内容、测试工具、测试效果
  14. 手机把网页保存为html,怎么保存整个网页
  15. 右键菜单项删除 pycharm vs
  16. (JDBC四)JDBC实例(b)
  17. 重磅丨数据+场景双重互联,有米广告完成程序化场景营销升级
  18. 外卖优惠券返利分销系统外卖返利系统公众号小程序源码saas系统
  19. CStdioFile的Writestring无法写入中文的问题
  20. 半入耳蓝牙耳机评测,南卡和锤子真无线蓝牙耳机哪个更值得入手?

热门文章

  1. 【Spring框架家族】SpringBoot自动配置基本实现
  2. Google-Analytics 学习与思考
  3. 07-XML 文件注解开发
  4. push to origin/master was rejected错误解决方案
  5. 【JEECG技术文档】JEECG高级查询构造器使用说明
  6. node的包管理工具:yarn和npm
  7. YJX_rxjh_10_2.5.2
  8. 最全的MySQL基础【燕十八传世】
  9. 一、Cocos2dx在visualStudio或者vc++中环境搭建(入门篇)
  10. 企业云计算指南:在安全前提下获得利益