An express train to reveries CodeForces
来源:互联网 发布:网络剧备案查询 编辑:程序博客网 时间:2024/05/29 03:53
Sengoku still remembers the mysterious "colourful meteoroids" she discovered with Lala-chan when they were little. In particular, one of the nights impressed her deeply, giving her the illusion that all her fancies would be realized.
On that night, Sengoku constructed a permutation p1, p2, ..., pn of integers from1 to n inclusive, with each integer representing a colour, wishing for the colours to see in the coming meteor outburst. Two incredible outbursts then arrived, each withn meteorids, colours of which being integer sequencesa1, a2, ..., an andb1, b2, ..., bn respectively. Meteoroids' colours were also between1 and n inclusive, and the two sequences were not identical, that is, at least onei (1 ≤ i ≤ n) exists, such thatai ≠ bi holds.
Well, she almost had it all — each of the sequences a andb matched exactly n - 1 elements in Sengoku's permutation. In other words, there is exactly onei (1 ≤ i ≤ n) such thatai ≠ pi, and exactly onej (1 ≤ j ≤ n) such thatbj ≠ pj.
For now, Sengoku is able to recover the actual colour sequences a and b through astronomical records, but her wishes have been long forgotten. You are to reconstruct any possible permutation Sengoku could have had on that night.
The first line of input contains a positive integer n (2 ≤ n ≤ 1 000) — the length of Sengoku's permutation, being the length of both meteor outbursts at the same time.
The second line contains n space-separated integersa1, a2, ..., an (1 ≤ ai ≤ n) — the sequence of colours in the first meteor outburst.
The third line contains n space-separated integersb1, b2, ..., bn (1 ≤ bi ≤ n) — the sequence of colours in the second meteor outburst. At least one i (1 ≤ i ≤ n) exists, such thatai ≠ bi holds.
Output n space-separated integers p1, p2, ..., pn, denoting a possible permutation Sengoku could have had. If there are more than one possible answer, output any one of them.
Input guarantees that such permutation exists.
51 2 3 4 31 2 5 4 5
1 2 5 4 3
54 4 2 3 15 4 5 3 1
5 4 2 3 1
41 1 3 41 4 3 4
1 2 3 4
In the first sample, both 1, 2, 5, 4, 3 and 1, 2, 3, 4, 5 are acceptable outputs.
In the second sample, 5, 4, 2, 3, 1 is the only permutation to satisfy the constraints.
题意:n个数,有两个序列,每个序列分别都有一个人看错了颜色(就是数字),求正确的序列(序列应该是1~n)n个数
思路 : 第一种情况,若两个序列错得位置一样,则不同的个数为1,判断序列中还有那个值没有,放入失配的位置就可以
第二种情况,若两个位置失配,则一定会是序列中一个位置的值是错,一个位置的值是对的,而且两个序列相同位置的值一定一个错一个对。。
有个漏洞,刚开始我数组从下标0开始的,若第一个位置失配,他会赋值为0 因为这个错误,想了好久,没想出来,还是考虑不到啊。。。
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int M=1100;int a[M],b[M];int n;int p[M];int vis[M];struct node{ int pos; int x,y;}v[3];int main(){ while(~scanf("%d",&n)) { int l=0; memset(vis,0,sizeof(vis)); memset(p,0,sizeof(p)); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); } for(int i=1;i<=n;i++) { scanf("%d",&b[i]); if(a[i]==b[i]) { p[i]=a[i]; vis[a[i]]=1; } } for(int i=1;i<=n;i++) { if(a[i]!=b[i]) { v[l].pos=i; v[l].x=a[i]; v[l++].y=b[i]; } } if(l==1) { int t; for(int i=1;i<=n;i++) { if(vis[i]==0) t=i; } for(int i=1;i<=n;i++) { if(p[i]==0) p[i]=t; } } else { if(vis[a[v[0].pos]]==0&&vis[b[v[1].pos]]==0||vis[a[v[1].pos]]) { p[v[0].pos]=a[v[0].pos]; p[v[1].pos]=b[v[1].pos]; } else { p[v[0].pos]=b[v[0].pos]; p[v[1].pos]=a[v[1].pos]; } } for(int i=1;i<=n-1;i++) printf("%d ",p[i]); printf("%d\n",p[n]); } return 0;}
- codeforces B. An express train to reveries
- An express train to reveries CodeForces
- An express train to reveries
- An express train to reveries
- An express train to reveries
- 【Codeforces 814 B. An express train to reveries】+ 构造
- codeforces 814B An express train to reveries
- codeforces 814B An express train to reveries
- codeforces 814B An express train to reveries(思维)
- Codeforces 814B-An express train to reveries
- Codeforces 814 B An express train to reveries
- codeforces 814 B An express train to reveries
- CodeForces 814B An express train to reveries
- codeforces An express train to reveries 814B
- CodeForces An express train to reveries(简单的模拟)
- CodeForces-814B An express train to reveries 解题报告
- Codeforces Round #418 B--An express train to reveries
- 814/ B. An express train to reveries
- python中遇到的问题总结
- java使用poi或者jxl实现excel导出之后如何弹出保存提示框
- 更改jar包里的代码
- 动态规划之钢条切割问题
- 采样率
- An express train to reveries CodeForces
- python实现-质数因子
- 获取web项目的绝对路径的方法总结
- ViewPager+小圆点联动
- NOI2015软件包管理器,大力卡常记
- 【唯一分解定理】Sphenic numbers Gym
- MySQL Show命令的用法大全
- C#基础-007 swith-case的用法
- Python3 大型网络爬虫实战 001 --- 搭建开发环境