题目链接:http://codeforces.com/contest/936/problem/C

题意:给你一个起始字符串和一个目标字符串,你只有一种操作:选择一个数x,将后x个字母翻转,然后提取出来接到字符串的前面,例如abcdef,如果x=3,那么就会变为fedabc,问能不能经过最多6100步将起始字符串翻转成目标字符串,如果可以输出翻转的过程,否则输出-1

看这题n是2000,而让你构造的步数大概是2000的3倍,想想是不是有一种方法在3步之内仅将某个字符翻转到位,这样总共翻转的步数刚好就是3n,答案是肯定的,每次翻转操作如下:

假设n=6,字符串为123456,而我想把2扔到最后面,那么只需要翻三次:

x = 4: 123456->654312;

x = 1: 654312->265431;

x = 5: 265431->134562;搞定

所以这道题就这样解决了,方法就是重复上面步骤一个一个将字符扔到后面

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int n, cnt, ans[6505];
char s1[2005], s2[2005], temp[2005];
void Do(int x)
{int i, j;i = x, j = n;while(i<=j)swap(s1[i], s1[j]), i++, j--;for(i=1;i<=n;i++)temp[i] = s1[(x+i-2)%n+1];memcpy(s1, temp, sizeof(s1));ans[++cnt] = n-x+1;
}
int main(void)
{int i, j;scanf("%d%s%s", &n, s1+1, s2+1);for(i=1;i<=n;i++){for(j=1;j<=n-i+1;j++){if(s1[j]==s2[i])break;}if(j==n-i+2){printf("-1\n");return 0;}Do(j+1), Do(n), Do(2);}printf("%d\n", cnt);for(i=1;i<=cnt;i++)printf("%d ", ans[i]);printf("\n");return 0;
}
/*
6
123456
234561
*/

Codeforces Round #467 (Div. 1): C. Lock Puzzle(构造)相关推荐

  1. Codeforces Round #742 (Div. 2) F. One-Four Overload 构造 + 二分图染色

    传送门 文章目录 题意: 思路: 题意: 给你一个n∗mn*mn∗m的矩形,包含...和XXX,你有两种颜色,你需要给...染色使得每个XXX上下左右相邻的...其两种颜色个数相同,输出一种合法方案. ...

  2. Codeforces Round #740 (Div. 2) E. Bottom-Tier Reversals 构造

    传送门 文章目录 题意: 思路: 题意: 给你一个长度为奇数nnn的排列aaa,每次可以选择长度为奇数的前缀,并将[1,len][1,len][1,len]翻转,你需要用不超过5n2\frac{5n} ...

  3. Codeforces Round #467 (Div. 2)

    A Olympiad 输出除0以外的数字种数即可. B Vile Grasshoppers 猜想答案离y不会很远.暴力枚举答案, $O(\sqrt n)$验证,如果有因数落在区间$[2,p]$里就不合 ...

  4. Codeforces Round #172 (Div. 2) C. Rectangle Puzzle 数学题几何

    C. Rectangle Puzzle Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/281/p ...

  5. Codeforces Round #467 (Div. 1): A. Save Energy!(公式)

    题意:Julia准备用她刚买的炉子煮鸡蛋,这个炉子开启之后会进入加热状态,但是k分钟之后就会自动停止并进入保温状态,在加热状态下鸡蛋会每秒获得2点热量,在保温状态下鸡蛋只会每秒获得1点热量,Julin ...

  6. Codeforces Round #467 (Div. 1): B. Sleepy Game(BFS+有向图判环)

    题意(经过转换):给你一个n个点m条边的有向图,再给你一个起点x,问存不存在一条路径满足①路径中有奇数条边:②终点的出度为0,如果存在输出Win,并在第二行输出这个路径(可能不唯一输出任意一种),否则 ...

  7. Codeforces Round #301 (Div. 2) B. School Marks 构造/贪心

    B. School Marks Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/540/probl ...

  8. Codeforces Round #335 (Div. 2) D. Lazy Student 构造

    D. Lazy Student Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/606/probl ...

  9. Codeforces Round #700 (Div. 1) C. Continuous City 构造 + 二进制

    传送门 文章目录 题意: 思路: 题意: 构造一个图,使其从111到nnn的路径的长度与[L,R][L,R][L,R]中某个值一一对应,不能有两条路径长度一样,且每个值都必须出现一次,每两个点之间只能 ...

最新文章

  1. python爬虫,生成文件速度追不上已经爬取文件的生成速度。
  2. “僵尸病毒”入侵全球电脑,7.5万部电脑中招(来源:广州日报)
  3. console.log 如何打印对象
  4. easy ui example
  5. ijkplayer-android框架详解
  6. 考研 考研爬虫大数据分析专业热度
  7. 智慧城市需要百姓智慧
  8. MacOS Big Sur软件打开“您没有权限打开应用程序”解决办法
  9. 洛谷4139 bzoj 3884 上帝与集合的正确用法
  10. mysql 写入随机字中文符_MySQL产生随机字符
  11. 16进制字符串转化为10进制数
  12. 以图搜图 图像匹配_图像匹配,基于深度学习DenseNet实现以图搜图功能
  13. 简易 Vue 构建--篇三
  14. 思科、华为、华三交换机的线缆检测功能
  15. Java入门 - 循环结构基础
  16. AD中如何进行logo的自制与导入
  17. 广告是如何找到你的?
  18. manjaro yay安装企业微信
  19. expressjs mp4_了解如何在ExpressJS 4.0中使用新路由器
  20. linux网络命令--ping

热门文章

  1. python画简便的图-python 实现在一张图中绘制一个小的子图方法
  2. 手握14万,博越是最佳选?这车配钢炮动力,可双屏互动,不香?
  3. h5语音识别和文字转语音
  4. 百度语音识别技术突破 巨头崛起
  5. 本地离线语音识别芯片厂家盘点,哪一家实力更强
  6. 知乎热议的Deep Peak2模型究竟是什么?答案都在这里
  7. 接口说明_实时语音识别_智能语音交互-阿里云
  8. RocketMQ 介绍与安装
  9. python封装功能讲解_python学习28——面向对象实例讲解与封装
  10. leetcode 206 如何原地反转单链表?