摘要: 原理就是先利用两个数间的差分,因为把一段连续的数做标记相当于头差分+1,尾差分-1,然后做前缀和即可。可以想到,相比segment tree这种个只适合于查询操作不多但修改操作很多的情况(如果保存前缀和修改又会降速),否则计算前缀和会很费时。/*ID:esxgx1LANG:C++PROG:hdu15... 阅读全文
posted @ 2014-07-26 16:05 e0e1e 阅读(163) 评论(0) 推荐(0)
摘要: 终于过了。。感谢xiaodao提供测试数据,然后最终找到了一个十分ruozhi的BUG。。。= =,坑爹。。没什么好说的,直接上主席树的干活。。。下面是HDU的代码,如果是SPOJ自行把%I64d换成%lld继续干活。。 1 /* 2 ID:esxgx1 3 LANG:C++ 4 PROG:... 阅读全文
posted @ 2014-07-26 14:43 e0e1e 阅读(311) 评论(0) 推荐(0)
摘要: 最短路relax + 带剪枝的搜索,个人觉得此剪枝十分牛逼,如果不参照题解我是反应不过来的。 1 /* 2 ID:esxgx1 3 LANG:C++ 4 PROG:B 5 */ 6 #include 7 #include 8 #include 9 #include 10 using names... 阅读全文
posted @ 2014-07-26 01:41 e0e1e 阅读(300) 评论(0) 推荐(0)