HDU 5522 Numbers
来源:互联网 发布:windows 调试模式 编辑:程序博客网 时间:2024/06/05 08:32
找到一组A-C=B即 找到一组A+B=C 由于n只有100可以n³的暴力枚举 看是否存在a[i]+a[j]=a[k]
而n²的做法是 用visit数组标记每个数出现过几次 这样枚举出A+B后看C是否出现过即可 注意特殊判断0的情况 因为A为0(A<B)时 A+B会被B标记到 所以要visit大于1才行
nlogn的做法是,可以先将0取出特殊判断,用FFT求出所有A+B的结果,然后再判断。
n³的做法:
#include<iostream>#include<cstdio>#include<cstring>#include<cctype>#include<cmath>#include<vector>#include<queue>#include<map>#include<algorithm>#include<set>#define scnaf scanf#define cahr char#define bug puts("bugbugbug");using namespace std;typedef long long ll;const int mod=1000000007;const int maxn=1000+5;const int inf=1e9;const int maxe=200000;int a[maxn],visit[maxn];int main(){ int n; while(~scanf("%d",&n)) { memset(visit,0,sizeof(visit)); for(int i=0;i<n;i++){ scanf("%d",&a[i]); visit[a[i]]++; } sort(a,a+n); int flag=0; for(int i=0;i<n;i++) for(int j=i+1;j<n;j++) for(int k=j+1;k<n;k++) { if(a[i]+a[j]==a[k]) { flag=1; break; } } if(flag) puts("YES"); else puts("NO"); } return 0;}
n²的做法:
#include<iostream>#include<cstdio>#include<cstring>#include<cctype>#include<cmath>#include<vector>#include<queue>#include<map>#include<algorithm>#include<set>#define scnaf scanf#define cahr char#define bug puts("bugbugbug");using namespace std;typedef long long ll;const int mod=1000000007;const int maxn=2000+5;const int inf=1e9;const int maxe=200000;int a[maxn],visit[maxn];int main(){ int n; while(~scanf("%d",&n)) { memset(visit,0,sizeof(visit)); for(int i=0;i<n;i++){ scanf("%d",&a[i]); visit[a[i]]++; } sort(a,a+n); int flag=0; if(visit[0]--){ for(int i=0;i<=1000;i++) if(visit[i]>=2) { flag=1; break; } } for(int i=0;i<n;i++) if(a[i]&&!flag) for(int j=i+1;j<n;j++) if(visit[a[i]+a[j]]) {flag=1;break;} if(flag) puts("YES"); else puts("NO"); } return 0;}
0 0
- HDU 5522 Numbers
- HDU 5522 Numbers
- hdu 5522 Numbers(水)
- (枚举)HDU 5522 Numbers
- Numbers HDU
- HDU 5522 Numbers (暴力枚举)
- HDU 5522 Numbers(枚举 + 二分查找)
- HDU 3117 Fibonacci Numbers
- hdu 3117 Fibonacci Numbers
- HDU 1058 Humble Numbers
- hdu 1390 Binary Numbers
- hdu 1058 Humble Numbers
- hdu 1128 Self Numbers
- hdu 3117 Fibonacci Numbers
- hdu 1058 Humble Numbers
- HDU 1128 self numbers
- HDU 1390 Binary Numbers
- HDU Humble Numbers
- UML小结
- LSD-SLAM使用教程
- Java中的final理解
- UI设计师不可不知的安卓屏幕知识
- 【Matlab开发】matlab中bar绘图设置与各种距离度量
- HDU 5522 Numbers
- 模拟数字小时钟
- Android开发大神博客汇总
- 让Ecshop网店系统用户自动登陆
- 自定义通用Adapter适配ListView GridView
- DAO层,Service层,Controller层、View层
- 浅拷贝和深拷贝
- init rtl8367
- 通信机制