随笔分类 -  模拟贪心乱搞

BZOJ1607 [Usaco2008 Dec]Patting Heads 轻拍牛头
摘要:题目描述有问题,应该对于是每个纸条上的数,有多少个别的纸条上的数是他的约数。筛法。记录下每个数出现的次数,然后这个数推后面是他倍数的数。。 1 #include 2 #define max(a,b) a>b?a:b 3 const int maxn = 1000005; 4 5 int cnt[... 阅读全文

posted @ 2015-08-06 10:52 round_0 阅读(320) 评论(0) 推荐(0)

BZOJ1192 [HNOI2006]鬼谷子的钱袋
摘要:水题,但是有东西,一开始一直以为是先二进制算一下,剩下的如果是2的次幂就拆成1+某个数实在是错到不行,看了别人的才发现原来最后多出来一个钱袋是没必要的。。。。对于n,只要求出第一个2^k>=n 就是答案,9是一个很好的例子,9可以拆成1,2,3,5Ps:这题还特意玩了一下,最短把代码缩到了100B实... 阅读全文

posted @ 2015-08-06 01:21 round_0 阅读(829) 评论(0) 推荐(0)

BZOJ1303 [CQOI2009]中位数图
摘要:先统计出在b后面位置为i时,大于b和小于b的数字个数之差,然后枚举b前面的数字,在b后面找对应的方案数有多少,做一系列的加法就好 1 #include 2 #include 3 using namespace std; 4 typedef long long LL; 5 int a[100005... 阅读全文

posted @ 2015-08-03 20:23 round_0 阅读(123) 评论(0) 推荐(0)

BZOJ1008 [HNOI2008]越狱
摘要:只是一简单的减法。。ans = 总的方案数-不会发生越狱的方案数一开始正着推,,,写了一灰常复杂的式子,都开始想怎么写矩阵快速幂了T^T 1 #include 2 using namespace std; 3 typedef long long LL; 4 const LL mod = 10000... 阅读全文

posted @ 2015-08-03 19:50 round_0 阅读(133) 评论(0) 推荐(0)

BZOJ1218 [HNOI2003]激光炸弹
摘要:暴力水题。。敲的好麻烦。用前缀和可以n^2复杂度感觉这个题就是由问题,边上的问题不知道数据是怎么算的,反正过了。。。 1 #include 2 #include 3 #include 4 using namespace std; 5 const int maxn = 5005; 6 int d... 阅读全文

posted @ 2015-07-31 23:52 round_0 阅读(123) 评论(0) 推荐(0)

BZOJ1088 扫雷
摘要:水题,模拟。对于最后的方案数最多只会是2,想好久,又睡了一觉才想到这个,剩下的就好办了 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define lson l,m,rt<<... 阅读全文

posted @ 2015-07-31 18:42 round_0 阅读(165) 评论(0) 推荐(0)

LA 2965 Jurassic Remains
摘要:虽说是暴力题,但还是有很多很多的技巧与细节。 这题: 1、熟悉了位运算符,感觉异或操作的逼格有高了一级 2、可以用一个数的2进制来表示集合(这个需要多用) 3、中途相遇法。。。其实就是把总的集合拆成两半,降低指数使得暴力可解。(前段时间的中南校赛,好像也有个这种方法的题) #inclu... 阅读全文

posted @ 2015-01-24 14:34 round_0 阅读(124) 评论(0) 推荐(0)

LA3695 Distant Galaxy
摘要:对于这种题真的是一点想法都没有,根本不知道从哪里下手。。。 还是大白上的题(P52),有详解。 书上说的枚举上下边界是指求出总共有多少种不同的纵坐标的值,因为题目中给出的坐标都是整数,每个纵坐标值都可以做为一个边界,这样就只有有限的组合。 还有一开始很困惑的地方就是,为什么求出的矩... 阅读全文

posted @ 2015-01-23 16:09 round_0 阅读(210) 评论(0) 推荐(0)

LA3905 流星(Meteor)
摘要:很麻烦的一个题,有很多的技巧可以学到 #include #include #include #include using namespace std;typedef long long LL;const int maxn = 100005;const int INF = 0x3ffffff... 阅读全文

posted @ 2015-01-22 16:14 round_0 阅读(193) 评论(0) 推荐(0)

LA2678 Subsequence子序列
摘要:感觉还不错又简单的的一个题 #include #include using namespace std;const int maxn = 100005;const int INF = 0x3f3f3f3f;int a[maxn];int main(){// freopen("in... 阅读全文

posted @ 2015-01-22 12:11 round_0 阅读(113) 评论(0) 推荐(0)

UVA11549 Calculator Conundrum 计算器谜题
摘要:就觉得这题的暴力解法时间复杂度应该会很高,可能循环节会比较小吧 比较好的收获就是这个Floyd判环法 #include #include #include #include using namespace std;typedef long long LL;const int maxn = 1... 阅读全文

posted @ 2015-01-22 10:48 round_0 阅读(121) 评论(0) 推荐(0)

LA 3177 Beijing Guards(长城守卫)
摘要:贪心找最优策略。大白上有详解。 不过这里有几个值得思考的地方。 还有几个地方想不明白,脑子不够用了,先记着,改天再做一遍#include #include using namespace std;const int maxn = 100005;int n,a[maxn],left[maxn]... 阅读全文

posted @ 2015-01-21 20:30 round_0 阅读(188) 评论(0) 推荐(0)

LA 3902 Network
摘要:贪心的思想吧,对于每一个还没被覆盖到的叶子节点,最优的选择就是他的k级祖先(节点的父亲为1级祖先)。 记录下各深度的叶子节点,这对于这些节点选择一个最优的祖先节点,然后从选出的这个祖先节点向外扩展,把该点能覆盖到的叶子节点全都标记。按深度从深到浅使每个叶子节点都被覆盖后,既是ans #inc... 阅读全文

posted @ 2015-01-21 14:17 round_0 阅读(198) 评论(0) 推荐(0)

UVa11464 Even Parity
摘要:很有意思的题目,简单粗暴根据大白上的思路来的,但是数组下标从1开始会好处理一点#include #include #include #include #include #include using namespace std;const int maxn = 20;const int mod = 1... 阅读全文

posted @ 2015-01-20 16:09 round_0 阅读(124) 评论(0) 推荐(0)

LA2995 Image Is Everything
摘要:很有助于思考的模拟题#include #include #include #include #include #include using namespace std;const int maxn = 15;const int maxv = 1005;const int mod = 1e9+7;co... 阅读全文

posted @ 2015-01-20 13:33 round_0 阅读(152) 评论(0) 推荐(0)

HDU1005 Number Sequence
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1005本来看到题目分类里说这是一道水题,然后就想灌一下水,后来做了一下发现还是有些价值的。。。第一眼看到数据,n有1Y大,直接递推肯定不行的啦,光开数组也得超啊。剩下就是找规律了,f[n]和f[n+1]的... 阅读全文

posted @ 2014-03-23 22:43 round_0 阅读(130) 评论(0) 推荐(0)

HDU1063Exponentiation
摘要:自我认为这是非常恶心的一道题,大数就算了,还带着小数,WA了数不清次数,最后没办法找网上的数据一个一个的试,发现浮点数保存有误差,例如5.1004读入后输出可以看到是5.100399999...。我用的是先把小数转换为整数进行大数运算,期间要记录要原始小数点后有效的小数位数,最后输出要用。为了保... 阅读全文

posted @ 2014-03-10 21:38 round_0 阅读(368) 评论(0) 推荐(0)

HDU1050Moving Tables
摘要:贪心,重叠计数。 首先,对门的房间可以认为是一个,例如1和2号房间都可以看成是2号房间,这样就可以假设为有1-200个房间排成一行,用一个数组标记从a到b房间之间的房间,有重叠的时候标记++,标记数组中最大的数cnt记录一下,最后cnt即是需要搬运的次数即时间为cnt*10 1 #includ... 阅读全文

posted @ 2014-03-07 19:49 round_0 阅读(211) 评论(0) 推荐(0)

HDU1047
摘要:WA3次。。一看就晓得是高精+,也明白是输出格式要注意,就是忘了和0的情况一直纠结纠、结纠结到蛋疼...#include #include #define maxn 200char s[maxn];int a[maxn],sum[maxn];int main (){ int n,i,j,k; ... 阅读全文

posted @ 2014-03-07 17:27 round_0 阅读(227) 评论(0) 推荐(0)

导航