Weighted Median(山东省第五届ACM大学生程序设计竞赛 )
来源:互联网 发布:2015年度网络热词 编辑:程序博客网 时间:2024/05/02 01:03
Problem Description
For n elements x1, x2, ..., xn with positive integer weights w1, w2, ..., wn. The weighted median is the element xk satisfying
and , S indicates
and , S indicates
Can you compute the weighted median in O(n) worst-case?
Input
There are several test cases. For each case, the first line contains one integer n(1 ≤ n ≤ 10^7) — the number of elements in the sequence. The following line contains n integer numbers xi (0 ≤ xi ≤ 10^9). The last line contains n integer numbers wi (0 < wi < 10^9).
Output
One line for each case, print a single integer number— the weighted median of the sequence.
Example Input
710 35 5 10 15 5 2010 35 5 10 15 5 20
Example Output
20
Hint
The S which indicates the sum of all weights may be exceed a 32-bit integer. If S is 5, equals 2.5.
题意:给你xi、wi,找的符合满足上面式子的sk;
思路:就是一个结构体排序,然后从前往后加,大于就输出;
#include <iostream>#include <cstdio>#include <cstring>#include <queue>#include <cmath>#include <algorithm>#include <vector>#include <map>#include <string>#include <stack>#define LL long long#define INF 0x7fffffff#define MAX 10000010#define PI 3.1415926535897932#define E 2.718281828459045using namespace std;struct edge{ int x,w;};bool cmp(edge X,edge Y){ return X.x<Y.x;}edge G[MAX];double sum;int n;int main(){ while(scanf("%d",&n)!=EOF) { sum=0; for(int i=0; i<n; i++) { scanf("%d",&G[i].x); } for(int i=0; i<n; i++) { scanf("%d",&G[i].w); sum+=G[i].w; } sum=sum/2.0; sort(G,G+n,cmp); double ss=0; for(int i=0; i<n; i++) { ss+=G[i].w; if(ss>=sum) { printf("%d\n",G[i].x); break; } } } return 0;}
阅读全文
0 0
- Weighted Median(山东省第五届ACM大学生程序设计竞赛 )
- 山东省第五届ACM大学生程序设计竞赛 Weighted Median
- 山东省第五届ACM大学生程序设计竞赛-Weighted Median(模拟)
- Circle(山东省第五届ACM大学生程序设计竞赛 )
- 第五届山东省ACM Weighted Median
- 山东省第五届ACM大学生程序设计竞赛-angry_birds_again_and_again(积分)
- 山东省第五届ACM大学生程序设计竞赛 Full Binary Tree
- 山东省第五届ACM大学生程序设计竞赛 angry_birds_again_and_again 求积分
- 山东省第五届ACM大学生程序设计竞赛 Colorful Cupcakes
- 2014山东省第五届ACM省赛 Weighted Median
- 2014年山东省第五届ACM--Weighted Median
- 山东省第五届ACM大学生程序设计竞赛-Hearthstone II(组合数学-第二类Stirling数)
- 2014年山东省第五届ACM大学生程序设计竞赛--Hearthstone II(第一类Stirling数)
- Full Binary Tree(山东省第五届ACM大学生程序设计竞赛 )
- 山东省第七届ACM大学生程序设计竞赛
- 第四届 山东省ACM大学生程序设计竞赛
- 第七届 山东省ACM大学生程序设计竞赛
- 山东省第五届ACM省赛题——Weighted Median(模拟)
- 08、vue.js 之solt
- 替换
- MySQL存储过程详解 mysql 存储过程
- angular源码分析
- Hilbert变换及谱分析
- Weighted Median(山东省第五届ACM大学生程序设计竞赛 )
- 将数据库中Clob类型转换成java的String类型
- Android 5.1.1 源码目录结构
- 引用类型
- vs 中调用QT的动态连接库
- android实时视频网络传输方案总结(一共有五套)
- Hbuilder 使用技巧
- C++/MFC-几种常用控件
- python装饰器学习