训练指南
Yew0
公众号:程序员的面试题
展开
-
UVA 11729
题意:有n个部下,第i个部下需要你花x分钟来交代任务,然后用y分钟去完成。你选择交代任务顺序,使所有任务完成所花的时间最小。每次只能交代一个任务。解法:将完成任务时间由长到短排序。第i个与i+1个比较完成任务的时间和交代任务的时间取最长。贪心法求解。//#define YE#include#includeusing namespace std;struct node{原创 2013-09-15 22:16:16 · 626 阅读 · 0 评论 -
UVA 11292
题意:有m个骑士,n头的龙,一个能值为x的骑士可以砍掉恶龙一个直径不超过x的头,且需要支付x的金币。砍掉龙的所有头支付最少的金币。一个人只能砍一个头。无解输出“Loowater is doomed!”。解法:将龙的头和骑士排序,骑士能力值小的砍掉头直径小的。#include #include using namespace std;const int maxn = 20005;原创 2013-09-15 21:52:50 · 625 阅读 · 0 评论 -
UVA 11300
题意:圆桌旁有n个人,每个人手上都有x个金币,相邻的人才能交换Ai金币,使交换后金币数每个人都相同。求最少交换金币数。题解:ave为每个人相同的金币数,第1个人给第n个人金币x1,第2个人给第1个人金币x2……推出:A1-x1+x2=ave,A2-x2+x3=ave,……,An-xn+x1=ave x2=ave-A1+x1,x3=ave-A2+x2,……,x1=ave-An+xn原创 2013-09-16 18:07:03 · 610 阅读 · 0 评论 -
UVA 10881
题意:一条长L厘米的木棒,上有N只蚂蚁,有的向左爬,有的向右爬,速度为1厘米/秒。如果向碰撞了就往返方向爬,左为L,右为R。求T秒后每只蚂蚁的位置。题解:先排序,把蚂蚁的位置记录下来。如果蚂蚁相撞了,就当作两只蚂蚁直接穿过。排序后直接加上T,因为排序后的蚂蚁编号已经固定了,不过怎样爬动,都是在木棒上的第i只。//#define YE#include#include#include原创 2013-09-17 19:58:50 · 445 阅读 · 0 评论 -
UVALIVE 3644
题意:有一些化学物品,有a元素和b元素组成,如果有相同的元素的化学物品就不能装车,求没有装车的化学物品数。题解:简单的并查集,直接模板。//#define YE#include#includeint fa[100005];void init(){ int i; for(i=0;i<=100000;i++) { fa[i]=i; }}int find(in原创 2013-09-16 21:16:09 · 755 阅读 · 2 评论