Family Gathering at Christmas(思维题)
Family Gathering at Christmas
时间限制: 1 Sec 内存限制: 128 MB
提交: 13 解决: 4
[提交] [状态] [讨论版] [命题人:admin]
题目描述
Alice suggests a way for her family to determine the gathering place. First, she associates each member with a weight, which quantifies the way of transportation. Then, the time needed for each non-host member m to reach the host is
where wm is the weight of the member, d m is the distance from the member’s place to the central city, and d h is the distance from the central city to the host’s place. Then she associates each member’s place with a key, which is the longest time needed for a non-host member to reach the place. To decide the host, she picks a small number k, and choose a place with the kth smallest key. Please develop an efficient algorithm to help Alice find the kth smallest key.
输入
The second line contains n integers, w1 , . . . , wn , and the third line contains d1 , . . . , dn . Two consecutive integers in a line are separated by a space.
输出
样例输入
- 2
- 3 2
- 5 3 4
- 3 8 5
- 4 2
- 6 2 8 2
- 10 18 12 4
样例输出
- 40
- 132
有的人用线段树做的,懂不起!
AC代码:
- #include<cstdio>
- #include<iostream>
- #include<algorithm>
- using namespace std;
- typedef struct{
- int su,wei;
- }my;
- int n,k;
- my f[];
- int comp(my x,my y)
- {
- if(x.wei<y.wei)
- return ;
- return ;
- }
- long long ans1,ans2,ans3,num,maxn,minn;
- int t1;
- int main()
- {
- int T;
- scanf("%d",&T);
- while(T--)
- {
- scanf("%d%d",&n,&k);
- for(int i=;i<=n;i++)
- scanf("%d",&f[i].su);
- for(int i=;i<=n;i++)
- scanf("%d",&f[i].wei);
- sort(f+,f+n+,comp);
- ans1=,t1=;
- for(int i=;i<=n;i++)
- if(i!=k)
- {
- if(ans1<1LL*f[i].su*(f[i].wei+f[k].wei))
- ans1=1LL*f[i].su*(f[i].wei+f[k].wei),t1=i;
- }
- if(t1>k)
- {
- ans2=;
- for(int i=;i<=n;i++)
- if(i!=t1)
- {
- if(ans2<1LL*f[i].su*(f[i].wei+f[t1].wei))
- ans2=1LL*f[i].su*(f[i].wei+f[t1].wei);
- }
- }
- else
- {
- ans2=5000000000LL;
- }
- if(k==)
- {
- ans3=;
- }
- else
- {
- ans3=;
- for(int i=;i<=n;i++)
- if(i!=k-)
- {
- if(ans3<1LL*f[i].su*(f[i].wei+f[k-].wei))
- ans3=1LL*f[i].su*(f[i].wei+f[k-].wei);
- }
- }
- num=ans1+ans2+ans3;
- minn=min(ans1,min(ans2,ans3));
- maxn=max(ans1,max(ans2,ans3));
- printf("%lld\n",num-minn-maxn);
- }
- return ;
- }
Family Gathering at Christmas(思维题)的更多相关文章
- zoj 3778 Talented Chef(思维题)
题目 题意:一个人可以在一分钟同时进行m道菜的一个步骤,共有n道菜,每道菜各有xi个步骤,求做完的最短时间. 思路:一道很水的思维题, 根本不需要去 考虑模拟过程 以及先做那道菜(比赛的时候就是这么考 ...
- cf A. Inna and Pink Pony(思维题)
题目:http://codeforces.com/contest/374/problem/A 题意:求到达边界的最小步数.. 刚开始以为是 bfs,不过数据10^6太大了,肯定不是... 一个思维题, ...
- ZOJ 3829 贪心 思维题
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3829 现场做这道题的时候,感觉是思维题.自己智商不够.不敢搞,想着队友智商 ...
- 洛谷P4643 [国家集训队]阿狸和桃子的游戏(思维题+贪心)
思维题,好题 把每条边的边权平分到这条边的两个顶点上,之后就是个sb贪心了 正确性证明: 如果一条边的两个顶点被一个人选了,一整条边的贡献就凑齐了 如果分别被两个人选了,一作差就抵消了,相当于谁都没有 ...
- C. Nice Garland Codeforces Round #535 (Div. 3) 思维题
C. Nice Garland time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- PJ考试可能会用到的数学思维题选讲-自学教程-自学笔记
PJ考试可能会用到的数学思维题选讲 by Pleiades_Antares 是学弟学妹的讲义--然后一部分题目是我弄的一部分来源于洛谷用户@ 普及组的一些数学思维题,所以可能有点菜咯别怪我 OI中的数 ...
- UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There Was One / POJ 3517 And Then There Was One / Aizu 1275 And Then There Was One (动态规划,思维题)
UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There W ...
- HDU 1029 Ignatius and the Princess IV / HYSBZ(BZOJ) 2456 mode(思维题,~~排序?~~)
HDU 1029 Ignatius and the Princess IV (思维题,排序?) Description "OK, you are not too bad, em... But ...
- cf796c 树形,思维题
一开始以为是个树形dp,特地去学了..结果是个思维题 /* 树结构,设最大点权值为Max,则答案必在在区间[Max,Max+2] 证明ans <= Max+2 任取一个点作为根节点,那么去掉这个 ...
随机推荐
- shell脚本学习(1)
格式: #!/bin/bash :标志一个shell脚本 #Filename:first_shell.sh :文件名称 #a ...
- java——sleep()和wait()
1.所属类不同sleep()属于Thread而wait()属于Object 2.sleep()没有释放当前锁,wait()则释放了当前锁 3.sleep(0)的目的是使当前线程释放cpu,其他线程可以 ...
- Android中的时间格式的校验
public class MainActivity extends Activity implements OnClickListener{ private Button btn1; private ...
- PCB的版本控制
http://club.szlcsc.com/article/details_1783_1.html 转载自:http://www.amobbs.com/thread-5606014-1-1.html ...
- javascript 例外处理Try{}catch(e){}
程序开发中,编程人员经常要面对的是如何编写代码来响应错误事件的发生,即例外处理(exception handlers).如果例外处理代码设计得周全,那么最终呈现给用户的就将是一个友好的界面.否则,就会 ...
- [转]Jquery Mobile dialog的生命周期
本文转自:http://www.cnblogs.com/jackhuclan/archive/2012/04/05/2432972.html JQuery Mobile对htm5的移动开发绝对是个好用 ...
- Murano Weekly Meeting 2016.08.02
Meeting time: 2016.August.02 1:00~2:00 Chairperson: Valerii Kovalchuk, from Mirantis Meeting summar ...
- HDU 4512——吉哥系列故事——完美队形I——————【LCIS应用】
吉哥系列故事——完美队形I Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tot ...
- 位运算(2)——Number of 1 Bits
Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also know ...
- JavaScript 对象继承 OOP (三)
对象继承 A 对象通过继承 B 对象,就能直接拥有 B 对象的所有属性和方法.这对于代码的复用是非常有用的. JavaScript 语言的继承不通过 class (es6 中的class 不过是 ...