思维贪心
文章平均质量分 68
子在梦中曰
程序是蓝色的诗
展开
-
hdu 4325 Flowers(呕心沥血)
昨天晚上睡不着,就在OJ上随便找题做。看到之前某队友写了这道题目的解题报告,想着闲着也是闲着,我也就做一下。这道题最难处理的地方是数据范围是10^9。我想了许久终于想到了解决的办法,又花了很长时间修改,终于把这道题给A掉。然后我回头去看队友的解题报告,发现那货竟然是利用数据太弱直接水过去了。粗俗! 这类题的通用解法就是在花开的a时刻,把数组mark[a]的值加上一,在花落的b时刻,把数组mark原创 2013-07-10 08:49:32 · 964 阅读 · 0 评论 -
hdu 1052 Tian Ji -- The Horse Racing(贪心)
这个博客讲得非常漂亮,言简意赅:原创 2014-04-17 15:55:03 · 673 阅读 · 0 评论 -
JAVA hdu 3951 Coin Game(博弈)
简单的列举了前面几组例子,可以看出在n为偶数的时候,除了k>=n,其他情况均为second,在n为奇数的时候,除了k=1和k>n=,其他清空均为second。 第一次提交的时候没有注意k是可以大于n的。 胡浩大牛本人的解析:见这里 import java.util.Scanner; class Bet { int a, b; public void setBet(int x, int原创 2014-03-03 09:08:16 · 668 阅读 · 0 评论 -
hdu 2509 Be the Winner(博弈)
如果1的数量是偶数,会交换一次胜负手; 如果2的数量是偶数,会交换一次胜负手; 如果大于2的数量是偶数,会交换一次胜负手。 #include #include #define N 105 int a[N]; int main() { int n; while(scanf("%d",&n)!=EOF) { int x,y,z; x=y原创 2013-10-08 22:40:09 · 849 阅读 · 0 评论 -
hdu 2516 取石子游戏(博弈)
只要列举一下前面十几组数据的胜负手,就可以很明显地看出来只有菲薄数是先手输,其他都是先手赢。 #include #include typedef long long LL; LL a[60]; int main() { a[1]=2;a[2]=3; for(int i=3;i<=50;i++) a[i]=a[i-1]+a[i-2]; //printf("%I64d\n原创 2013-10-09 10:49:49 · 602 阅读 · 0 评论 -
hdu 4642 Fliping game(博弈)
比赛的时候我推出在一条直线上,如果后面的数跟当前记录的数的值不一样,就改变当前记录值,如果一样则不变。我没有去推在二维上的状况,直接就写了。结果A了。 刚看别人做这道题就直接光看右下角的值就行。。。。然后发现,按照我的思路直接拿我的初始值,也就是1和右下角的值比就行了,相同就是Alice赢,不同就是Bob赢。 #include #include #define N 105 int mark[N原创 2013-08-01 19:30:02 · 435 阅读 · 0 评论 -
hdu 2897 邂逅明下(博弈)
很容易就可以推出胜负是按照p+q为循环节改变的。 #include int main() { int a,b,c; while(scanf("%d%d%d",&a,&b,&c)!=EOF) { if(a<=b) { printf("LOST\n"); continue; }原创 2013-08-02 17:15:45 · 536 阅读 · 0 评论 -
Codeforces Round #201 (Div. 2)
A、我猜的应该是只要最大的数放在第一个,最小的数放在最后一个,中间的数随便怎么排都不影响value,没有尝试证明,写了个程序测试了几组数据,看结果一样就直接敲代码提交了。 #include #include #include int cmp(const void *a,const void *b) { return *(int *)a-*(int *)b; } int main()原创 2013-09-21 16:53:54 · 779 阅读 · 1 评论 -
hdu 2578 Dating with girls(1)(二分查找)
做了Dating with girls(2),强迫症犯了,所以一定要把这道题也做了。 排序,删除重复元素,然后二分查找一遍。水题。 #include #include #include #define N 1000005 int a[N],n,k; int cmp(const void *a,const void *b) { return *(int *)a-*(int *)b;原创 2013-11-03 14:44:17 · 644 阅读 · 0 评论