随笔分类 - 算法竞赛进阶指南
摘要:颓了十天回来做题果然…… 感觉还是很有收获的,这两以前都没学过 bzoj1013: [JSOI2008]球形空间产生器sphere poj1830(upd) 之前做得很烂还被 D飞*2 了。。重做一次 对于一个灯,把能把它点亮的其他灯设为1,然后高斯消元。 注意在这里的系数只是一个判断的手段,判断是
阅读全文
摘要:bzoj1053: [HAOI2007]反素数ant bzoj1257: [CQOI2007]余数之和sum Hankson的趣味题 暴力枚举。。约数 #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #i
阅读全文
摘要:poj2689 算根号R的质数,然后把L~R区间(这个很小啊)的合数判下 #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> using
阅读全文
摘要:搜索真的菜。。困扰了很久,上个星期天没休息好导致整个礼拜没有精神。。 大概完成得七七八八了吧。真是深切的体会到暴力出奇迹的疯狂啊。 3、虫食算 从末位开始枚举判断,通过加数可以推出和的字母代表的数。那么加一个剪枝,就是通过当前所知字母对应值判断是否合法。 #include<cstdio> #incl
阅读全文
摘要:一个早上做完了我真牛B 就是A*用于DFS啊,现在我才发现迭代加深真是个好东西。 poj3460 %了%了我们的目标是把它的顺序变对,那么第i个位置的值+1是要等于第i+1个位置的值的。对于一个操作,最多就能修正3个位置对应。这题我多迭代了一层时间就跑了多10倍有点恐怖 #include<cstdi
阅读全文
摘要:终于完全了解A*到底是什么玩意儿了 对于当前的决策,选取当前花费+预估花费最小来拓展。 因为假如预估出现失误,那么很可能就会延伸到一个错误的决策点,而这个决策点偏偏就是ed,而由于预估失误,其他点的当前花费+预估花费比这个错误的花费大,那么答案就错了。 所以预估花费要比最小花费小。 证一下: f函数
阅读全文
摘要:电路维修 这道题虽然乍一看就会想斜对角的两点之间边权受初始电路的影响要么为0要么为1,但是有一个思考点就是可以通过奇偶性,证明相邻的两个点是不可能在同一个电路中。练习一下双端队列。 #include<cstdio> #include<iostream> #include<cstring> #incl
阅读全文
摘要:今天莫名不想说话。 结果发现效率挺高? poj3322 本来可以1a的。。发现我宽搜写的是head<=tail而且初始是head=1,tail=2如果是多组数据简直就gg了。基础不牢固 这题虽然看起来麻烦,但是实际上仔细思考一下是不难推出对于各种不同放在地图上的方式分别表示的。 #include<c
阅读全文
摘要:poj2248 真是个新套路。还有套路剪枝...大到小和判重 #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> #include<bi
阅读全文
摘要:这一章真是心态崩,剪枝太玄学啦,特别是那个搜索顺序我靠真的。。。 poj1011 枚举答案,搜索记录当前到第几根木棒。 剪枝:1、从大到小排序 2、排除等效,这个感觉还行,就是木棒按大小顺序进去,去除顺序不同的相同的情况,相同的木棒也是不用管的。 好的前面这些都可以想,关键是第三个,拼接第一个失败就
阅读全文
摘要:这里基本就是入门吧。 可达性统计 用bitset搞的判重,发现这东西是真好用哈,空间还小 #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmat
阅读全文
摘要:https://i.cnblogs.com/EditPosts.aspx?catid=1215735
阅读全文
摘要:优先队列太好用了手写啥呀 poj1456 经过贪心专题的洗礼以后这题根本就不叫题啊。。。按时间大到小排每次取最大就好 #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm>
阅读全文
摘要:这章刷的真带劲 嘿嘿 裸题 #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> using namespace std; struct
阅读全文
摘要:这个算法本身就不难。 poj1961 #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> using namespace std; ch
阅读全文
摘要:被虐爆了 cry 我的hash是真的菜啊。。。 poj3349 肝了一个上午心态崩了。。。一上午fail了42次我的天,一开始搞了个排序复杂度多了个log,而且是那种可能不同值相等的hash,把12种情况枚举,TLE了,然后就用了那种栈循环的hash,又T又W,期间大力搞大质数想要各个不同的雪花ha
阅读全文
摘要:这东西我还是有点会玩的啊。。 邻值查找这东西不就是维护个前驱后继嘛。。 #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> using
阅读全文
摘要:感觉和栈那一讲一样简单啊。。 poj2259 这个乱搞硬模拟吧。。。没更新last WA了N次。。。(叫你懒得写拍) #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm>
阅读全文
摘要:这个不难吧,算是常识了。。毕竟也是刷过USACO的人 对顶栈这东西前几天才遇到过,好像和在线求中位数那东西放一起了吧 单调栈倒是没什么。。。贴个代码算了。一开始有点蠢的每个位置算,后来发现出栈再算就行了 #include<cstdio> #include<iostream> #include<cst
阅读全文
摘要:1:前面已经搞好了。 2:poj2965 这种开关问题一个点要么点一次要么不点,枚举所有点的方案实行即可 #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #incl
阅读全文