hihocoder 1123 好配对 (二分)
来源:互联网 发布:淘宝未按规定时间发货 编辑:程序博客网 时间:2024/05/20 22:36
时间限制:1000ms
单点时限:1000ms
内存限制:256MB
- 样例输入
12 23 24 13 12 3
- 样例输出
10
描述
给定两个序列a和b,每个序列中可能含有重复的数字。
一个配对(i,j)是一个好配对当从第一个序列中选出一个数ai,再从第二个序列中选出一个数bj且满足ai>bj。
给出两个序列,问存在多少个好配对。
输入
输入包含多组数据,数据第一行一个整数T,表示数据组数。(T<=5)
每组数据第一行包含两个整数n和m。(0<n,m<=105)
接下来n行,每行两个整数x和y,表示在第一个序列中有y个x。
接下来m行,每行两个整数x和y,表示在第二个序列中有y个x。(0<x<=109,0<y<=104)
输出
对于每组数据,输出一行一个整数,表示好配对的数量
题目链接:http://hihocoder.com/problemset/problem/1123
题目分析:二分即可
#include <cstdio>#include <cstring>#include <algorithm>#define ll long longusing namespace std;int const MAX = 1e5 + 5;struct DATA{ int x, y;}d1[MAX], d2[MAX];ll sum[MAX];bool cmp(DATA a, DATA b){ return a.x < b.x;}int binary_search(DATA *a, int sz, int num){ int l = 1, r = sz + 1; int mid, pos = r; while(l <= r) { mid = (l + r) >> 1; if(a[mid].x <= num) l = mid + 1; else { r = mid - 1; pos = mid; } } return pos;}int main(){ int T, n, m; scanf("%d", &T); while(T --) { memset(sum, 0, sizeof(sum)); scanf("%d %d", &n, &m); for(int i = 1; i <= n; i++) scanf("%d %d", &d1[i].x, &d1[i].y); for(int i = 1; i <= m; i++) scanf("%d %d", &d2[i].x, &d2[i].y); sort(d1 + 1, d1 + n + 1, cmp); sort(d2 + 1, d2 + m + 1, cmp); sum[1] = d1[1].y; for(int i = 2; i <= n; i++) sum[i] = sum[i - 1] + d1[i].y; ll ans = 0; for(int i = 1; i <= m; i++) { int j = binary_search(d1, n, d2[i].x); ans += (sum[n] - sum[j - 1]) * (ll)d2[i].y; } printf("%lld\n", ans); }}
0 0
- hihocoder 1123 好配对 (二分)
- #1123 : 好配对
- hihoCoder_#1123_好配对
- 数字配对(二分)
- hihocoder 118周 网络流四·最小路径覆盖(二分匹配,好题)
- [hihocoder taige 20-1]括号配对
- hihocoder:二分查找
- hihocoder #1095 二分
- hihocoder 1158 二分图
- hihocoder 1342 二分
- #1123 : 好配对(想法题:暴力+模拟)
- 匈牙利算法之二分配对
- 匈牙利算法之二分配对
- hihocoder 1122 二分图进阶
- hihoCoder - 1121 - 二分图判定
- hihoCoder 二分图系列(模板)
- hihoCoder 1121 二分图判定
- Hihocoder #1362 : 修补木桶 (二分)
- UITrackingRunLoopMode实例
- Spring中注解标签的解释
- 微信消息界面的实现
- 【补充】background-position
- JAVA的继承初始化
- hihocoder 1123 好配对 (二分)
- 解决win7的ie8浏览器以管理员身份运行,才不会崩溃的方法
- C#实现3D三角形 顶点转换以及投影
- ArcGIS10.1直连数据库
- springmvc集成动态数据源
- 使用curses函数库编辑屏幕
- java.lang.IllegalArgumentException: node to traverse cannot be null!
- 关于用户登录session
- isuker' blog