随笔分类 -  OJ---POJ

摘要:"M × N Puzzle" Sol: $N M$数码某局面到达另一局面的可行性判定 可以通过逆序对个数的奇偶性是否相同来判定。 我们将这$N M 1$个数写成一列来看。 + 考虑行为奇数,列为奇数的情况 逆序对个数奇偶性相同时可达 空格左右移动不会改变逆序对的个数,而上下移动相当于改变了该列前后共 阅读全文
posted @ 2018-10-14 07:41 dprswdr 阅读(344) 评论(0) 推荐(0)
摘要:"POJ1845 Sumdiv" Sol: 约数个数和$sumdiv=(1+p_1+p_1^2+\dots + p_1^{c_1}) \dots (1+p_k+p_k^2+\dots + p_k^{c_k})$ 其中每一项都是一个首项为1,公比为$p_i$的等比数列的和,即 $1 \frac{1 p 阅读全文
posted @ 2018-10-09 23:58 dprswdr 阅读(159) 评论(0) 推荐(0)
摘要:"POJ2018 Best Cow Fences" Sol: 题目要求一个平均数最大且长度不小于L的子段,并输出平均数 1000的 整数部分(直接截取而非舍入) 以下思路来自PKU李煜东神犇的《算法竞赛进阶指南》 我们将问题转化一下:相当于将序列中每个数都减去同一个值,且最大子段和非负(即能够找到一 阅读全文
posted @ 2018-10-09 23:25 dprswdr 阅读(428) 评论(0) 推荐(0)
摘要:"POJ1958 Strange Towers of Hanoi" Sol: n盘4塔问题可以分为3步: 1.以4塔模式移走i个盘。 2.以3塔模式将剩余n i个盘移至第4塔。 3.以4塔模式将第一步中的i个盘移至第4塔。 我们用$d[i]$表示在3塔模式下移i个盘的最小步数,$f[i]$表示在4塔 阅读全文
posted @ 2018-10-09 22:55 dprswdr 阅读(235) 评论(0) 推荐(0)
摘要:POJ2182 Lost Cows "传送门" 题意: 给定一个排列,给出每个位置$i$的数$a_i$前面比$a_i$小的数的个数$k_i$,求这个排列。 思路: $a_n$是最先可以确定的:$a_n=k_n+1$。然后我们可以倒序处理,对于$a_i$,它等于当前未被选的数中第$k_i+1$小的那个 阅读全文
posted @ 2018-09-16 23:38 dprswdr 阅读(185) 评论(0) 推荐(0)
摘要:POJ2676 Sudoku "传送门" 题意: 填充未完成的数独。。。(就这么简单。。。。 思路: 爆搜即可。 可行性剪枝:用三个$bool$数组分别记录行、列、$3 3$的块中,$9$种数字的使用情况 AC Code: include include include using namespac 阅读全文
posted @ 2018-09-08 23:34 dprswdr 阅读(103) 评论(0) 推荐(0)
摘要:POJ1050 To the Max "传送门" 题意: 给定一个$n n$的带权矩阵,求一个矩阵,使矩阵内权值之和最大,输出这个矩阵的权值和。$n\leq100 $ 思路: 可以利用前缀和优化,然后$O(n^4)$枚举矩阵的左上角和右下角,求出最大二维前缀和。 这样的枚举方案比较难以再次优化,我们 阅读全文
posted @ 2018-09-08 23:27 dprswdr 阅读(384) 评论(0) 推荐(0)
摘要:题意:有N个城市M条双向道路,每个城市都有一个加油站和单位加油费用,每条边都有一个权值,经过这条边需要消耗油箱中边权数量的油。现在有Q组询问,每次给定油箱容量C、起点S和终点T,问从S到T的最小花费是多少,若无法到达输出“impossible”。 思路: 对于每次扩展都有各自不同代价时,求出从起始状 阅读全文
posted @ 2018-06-06 23:17 dprswdr 阅读(549) 评论(0) 推荐(0)
摘要:题目大意:给定一个无向连通图,回答它的最小生成树是否是唯一的。 思路:先求出这个图的最小生成树,然后枚举每条不在最小生成树上的边(u,v)。由于这条边(u,v)与最小生成树上连接u和v两点的链构成了一个环,因此可以通过倍增LCA找到链上最小的边,在答案中删除之并加上枚举的边(u,v),判断与之前最小 阅读全文
posted @ 2018-06-06 20:45 dprswdr 阅读(138) 评论(0) 推荐(0)
摘要:传送门 题意:给定一个无向图G,输出一条路径,从1出发最后回到1,并使每条边都恰好从正反各经过一次。若有多解,输出一解即可。 思路:欧拉回路板子。此处采用邻接表做法,若当前遍历到点u的边i,则边i之前的边都已经被遍历过了,为了防止重复遍历造成的时间浪费,每次遍历后将head[u]更新为next[i] 阅读全文
posted @ 2018-06-02 08:42 dprswdr 阅读(119) 评论(0) 推荐(0)
摘要:Raising Modulo Numbers Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 9061 Accepted: 5522 Description People are different. Some secretly 阅读全文
posted @ 2018-02-01 23:34 dprswdr 阅读(205) 评论(0) 推荐(0)