题目链接:F、Swaps Again

题意:

有两个长度为n的数组a和数组b,可以选择k(1<=k<=n/2)交换某一个数组的前缀k和后缀k,可以交换任意次数,看最后是否能使两个数组相等

可以输出yes,否则输出no

题解:

。。。这道题我真没想到这样写

例如一个序列1,2,3,4,5.你交换一次(怎么交换就不说了,能看出来),5,2,3,4,1,再交换一次4,1,3,5,2.

你会发现一个规律(反正我没发现),对称位置的元素依然是最开始的元素,就比如没交换前1和5相对称,再交换了多次之后1还是和5处于对称位置

那么如果b序列可以通过a序列交换得到,那么肯定某个数的对应元素肯定在两个数组中都一样

STL中pair容器的用法

代码:

  1. 1 #include<stdio.h>
  2. 2 #include<algorithm>
  3. 3 #include<iostream>
  4. 4 #include<string>
  5. 5 #include<queue>
  6. 6 #include<deque>
  7. 7 #include<string.h>
  8. 8 #include<map>
  9. 9 #include <iostream>
  10. 10 #include <math.h>
  11. 11 using namespace std;
  12. 12 typedef long long ll;
  13. 13 const int maxn=500+10;
  14. 14 int a[maxn],b[maxn];
  15. 15 pair<int,int> p1[maxn],p2[maxn];
  16. 16 int main()
  17. 17 {
  18. 18 int t;
  19. 19 scanf("%d",&t);
  20. 20 while(t--)
  21. 21 {
  22. 22 int n;
  23. 23 memset(p1,0,sizeof(p1));
  24. 24 memset(p2,0,sizeof(p2));
  25. 25 bool flag=0;
  26. 26 scanf("%d",&n);
  27. 27 for(int i=1; i<=n; i++)
  28. 28 {
  29. 29 scanf("%d",&a[i]);
  30. 30 }
  31. 31 for(int i=1; i<=n; i++)
  32. 32 {
  33. 33 scanf("%d",&b[i]);
  34. 34 }
  35. 35 if(n%2==1&&a[n/2+1]!=b[n/2+1]) //中间这位不能变
  36. 36 {
  37. 37 flag=1;
  38. 38 }
  39. 39 for(int i=1; i<=n/2; i++)
  40. 40 {
  41. 41 p1[i]= {max(a[i],a[n-i+1]),min(a[i],a[n-i+1])};
  42. 42 p2[i]= {max(b[i],b[n-i+1]),min(b[i],b[n-i+1])};
  43. 43 }
  44. 44 sort(p1+1,p1+1+n/2);
  45. 45 sort(p2+1,p2+1+n/2);
  46. 46 for(int i=1; i<=n/2; i++)
  47. 47 {
  48. 48 if(p1[i]!=p2[i])
  49. 49 {
  50. 50 flag=1;
  51. 51 }
  52. 52 }
  53. 53 if(flag==0)
  54. 54 {
  55. 55 printf("yes\n");
  56. 56 }
  57. 57 else
  58. 58 {
  59. 59 printf("no\n");
  60. 60 }
  61. 61 }
  62. 62 return 0;
  63. 63 }

Codeforces Round #648 (Div. 2) F. Swaps Again的更多相关文章

  1. Codeforces Round #485 (Div. 2) F. AND Graph

    Codeforces Round #485 (Div. 2) F. AND Graph 题目连接: http://codeforces.com/contest/987/problem/F Descri ...

  2. Codeforces Round #486 (Div. 3) F. Rain and Umbrellas

    Codeforces Round #486 (Div. 3) F. Rain and Umbrellas 题目连接: http://codeforces.com/group/T0ITBvoeEx/co ...

  3. Codeforces Round #501 (Div. 3) F. Bracket Substring

    题目链接 Codeforces Round #501 (Div. 3) F. Bracket Substring 题解 官方题解 http://codeforces.com/blog/entry/60 ...

  4. Codeforces Round #499 (Div. 1) F. Tree

    Codeforces Round #499 (Div. 1) F. Tree 题目链接 \(\rm CodeForces\):https://codeforces.com/contest/1010/p ...

  5. Codeforces Round #376 (Div. 2)F. Video Cards(前缀和)

    题目链接:http://codeforces.com/contest/731/problem/F 题意:有n个数,从里面选出来一个作为第一个,然后剩下的数要满足是这个数的倍数,如果不是,只能减小为他的 ...

  6. Codeforces Round #271 (Div. 2) F. Ant colony (RMQ or 线段树)

    题目链接:http://codeforces.com/contest/474/problem/F 题意简而言之就是问你区间l到r之间有多少个数能整除区间内除了这个数的其他的数,然后区间长度减去数的个数 ...

  7. Codeforces Round #325 (Div. 2) F. Lizard Era: Beginning meet in the mid

    F. Lizard Era: Beginning Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/5 ...

  8. Codeforces Round #271 (Div. 2) F题 Ant colony(线段树)

    题目地址:http://codeforces.com/contest/474/problem/F 由题意可知,最后能够留下来的一定是区间最小gcd. 那就转化成了该区间内与区间最小gcd数相等的个数. ...

  9. Codeforces Round #479 (Div. 3) F. Consecutive Subsequence (简单dp)

    题目:https://codeforces.com/problemset/problem/977/F 题意:一个序列,求最长单调递增子序列,但是有一个要求是中间差值都是1 思路:dp,O(n)复杂度, ...

随机推荐

  1. 数据库MySQL(带你零基础入门MySQL)

    (一)认识数据库 redis默认端口:6379 mysql默认端口:3306 什么是数据库? 数据库的英文单词:data base,简称DB. 数据库实际上就是一个文件集合,是一个存储数据的仓库,本质 ...

  2. win10/windows 安装Pytorch

    https://pytorch.org/get-started/locally/ 去官网,选择你需要的版本. 把 pip install torch==1.5.0+cu101 torchvision= ...

  3. 【Oracle】整库导出后怎么恢复到指定用户的指定表

    在导出的时候,整库导出 这里使用的是dba权限 $exp "'/ as sysdba'" file=full20180227.dmp log=exp_full20180227.lo ...

  4. Databricks 第8篇:把Azure Data Lake Storage Gen2 (ADLS Gen 2)挂载到DBFS

    DBFS使用dbutils实现存储服务的装载(mount.挂载),用户可以把Azure Data Lake Storage Gen2和Azure Blob Storage 账户装载到DBFS中.mou ...

  5. apscheduler(定时任务) 基于redis持久化配置操作

    apscheduler(定时任务) 基于redis持久化配置操作 安装模块 pip install apscheduler 导入模块配置 ## 配置redis模块 from apscheduler.j ...

  6. uni-app开发经验分享五: 解决三端页面兼容问题的方法

    在做uni-app开发的过程中,我们最头疼可能不是开发的过程中的逻辑,而是最后要做的三端兼容测试和修改,在我开发的项目中,这一步都是最头疼和令人头秃的过程,这里总结一些个人开发遇到的问题,希望对大家有 ...

  7. 用xmind设计用例:

    注意一个原则:清晰明了,简单高效 注意不要写成需求分析,从测试的角度对场景进行分类管理 注意点: 1.思维导图重要的是逻辑清晰归类,注意有不要太多具体的操作步骤 举个例子(来源:https://www ...

  8. 新型赌博黑产攻击肆虐网吧: LOL博彩引流+棋牌盗号

    https://mp.weixin.qq.com/s/BxnovV6jKqPkYfHEzjd_FA 新型赌博黑产攻击肆虐网吧: LOL博彩引流+棋牌盗号 看雪学院 2019-04-21

  9. Main event loop

    https://developer.apple.com/library/archive/documentation/General/Conceptual/Devpedia-CocoaApp/MainE ...

  10. 进程通信类型 管道是Linux支持的最初Unix IPC形式之一 命名管道 匿名管道

    管道 Linux环境进程间通信(一) https://www.ibm.com/developerworks/cn/linux/l-ipc/part1/index.html 管道及有名管道 郑彦兴200 ...