SCU2016-05 G题双重二分
来源:互联网 发布:余南平知乎 编辑:程序博客网 时间:2024/05/16 10:20
Analyse:
先二分中位数,然后用二分去判断这个中位数是不是可以成立,双重二分。
/**********************jibancanyang************************** *Author* :jibancanyang *Created Time* : 三 7/13 17:17:20 2016**Problem**:**Get**:**Code**:***********************1599664856@qq.com**********************/#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>#include <string>#include <cmath>#include <cstdlib>#include <ctime>#include <stack>using namespace std;typedef pair<int, int> pii;typedef long long ll;typedef unsigned long long ull;typedef vector<int> vi;#define pr(x) cout << #x << ": " << x << " " #define pl(x) cout << #x << ": " << x << endl;#define pri(a) printf("%d\n",(a))#define xx first#define yy second#define sa(n) scanf("%d", &(n))#define sal(n) scanf("%lld", &(n))#define sai(n) scanf("%I64d", &(n))#define vep(c) for(decltype((c).begin() ) it = (c).begin(); it != (c).end(); it++) const int mod = int(1e9) + 7, INF = 0x3f3f3f3f;const int maxn = 1e5 + 13;int A[maxn];int n;ll k;bool judge(int mid) { ll low = 0; for (int i = 0; i < n; i++) { int t = (lower_bound(A + i, A + n, mid + A[i]) - (A + i)); t--; //pr(i), pl(t); low += t; } return low < k;}int main(void){#ifdef LOCAL freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout);#endif while (~sa(n)) { for (int i = 0; i < n; i++) sa(A[i]); sort(A, A + n); ll l = 0, r = int(2e9); k = ((ll(n) * (n - 1)) / 2 + 1) / 2; while (l < r) { ll mid = (l + r + 1) / 2; // pr(l), pr(r), pl(mid); if (judge(mid)) { l = mid; } else r = mid - 1; } printf("%lld\n", l); } return 0;}
0 0
- SCU2016-05 G题双重二分
- SCU2016-05 E题二分
- SCU2016-05 F题二分最大化平均值
- SCU2016-02 G题 (技巧)
- SCU2016-02 S题 区间二分
- SCU2016-05 R题数学模拟
- SCU2016-05 J题构造
- SCU2016-01 G题(最大流 + floyd_warshall)
- SCU2016-03 P题 二分+DLX可重复覆盖
- SCU2016-03 O题二分 + DLX可重复覆盖
- SCU2016-01 H题 (二分图带权匹配 KM算法)
- SCU2016-01 I题 二分 + 斜率优化dp
- SCU2016-05 A题无向图割顶
- SCU2016-05 P题数学构造
- SCU2016-05 K题 (模拟水)
- poj3579 双重二分,有意思的一道题,注意二分边界
- SCU2016-01 M题
- SCU2016-04 A题
- python学习——使用__slots__
- 羊皮卷里面的法则
- Java中的ArrayList/List使用方法
- ImageLoader-----适配器
- ImageLoader----Activity
- SCU2016-05 G题双重二分
- ImageLoder----Application类
- Java中输入——输出——数据类型转化…
- MySql数据库连接不成功
- 友谊到底是艘什么样的小破船,那么…
- 2017年IT行业就业形势小分析
- SlidingMenu侧滑菜单
- 二叉树 (Standard IO)
- DbUtils增删改查