Codeforces 856A
来源:互联网 发布:通达oa开放那些端口 编辑:程序博客网 时间:2024/05/22 08:05
原题链接:http://codeforces.com/problemset/problem/856/A
大致题意:给出一个数列A(1<=ai<=10^6),问存不存在一列相同长度的数列B(1<=bi<=10^6),使得对于所有的ai+bj两两不同,如果存在输出一种数列B。
其实把等式稍微处理一下就好了,ai+bj != ak+bl 即 ai-ak != bj- bl,就是说数列A两两数字之差不会是数列B中两个数字之差。
然后是B中第一个元素一定是1,因为这样可以在不改变数组性质的情况下尽量使得数列数字最小。
最后只要暴力依次筛出B的各个元素就可以了。
代码:
#include <bits/stdc++.h>using namespace std;inline void read(int &x){ char ch; bool flag=false; for (ch=getchar();!isdigit(ch);ch=getchar())if (ch=='-') flag=true; for (x=0;isdigit(ch);x=x*10+ch-'0',ch=getchar()); x=flag?-x:x;}inline void read(long long &x){ char ch; bool flag=false; for (ch=getchar();!isdigit(ch);ch=getchar())if (ch=='-') flag=true; for (x=0;isdigit(ch);x=x*10+ch-'0',ch=getchar()); x=flag?-x:x;}inline void write(int x){ static const int maxlen=100; static char s[maxlen]; if (x<0) { putchar('-'); x=-x;} if(!x){ putchar('0'); return; } int len=0; for(;x;x/=10) s[len++]=x % 10+'0'; for(int i=len-1;i>=0;--i) putchar(s[i]);}const int MAXN = 1100000;typedef long long ll;int a[ MAXN ];int b[ MAXN ];bool vis[ MAXN ];int n;void doit(){read(n);for (int i=1;i<=n;i++) read(a[i]);sort(a+1,a+n+1);memset(vis,0,sizeof(vis));vis[0]=1;for (int i=1;i<=n;i++) for (int j=i+1;j<=n;j++) vis[ a[j] -a[i] ]=1;int cnt=1;b[1]=1;for (int i=2;i<=MAXN;i++) { int op=0; for (int j=1;j<=cnt;j++) if( vis[ i-b[j] ] ) { op=1; break; } if( op==0) { b[ ++cnt ]=i; if (cnt>=n) break; } }if(cnt>=n) { puts("YES"); for (int j=1;j<=n;j++) printf("%d ",b[j]); puts(""); }else puts("NO");}int main(){ int T; read(T); for (int i=1;i<=T;i++) doit(); return 0;}
阅读全文
0 0
- Codeforces 856A
- codeforces 856a
- codeforces 856A (思维)
- CodeForces-a
- Codeforces 903A A
- CodeForces 18A A - Triangle
- CodeForces 133A A. HQ9+
- codeforces 651A A. Joysticks
- 【Codeforces 597A】A. Divisibility
- 【 Codeforces 615A】A. Bulbs
- A. Divisibility CodeForces 597A
- codeforces 417A A. Elimination
- CodeForces 534A A. Exam
- codeforces#98 a
- codeforces#99 a
- codeforces 105 div2 A
- codeforces #121 A
- Codeforces 185A Plant
- wampServer 启动报错
- Eclipse中怎么安装TestNG单元测试框架
- Spring中的@scope注解
- Linux下SGX的使用(2)-Hello Enclave
- Spring RedisTemplate操作-List操作
- Codeforces 856A
- POSIX定时器-线程方式创建定时器
- 第2章 UNIX标准及实现
- 深入理解 Java中的深克隆与浅克隆
- java_字符串中各类型字符出现的个数统计
- linux:一些压缩命令的使用
- Spring RedisTemplate操作-Set操作
- linux的GPIO驱动的使用(s5pv210)
- 今日头条