How Long Do You Have to Draw Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 277    Accepted Submission(s): 110 Problem Description There are two horizontal lines on the XoY plane. One is y1 =…
Xor Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 132768/132768 K (Java/Others) Total Submission(s): 1555    Accepted Submission(s): 657 Problem Description Zeus 和 Prometheus 做了一个游戏,Prometheus 给 Zeus 一个集合,集合中包含了N个正整数,随后 Prometheus 将向 Ze…
It's All In The Mind 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5742 Description Professor Zhang has a number sequence a1,a2,...,an. However, the sequence is not complete and some elements are missing. Fortunately, Professor Zhang remembers some…
Doing Homework again Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 17622    Accepted Submission(s): 10252 Problem Description Ignatius has just come back school from the 30th ACM/ICPC. Now he…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5627 题意:Bestcoder的一道题,让你求&意义下的最大生成树. 解法: 贪心,我们从高位到低位贪心,如果含有这一位的边能够构成一棵树的话,我们就可以直接把其他不含有这一位的边全部去掉 然后重复这个行为 这个贪心显然正确啦,至于判断能否构成一颗树,就用并查集就好啦 //HDU 5627 #include <bits/stdc++.h> using namespace std; cons…
Intelligence System Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3414    Accepted Submission(s): 1494 Problem Description After a day, ALPCs finally complete their ultimate intelligence syste…
题意:给你n个点,m条边,包括有向边与无向边,每条边都有一个权值.在每个点上都有一个人,他可以走与这个点直接相连的所有边中任意一条边一次,并且得到这个权值,就不能走了,注意这条路也只能被一个人走.问最大的权值和是多少 首先我们可以想到每个点直接走与其相连权值最大的可以走的点,不一定是最优的,因为可能:1双向走到2权值为7,1单向走到3权值为6,这时1走到3才是最优的.但是我们可以观察得到对于单向边,我们确定起点,对于双向边,我们可以寻找两个点中最优的一个点,按照这样贪心就可以. 首先我们按照权值…
开始就觉得有思路,结果越敲越麻烦...  题意很简单,就是说一个青蛙从0点跳到m点,最多可以跳l的长度,原有石头n个(都仅表示一个点).但是可能跳不过去,所以你是上帝,可以随便在哪儿添加石头,你的策略是让青蛙跳过去的次数最多,但是你添加了石头后,青蛙会选择最少的次数跳过去,问青蛙跳的次数最多是多少. 原有石头与现在的距离不大于l,就找最远的那个可以跳的石头跳过去.接下来就是主要解决现在的位置与接下来的一块石头的距离大于l的情况了.模拟:上帝开始放石头,要让青蛙一定是这次跳这块石头(在上次不能跳)…
manacher算法详见 http://blog.csdn.net/u014664226/article/details/47428293 题意:给一个序列,让求其最大子序列,这个子序列由三段组成,第一段和第二段对称,第一段和第三段一样. 思路:首先利用Manacher算法求出以随意两个相邻元素为中心的回文串长度,用a[i]表示i-1,i为中心的回文串长度的一半, 那么问题就转化成了求最大的x,使得a[i]>=x,a[i+x]>=x,这一步能够贪心来做. 将a[i]从大到小排序(间接排序保留…
将兔子的血量从小到大排序,箭的威力也从小到大排序, 对于每仅仅兔子将威力大于血量的箭增加队列,写个优先队列使得出来数位价钱最少.. #include<stdio.h> #include<queue> #include<algorithm> #include<iostream> #include<functional> using namespace std; const int maxn=100010; struct tt { int d; in…