1、模拟bzoj2548Ctsc2002灭鼠行动(2012国家集训队round1Day3)
我的思路:因为该题给定了模拟的结束时刻,所以可以
1.枚举时刻从0到结束时间。
0)若有机关会触发,转(1),否则转(2)。
(1)触发该时刻的灭鼠机关,模拟对老鼠产生的影响;
(2)枚举该时刻活动的老鼠,进行1);
1)枚举所有老鼠(昏迷或非昏迷)
(1)若有雌雄鼠且成长值为0(意为成年鼠)位于同一坐标,则进行繁殖,昏迷时间+3,时刻+2该点的小鼠多出三只,成长值=5。
(2)否则,若老鼠昏迷,昏迷时间--。
(3)否则,小老鼠的成长值为0则视作大老鼠。
(4)否则,小老鼠的成长值--。
hzwer的题解:
此题最大的难点在于。。。网络上下的数据第7个点数据有误,答案似乎是22
而且要非常机智的先处理炸弹,再处理繁殖,因为有可能某时刻出生的小老鼠被变性了
其余没什么坑点吧。。注意一下眩晕的老鼠不能开始繁殖,两只繁殖完的老鼠如果一次移
动后仍然在一起且这个格子没有其他老鼠就可以繁殖,而不是两只在原地不停繁殖(我的疏漏点)
反思:1.忘记考虑老鼠的行动了;
2.此处切忌,动作不可重叠(不能既繁衍又移动),时间不能重叠(不能同时解除昏迷又移动又成长),武器的优先级最高(一定在老鼠的任何行动之前发动合法的武器);
2、图的连通bzoj2438[中山市选2011]杀人游戏
思路:本人初中党表示对概率这东西不是很懂。。。
大神的题解:http://www.cnblogs.com/xkui/p/4552391.html
题目的关键在于要想到,既然是关系问题(思考一下并查集是否可以解?不能,我认为出现了“x认识y(y不一定认识x,例如奥巴马)”表明不可用),就涉及到只要是几个人构成了有向图强联通分量,那么质问其中一人就可以得知所有的分量内的关系,缩一下点就没有必要枚举所有人。而此时,直接去问那些入度为0的分量。至于为什么可以参照这个公式哦:
ans=(n-1)/n(第一次问不是罪犯)*[(s1-1/n-1)(集合在第一点集中)+((n-s1)/(n-1))*((n-s1-1)/(n-s1))*((s2-1)*(n-s1-1))(分别为,不在第一点集,第二次不问到罪犯,在第二点集的概率)+...]。(问入度为0的点集可以保证它们之间互补相干)。
当然此题程序也并非单纯的模板
特判:当有一个分量只包括一个点、入度为0且不影响其他分量的入度是否为0(似乎不是桥),那么当其他点问过后,就不用关心这个点了,从ans中删除它的增量1。
3、搜索+并查集+图的连通NOI2008假面舞会
4、搜索+二分bzoj1082[SCOI2005]栅栏
思路:
首先,此题属于最小值最大化问题,果断下二分答案,而此题适用于left no AND right no BUT mid yes 的二分查找。
唔,据网上blogs,背包动归的写法还不如搜索+剪枝,所以此题约等于贪心题目,于是有了:
- 优化part 1:将店主可提供的木板和farmer John的需要木板进行排序。
那么,暴搜的框架就不再赘述,下面我们看看此题的剪枝。。。
可行性剪枝1:自然是搜完啦farmer John要买的最小mid个的木板后,向二分查找return 1咯。
可行性剪枝2:累计切割后剩下不能再用的木板,计为waste,处理要买的木板的前缀和,计为s[],并且滴,累积商店里所有木板的长度为sum(好吧,tot||total||cnt也行,但是sum s是更和谐的),当s[mid](当前要买的mid个木板总长)+waste>sum时,也就是搜索目标最小值所用最优木板长度比可承受长度还长,那么剪枝。
优化:当枚举的下一个要买到的木板长度和当前搞好的木板长度相同时,继续从当前商店的用过切过的木板i开始解决,否则从1开始。
此题大概就是如此吧,具体的那些难以言表东西交给我的代码解决吧!
二分答案技能get!
5、背包动归1 bzoj2287 消失之物
6、背包动归2 bzoj2748音量调节(简单背包动规的方案问题)
7、线段树bzoj1067降雨量(zkw线段树,具体见我的http://blog.csdn.net/keshuqi/article/details/52206744)