BestCoder61(div.2)1001---hdoj 5522 Numbers
2015-11-01 10:57
246 查看
题目链接hdoj5522
简单算下复杂度,三层循环暴力破解10610^6,再算上1000个测试案例,感觉得跪,可又一细想,发现没那么坑:先sort排序,然后按照从大到小的顺序计算(也就是说保证了AjA_j和AkA_k均小于AiA_i),这样一来,复杂度实际上没有那么高,可暴力求解!
一、题目分析
给定一个整数数组AnA_n,问是否存在三个不相等的下标i、j、k,满足AiA_i-AjA_j=AkA_k。测试数据不多于1000,3≤\leqn≤\leq100。简单算下复杂度,三层循环暴力破解10610^6,再算上1000个测试案例,感觉得跪,可又一细想,发现没那么坑:先sort排序,然后按照从大到小的顺序计算(也就是说保证了AjA_j和AkA_k均小于AiA_i),这样一来,复杂度实际上没有那么高,可暴力求解!
二、AC代码
#include<iostream> #include<cstring> #include<stdio.h> #include<cstdlib> #include<cmath> #include<string> #include<algorithm> using namespace std; int a[105]; bool chuli(int n){ for(int i=n-1 ; i>=2 ; i--) for(int j=n-2 ; j>=1 ; j--) for(int k=n-3 ; k>=0 ; k--) if(i!=j && i!=k && j!=k && a[i]-a[j]==a[k]) return true; return false; } int main(){ int n; while(~scanf("%d",&n)){ for(int i=0 ; i<n ; i++) scanf("%d",&a[i]); sort(a,a+n); if(chuli(n)) printf("YES\n"); else printf("NO\n"); } return 0; }
相关文章推荐
- 习题3-2 UVa 1586 Molar Mass
- 【Leetcode】之Longest Common Prefix
- Packet for query is too large (1986748 > 1048576). You can change this value on the server by
- git总结(三)修改提交的author和email
- mac工具--通过 arp 欺骗抓取局域网内设备数据包
- git总结(二)----常用命令
- Class类文件的结构
- tomcat源码学习1------源码下载和编译
- hdu 5514 Frogs 2015沈阳区域赛 数论 欧拉 好题 开心的题
- Sqlite数据库及在iOS程序中如何写入和读取数据库数据
- 百岁老人多出生在什么季节
- MapReduce工作原理
- LeetCode----Remove Duplicates from Sorted List II
- ResourceBundle读取配置文件
- 信息安全系统设计基础第八周期中总结
- git总结(一)---撤销修改
- UESTC Pick The Sticks (背包变形)
- 未来的发展(从Davin的演讲说开去)
- Ubuntu 下安装好 Wireshark 却找不到 Interface 的解决办法
- Android Activity的4种启动模式