博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
uva-10487-枚举
阅读量:5979 次
发布时间:2019-06-20

本文共 1675 字,大约阅读时间需要 5 分钟。

题意:给你一个集合,每俩个数相加得到一个和s,输入s1,问离s1最近的s是多少

二分,注意如果二分出相等,那一定是最近的数,要不然就比较最后mid和mid-1的数

#include 
#include
#include
#include
#include
#include
#include
#include
namespace cc{ using std::cout; using std::endl; using std::cin; using std::map; using std::vector; using std::string; using std::sort; using std::priority_queue; using std::greater; using std::vector; using std::swap; constexpr int N = 1001; //constexpr int N = 30; //priority_queue
, greater
>q; int a[N]; int b[N*N]; void solve() { int n; int t = 0; while (cin >> n && n) { t++; for (int i = 0;i < n;++i) cin >> a[i]; int k = 0; for (int i = 0;i < n - 1;i++) { for (int j = i + 1;j < n;j++) { b[k++] = a[i] + a[j]; } } sort(b, b + k); int c, q; cin >> c; cout << "Case " << t << ":" << endl; while (c) { cin >> q; int qq = INT32_MAX; int l = 0, r = k-1; int mid=0; int ok = 0; while (l <= r) { mid = (l + r) / 2; if (b[mid] < q) l = mid + 1; else if (b[mid] > q) r = r - 1; else { ok = 1; break; } } if(ok) cout << "Closest sum to " << q << " is " << q<<"." << endl; else { if(mid==0) cout << "Closest sum to " << q << " is " << b[mid] << "." << endl; else if(abs(b[mid-1]-q) < abs(b[mid]-q)) cout << "Closest sum to " << q << " is " << b[mid-1] << "." << endl; else cout << "Closest sum to " << q << " is " << b[mid] << "." << endl; } --c; } } }};int main(){#ifndef ONLINE_JUDGE freopen("d://1.text", "r", stdin);#endif // !ONLINE_JUDGE cc::solve(); return 0;}

  

posted on
2018-11-12 22:48 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/shuiyonglewodezzzzz/p/9949697.html

你可能感兴趣的文章
Atitti 过程导向 vs 结果导向 attlax的策
查看>>
mysql主从同步(5)-同步延迟状态考量(seconds_behind_master和pt-heartbea)
查看>>
分布式缓存技术memcached学习系列(三)——memcached内存管理机制
查看>>
PHP 服务端 和 APP 客户端 实现 RSA+AES 双向加密解密
查看>>
c++ 11开始语言本身和标准库支持并发编程
查看>>
2017春节~人生智慧箴言
查看>>
.NET Core 之 MSBuild 介绍
查看>>
mongodb概念
查看>>
突破MIME限制上传
查看>>
EF Code First学习笔记:数据库创建
查看>>
终结符、非终结符
查看>>
Node.js刷新session过期时间
查看>>
详解Javascript中的Array对象
查看>>
iOS:即时通讯之<了解篇 SocKet>
查看>>
@EnableTransactionManagement注解理解
查看>>
vue前后分离动态路由和权限管理方案
查看>>
《JavaScript高级程序设计》读书笔记(十):本地对象Date
查看>>
linux中fork()函数详解
查看>>
从1G到5G,46年屏幕变迁下,富士康、苹果、三星、华为的浴火重生路 ...
查看>>
##II 第四单元##管理系统中的简单分区和文件系统
查看>>