山东省第五届ACM大学生程序设计竞赛-Weighted Median(模拟)
来源:互联网 发布:ps mac版多少钱 编辑:程序博客网 时间:2024/05/22 11:29
Weighted Median
Time Limit: 2000MS Memory limit: 65536K
题目描述
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?
输入
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).
输出
One line for each case, print a single integer number— the weighted median of the sequence.
示例输入
710 35 5 10 15 5 2010 35 5 10 15 5 20
示例输出
20
提示
The S which indicates the sum of all weights may be exceed a 32-bit integer. If S is 5, equals 2.5.
来源
2014年山东省第五届ACM大学生程序设计竞赛
题目意思:
给一些数x和它们对应的权值w,按照如图所示公式,s是所有权值w的总和。
求一个xk,使得满足前两个公式。
解题思路:
用结构体保存元素值和权值,先升序排列,累计xk之前的权值和,直到该权值大于s。
题目意思:
给一些数x和它们对应的权值w,按照如图所示公式,s是所有权值w的总和。
求一个xk,使得满足前两个公式。
解题思路:
用结构体保存元素值和权值,先升序排列,累计xk之前的权值和,直到该权值大于s。
/* * Copyright (c) 2016, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:s.cpp * 作 者:单昕昕 * 完成日期:2016年4月20日 * 版 本 号:v1.0 */#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;const int N=100000010;struct Node{ int x,w;} node[N];int cmp(Node a,Node b)//结构体排序{ return a.x<b.x;}int main(){ int n; while(~scanf("%d",&n)) { int i; double sum=0;//注意用double for(i=0; i<n; i++) scanf("%d",&node[i].x); for(i=0; i<n; i++) { scanf("%d",&node[i].w); sum+=node[i].w; } sum/=2.0; double s=0; sort(node,node+n,cmp);//升序 for(i=0; i<n; ++i) { s+=node[i].w; if(s>sum) { printf("%d\n",node[i].x); break; } } } return 0;}
0 0
- Weighted Median(山东省第五届ACM大学生程序设计竞赛 )
- 山东省第五届ACM大学生程序设计竞赛-Weighted Median(模拟)
- 山东省第五届ACM大学生程序设计竞赛 Weighted Median
- Circle(山东省第五届ACM大学生程序设计竞赛 )
- 第五届山东省ACM Weighted Median
- 山东省第五届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大学生程序设计竞赛
- TimesTen 应用层数据库缓存学习:10. 监控缓存组的autorefresh操作
- Insterstellar wallpapers
- hbase基本操作
- c语言数据类型取值范围
- java中功能选项的移除指南(二)
- 山东省第五届ACM大学生程序设计竞赛-Weighted Median(模拟)
- HDU 1540 Tunnel Warfare(区间合并)
- 各种有关文件的对话框的创建方法
- java时间戳正序和倒序
- Java EE -> Get与Post 编码问题
- LeetCode *** 207. Course Schedule (Topological Sort )
- [firefox+plug-n-hack]轻松地配置burpsuite代理https流量 - 20160318
- 学习资源(均为转载内容)
- ElasticSearch性能优化策略