ACM-抽签(二分搜索)
2015-05-03 19:46
253 查看
//将写有数字的n个纸片放入口袋,有放回抽取4次,4次数字的总和是否会等于m //input //n=3 //m=10 //k={1,3,5} // //output //Yes // #include "iostream" #include "algorithm" using namespace std; const int MAX_N=1000; int n,m; int k[MAX_N]; int kk[MAX_N*MAX_N]; bool binary_search(int x)//二分搜索 { int l=0,r=n*n; while(r>l) { int i=(r+l)/2; if(kk[i]==x) return true; else if(x>kk[i]) l=i+1; else r=i; } return false; } void solve() { bool flag=false;//判断是否找到 for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { kk[i*n+j]=k[i]+k[j];//枚举k[i]+k[j] } } sort(kk,kk+n);//排序便于进行二分搜索 for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { if(binary_search(m-k[i]-k[j])) flag=true; } } if(flag) cout<<"Yes"<<endl; else cout<<"No"<<endl; } int main(int argc, char const *argv[]) { cin>>n>>m; for(int i=0;i<n;i++) { cin>>k[i]; } solve(); return 0; }
相关文章推荐
- 2016 ACM/ICPC Asia Regional Qingdao Online 1001 I Count Two Three(打表+二分搜索)
- [2010山东ACM省赛] Greatest Number(数的组合+二分搜索)
- 2017acm/icpc北京赛区网络赛 Agent Communication 二分+搜索
- [2010山东ACM省赛] Greatest Number(数的组合+二分搜索)
- ACM: 一题二分搜索题. poj3258 & 4000 nbsp;…
- [2010山东ACM省赛] Greatest Number(数的组合+二分搜索)
- ACM: 一题二分搜索题 poj3273 (…
- ACM-二分搜索之Can you solve this equation?——hdu2199
- 北大ACM2456——Aggressive cows~~二分搜索
- 用到二分搜索的抽签问题
- HDU 3681 Prison Break 二分+搜索 The 35th ACM-ICPC Asia Regional Contest (Hangzhou)
- 写一个没有错的二分搜索程序
- js实现二分搜索的两种方法
- hdu5178(二分搜索)
- 动态数组 选择排序 二分搜索技术
- [ACM] POJ 3273 Monthly Expense (二分解决最小化最大值)
- nyoj914(二分搜索+贪心)
- 二分查找求函数的区间最小值&&http://acm.hdu.edu.cn/showproblem.php?pid=2899
- POJ2456 - Aggressive cows - 二分搜索+贪心
- CodeForces 371C-Hamburgers(二分搜索)