上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 27 下一页
摘要: 算水题吧,不过这题精度卡得还是挺厉害的,刚开始的时候我是把面积都放大,放大100000000倍,都用long long进行处理,还是过不了,只能用double控制精度了。/* * hdu1969/win.cpp * Created on: 2012-11-2 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include < 阅读全文
posted @ 2012-11-02 14:45 moonbay 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 平衡二叉树就可以,我是用的set。/* * hdu1908/win.cpp * Created on: 2012-11-2 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include <algorithm>#include <queue>#include <set>#include < 阅读全文
posted @ 2012-11-02 11:19 moonbay 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 这题开始一直不会,查解题报告,都看不懂,后来还是自己想明白了……其实这个题目的难点就在于重复值不能重复算(假设没有重复值就是一道很水的树状数组题了,甚至都可以不用树状数组),所以这题突破点就是消除重复值带来的影响。如何消除呢?其实也不难。我们先局部地看这个问题,数据不是一次性加入树状数组里,而是一个个地加。假设有两个查询(1, y1)和(x2, y2)其中y1<y2。假设[1, y1]之间没有重复的数,那么我们把这些数插入一个树状数组里就能解决问题(logn时间查出结果)。然后到了操作(x2,y2),因为y2比y1大,在y1到y2之间可能有些数在[1,y1]已经出现过了,那么我们如何处理 阅读全文
posted @ 2012-11-01 20:15 moonbay 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 这题我知道是用树状数组,可是好久没打树状数组了,就想用普通方法水过去~~结果……结果……水了好多方法都水不过,出题人真狠呐……我的水方法是对于每一次查询,初始化ans=(x2-x1+1)*(y2-y1+1),然后对于这个操作之前的每一个操作,对ans进行处理即可。可是交上去TLE,加上输入外挂,还是TLE,又加一个优化,即对于每一个查询,如果查询的区间小于10000,就直接数,还是TLE,服了,还是打树状数组吧~~~~~~~~~~~~~我的水代码:/* * hdu1892/win.cpp * Created on: 2012-11-1 * Author : ben */#include ... 阅读全文
posted @ 2012-11-01 14:01 moonbay 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 判断图是否连通,连通的话如果每个点的度为偶数就存在欧拉回路,否则就不存在。/* * hdu1878/win.cpp * Created on: 2012-9-7 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include <algorithm>#include <queue>#include <s 阅读全文
posted @ 2012-10-31 22:55 moonbay 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 这题两年前就看到了,据说就一个公式而已,可是我不会推,所以一直放到现在。可是今天推来推去,还是推不出那个公式,所以最后还是用DP做了。我能推出来的部分很简单,就是指数型母函数,f(x) = (1 + x^2/2! + x^4/4! + ... )^2 * ( 1 + x + x^2/2! + x^3/3! +... )^2,公式就是x^n项的系数了,可是这个我不会,求路过的大牛指点…… 阅读全文
posted @ 2012-10-31 17:06 moonbay 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 挺简单。假设我们现在面对两个要排的队a1, b1和a2, b2,已经花的时间为t,则先排1队需要的时间是a1+a2+t+tb1+tb2+tb1b2+a1b2,而先排2队需要时间是a1+a2+t+tb2+tb1+tb1b2+a2b1,所以实际上只要比较a1b2和a2b1的大小就能确定先排哪个队。按此排个序就行了。/* * hdu4442/win.cpp * Created on: 2012-10-30 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include & 阅读全文
posted @ 2012-10-30 10:55 moonbay 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 比较简单的模拟题,可是我刚开始读题理解有问题,Tom will change his direction into Jerry's direction, and Jerry also will change his direction into Tom's original direction这句话,我想多了,以为交换的时候,Jerry得换成Tom最开始的运动方向。改了这个就过了,1Y。/* * hdu4452/win.cpp * Created on: 2012-10-29 * Author : ben */#include <cstdio>#include &l 阅读全文
posted @ 2012-10-29 22:22 moonbay 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 挺水的题。我的做法是用ans = N*M*K减去不和谐的数目。首先,对每一个paints shoes对,ans -= N,这是没有问题的。这个操作全执行完以后就能记录每个paints跟多少shoes和谐(用paintspair[i]表示)。然后对于每一个clothes paints对,ans -= paintspair[i],这样就避免了重复计数。/* * hdu4451/win.cpp * Created on: 2012-10-29 * Author : ben */#include <cstdio>#include <cstdlib>#include <cs 阅读全文
posted @ 2012-10-29 19:18 moonbay 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 其实这题算动态规划有点牵强,因为它最大的难点和突破点在于把问题进行转化。我的做法是,先数出字符串的总数total和'A'的数目anum,然后只要在字符串中找出长度为anum的连续一段,它的'A'数最多就行了(假设是maxnum,则最后结果就是anum-maxnum)。找这个包含最多'A'的段才用到动态规划,其实挺简单的,就是循环一次记录从每个点起始往右长度为anum的段中'a'的数目即可。/* * hdu3819/win.cpp * Created on: 2012-10-29 * Author : ben */#include 阅读全文
posted @ 2012-10-29 16:35 moonbay 阅读(147) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 27 下一页