
贪心
MissAnnLucky
Cease to struggle cease to live.
展开
-
uva 11054 - Wine trading in Gergovia
#include#include#include#include#includeusing namespace std;int a[100001];int main(){ //freopen("in.txt","r",stdin); int n,temp; long long int sum; while(scanf("%d",&n)!=EOF&&原创 2013-07-24 08:19:29 · 495 阅读 · 0 评论 -
HDU 1203 贪心或者DP
贪心策略是申请offer需要的钱越少越好,而成功率越高越好,所以按照需要的钱和成功率的比值从小到大排序,依次选择。#include#include#include#include#define MAXN 10010using namespace std;struct node{ int money; double p,r; bool operator<(c原创 2013-08-15 11:23:38 · 520 阅读 · 0 评论 -
HDU 1054Strategic Game 贪心
这个题与http://blog.youkuaiyun.com/anqier0468/article/details/9453567看起来没什么联系,但是贪心策略是一样的,(做这个题时还是没想起来),从度数为1的结点a开始算起,因为删除这个度数为1的结点肯定不如删除与它相连接的结点b效率高,所以一定是在与它相连的结点b上房哨兵,然后删除与b相连的边,直到没有度数为1的结点。特别注意只有一个结点时输出1。原创 2013-08-14 10:35:29 · 641 阅读 · 0 评论 -
ZOJ 2397(HDU 1052) Tian Ji -- The Horse Racing 贪心
田忌赛马的模拟,但是这个题思路不清晰很容易WA。参考http://blog.sina.com.cn/s/blog_76102a690100q0gr.html分析,写的代码。#include#include#include#include#include#define MAXN 1010using namespace std;int main(){ //freopen("原创 2013-08-03 12:48:30 · 649 阅读 · 0 评论 -
HDU 1009 贪心
一开始以为浮点数有精度损失,在输出那里写 printf("%.3lf\n",sum+0.0001);结果WA了。不需要考虑精度损失。#include#include#include#include#include#define MAXN 5010using namespace std;struct Node{ int j,f; double p; b原创 2013-08-13 19:22:54 · 535 阅读 · 0 评论 -
HDU 1051 Wooden Sticks 贪心
题意理解错了,这个题是找有多少个递增的子列,并不是第一次的sticks是(1,2),只要是后面的stick的len>1,wei>2就可以了,应该是后面是stick1#include#include#include#include#include#define MAXN 5010using namespace std;struct node{ int len,wei,原创 2013-08-13 18:47:15 · 496 阅读 · 0 评论 -
SGU 180 贪心
不得不说,又是没读懂题意,看了解题报告才知道,大意是有n条链子,每条链子上有L个环,一分钟内可以从一条链子上拆下一个环,然后把连接起两条链子,问最小的时间把这些链子连成一条链子。拆最短的链子,从最长的开始连。#include#include#include#includeusing namespace std;int main(){ //freopen("in.txt","原创 2013-08-18 17:47:44 · 494 阅读 · 0 评论 -
SPOJ 1435. Vertex Cover
题目链接: http://www.spoj.com/problems/PT07X/#include#include#include#include#include#define MAXN 100010using namespace std;vectoredge[MAXN];queueq;int node[MAXN],vis[MAXN];int main()原创 2013-07-26 08:28:40 · 926 阅读 · 0 评论 -
UVA 10718 Bit Mask
为了使最后or运算的值最大,我们不妨从二进制位的最高位开始依次考虑。如果该位是0的话,我们应该尽量让其变成1,这时我们就可以依据我们的意图算出M可能的最小值和最大值,如果这个区间和L、U这个区间有交集的话,就说明我们是可以把这一位变成1的。同理,如果该位是1的话,无论M的这位是什么,最后这位还是为1,但为了让M尽量小,我们应该尽可能让这一位为0。当然,这时你是否会怀疑这样一个问题,如果这位为0的话转载 2013-07-24 08:23:05 · 499 阅读 · 0 评论 -
HDU 3650 贪心+二分
( 这个题数据量比较小,所以类似于模拟也可以做。) 按照起始时间排序,然后从最小的起点开始,找在这一天内能够观看的所有节目,写了个二分优化了时间。 #include#include#include#include#define MAXN 110using namespace std;typedef struct node{ int原创 2013-10-09 19:46:14 · 566 阅读 · 0 评论