hdu poj全都关了,只能先暂时去bzoj凑凑热闹。。。
2241 | [SDOI2011]打地鼠 | 第一轮Day1 | 892 | 1406 | |
2242 | [SDOI2011]计算器 | 第一轮day1 | 1743 | 4578 | |
2243 | [SDOI2011]染色 | 第一轮day1 | 3193 | 8536 | |
2244 | [SDOI2011]拦截导弹 | 第一轮day2 | 300 | 861 | |
2245 | [SDOI2011]工作安排 | 第一轮day2 | 879 | 1839 | |
2246 | [SDOI2011]迷宫探险 | 第一轮day2 | 125 | 217 |
bzoj 2241 打地鼠
有一个n*m(n,m<=100)的矩阵,每块有Aij个田鼠,每次可以用i*j的锤子击打一个矩阵内的所有区域,要求必须每个格子都有田鼠才能击打。锤子的大小自定,但击打过程当中不能改变,问最少击打多少次。
居然O(n^4)暴力就可以,枚举锤子大小,见识到了。。。
本来还想着用个什么前缀和优化一下的,结果这都不需要
bzoj 2242 计算器
模板题。模板分别为:快速幂,扩展欧几里得,bsgs算法
bzoj 2243 染色
Description
发现bzoj的题基本不用翻译。。。
树链剖分,每个节点记录三个值:区间内的颜色段数量,区间最左端颜色,区间最右端颜色
然后就好了
bzoj 2244 拦截导弹
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度、并且能够拦截任意速度的导弹,但是以后每一发炮弹都不能高于前一发的高度,其拦截的导弹的飞行速度也不能大于前一发。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。
在不能拦截所有的导弹的情况下,我们当然要选择使国家损失最小、也就是拦截导弹的数量最多的方案。但是拦截导弹数量的最多的方案有可能有多个,如果有多个最优方案,那么我们会随机选取一个作为最终的拦截导弹行动蓝图。
我方间谍已经获取了所有敌军导弹的高度和速度,你的任务是计算出在执行上述决策时,
最多能拦截掉的导弹数量和每枚导弹被拦截掉的概率。
这题没做出来。
第一个问题,显然求个二维的LIS就可以。可以转化为三维偏序问题,用cdq分治问题求解。
第二问,实际上就是问某个导弹在多少个最长的LIS序列当中出现过。
用同样的cdq分治求出某个位置向前、向后的LIS的方案数,概率就是前后的方案数相乘除以所有LIS的方案数。
长度取个max,出现次数求个和。
写起来有难度。
p.s. 趁着国庆没事写了这题
bzoj 2245 工作安排
裸费用流。
bzoj 2246 迷宫探险
先预处理每种状态之下每块区域有害的概率。状态用三进制压位,分别表示未遍历、有害、无害。
得到这些概率之后,DP。dp[i][j][k][l]表示走到(i,j),状态为k,血量为 l 的概率。根据之前预处理的结果,很容易进行状态转移。
day2好难。。。
2241 | [SDOI2011]打地鼠 | 第一轮Day1 | 892 | 1406 | |
2242 | [SDOI2011]计算器 | 第一轮day1 | 1743 | 4578 | |
2243 | [SDOI2011]染色 | 第一轮day1 | 3193 | 8536 | |
2244 | [SDOI2011]拦截导弹 | 第一轮day2 | 300 | 861 | |
2245 | [SDOI2011]工作安排 | 第一轮day2 | 879 | 1839 | |
2246 | [SDOI2011]迷宫探险 | 第一轮day2 | 125 | 217 |