codeforces 814 B An express train to reveries
来源:互联网 发布:杭州市大数据管理局 编辑:程序博客网 时间:2024/05/21 00:49
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 from 1 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 with n meteorids, colours of which being integer sequences a1, a2, ..., an and b1, b2, ..., bn respectively. Meteoroids' colours were also between 1 and ninclusive, and the two sequences were not identical, that is, at least one i (1 ≤ i ≤ n) exists, such that ai ≠ bi holds.
Well, she almost had it all — each of the sequences a and b matched exactly n - 1 elements in Sengoku's permutation. In other words, there is exactly one i (1 ≤ i ≤ n) such that ai ≠ pi, and exactly one j (1 ≤ j ≤ n) such that bj ≠ 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 integers a1, a2, ..., an (1 ≤ ai ≤ n) — the sequence of colours in the first meteor outburst.
The third line contains n space-separated integers b1, b2, ..., bn (1 ≤ bi ≤ n) — the sequence of colours in the second meteor outburst. At least one i (1 ≤ i ≤ n) exists, such that ai ≠ 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
题意:最初有一个序列有两个人a和b他们记录这个序列,但他们各自记的序列中分别有一个数记错了,现在给你他们两人的序列,让你给出原序列的一种情况(原序列每个数只出现一次,且都在1到n之间)
判断他们记错的数是否是同一位置,如果同一位置,则直接找到没出现过的数,补上去即可(a,b在同一位置 相同 的数 是出现过的)否则要进行判断
#include <iostream>#include<stdio.h>using namespace std;int main(){ int a[1100],b[1100]; int c[1100]={0}; int n; int d[5][2];//存a和b出现不同的位置的a[i]和b[i]; int t=0; scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&a[i]); for(int i=0;i<n;i++) { scanf("%d",&b[i]); if(a[i]==b[i]) c[a[i]]++;//记录一定没错的数据 else d[t][0]=a[i],d[t][1]=b[i],t++;//存d } if(t==1)//判断记错的位置是否在同一位置 { for(int i=1;i<=n;i++) { if(c[i]==0) { for(int j=0;j<n;j++) { if(a[j]!=b[j]) a[j]=i; } } } } else { int h=0; if(c[d[0][0]]==0&&c[d[1][1]]==0)//因为每人只记错一位所以判断是取哪种情况(要么第一处不同取a的则第二处不同取b的否则第一处不同取b的则第二处不同取a) { for(int i=1;i<=n;i++) { if(c[i]==0) { for(int j=0;j<n;j++) { if(a[j]!=b[j]) { if(h==0) a[j]=d[0][0],h++; else a[j]=d[1][1]; } } break; } } } else { // printf("**\n"); int h=0; for(int i=1;i<=n;i++) { if(c[i]==0) { for(int j=0;j<n;j++) { if(a[j]!=b[j]) { if(h==0) a[j]=d[0][1],h++; else a[j]=d[1][0]; } } break; } } } } printf("%d",a[0]); for(int i=1;i<n;i++) printf(" %d",a[i]); printf("\n"); return 0;}
- codeforces B. 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-814B An express train to reveries 解题报告
- 814/ B. An express train to reveries
- Codeforces Round #418 B--An express train to reveries
- An express train to reveries CodeForces
- B. An express train to reveries
- An express train to reveries
- An express train to reveries
- An express train to reveries
- 【BZOJ】3314 [Usaco2013 Nov]Crowded Cows (多种解法)
- 金刚狼3:殊死一战 Logan (2017)
- 【NOI2011T6】兔兔与蛋蛋的游戏-二分图最大匹配+博弈
- java 文件类操作
- windows10+anaconda2+xgboost0.6的安装,VS和MinGW两种方式
- codeforces 814 B An express train to reveries
- P1099 树网的核
- Gson 解析Json 原文地址:http://www.open-open.com/lib/view/open1472632967912.html
- nginx的错误日志参考资料
- 【caffe-Windows】caffe+VS2013+Windows无GPU快速配置教程
- LeetCode 64. Minimum Path Sum
- OSPF协议配置
- Java基础小知识1——分别使用字节流和字符流复制文件
- 上传本地代码到github