思路 利用了树上莫队的分块方式,保证每个块的大小都$\ge$B且$\le$3B,然后证明略过 仅叙述一下算法的过程 使用一个栈,依次dfs这个点的每个子树,如果发现新增的节点数大于等于B,就分出新的一块, 最后把剩下的节点塞进最后一个块里 分块的代码 AC代码 cpp include include ...
分类:
其他好文 时间:
2019-05-09 10:53:29
阅读次数:
145
Question "题目传送门" Solution 做完之后看题解,发现各位大仙递归就完事了 然而我还在挨个判断每种状态 首先我们看一看题目有四种情况 然后我们开一个三维数组 f[i][j][k] f[i][j][k]表示当前位置i是否是雷(也就是j) 下一位置要不要是雷的方案数k 我们有了它就可以 ...
分类:
其他好文 时间:
2019-05-02 11:24:33
阅读次数:
104
scoi2005 繁忙的都市 扫雷 互不侵犯 scoi2006 zh_tree scoi2007 排列 scoi2009 最长距离 生日礼物 scoi2010 幸运数字 scoi2011 糖果 scoi2012 喵星球上的点名 ...
分类:
其他好文 时间:
2019-04-07 09:22:18
阅读次数:
146
[SCOI2005] 互不侵犯 终于懂一点状压DP了… 用一个数的二进制形式表示一整行的状态,比如 18(1010)表示第一列和第三列有国王。 然后用&判断是否可行: if((x&y)||((x<<1)&y)||(x&(y<<1))) continue;1code: #include<iostrea ...
分类:
其他好文 时间:
2019-04-05 23:57:04
阅读次数:
255
链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1088 思路; 很明显当第一列的第一个和第二个格子的值确定时,后面每个格子的值都是可以确定的。当第二列第一个格子为0或2时,我们都可以确定第一列前两个格子,当第二列第一个格子为1时,会有两种可 ...
分类:
其他好文 时间:
2019-03-21 21:36:33
阅读次数:
149
链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1083 思路:连接所有点,肯定最少是需要n-1条边的,也就是写个最小生成树,记得保存下最大的权值就好了 实现代码: ...
分类:
其他好文 时间:
2019-03-21 20:17:13
阅读次数:
171
·有关IDA* 是带有估值函数的迭代加深搜索,表现出出色的效率。 估值函数可以简单的定义为「已经到位的骑士的个数」。 然后就是普通的迭代加深了。 算法酷炫不一定赢,搜索好才是成功。 ——Loli Code: Thanks! ...
分类:
其他好文 时间:
2019-03-21 20:03:17
阅读次数:
155
"【题面】" 题目描述: 输入输出格式: 输入格式: 第一行有一个正整数T(T 输出格式: 对于每组数据都输出一行。如果能在15步以内(包括15步)到达目标状态,则输出步数,否则输出-1。 输入输出样例: Input: Output: 说明: 【题解】: _P.S.:这题并不是此时完成的,但思路仍是 ...
分类:
其他好文 时间:
2019-02-04 16:50:42
阅读次数:
156
我好久都没有发博客了…… 可不是因为我没做题啊,因为懒得发qwq…… 今天发一波状压dp(就是dp)。 我还想不到如果不是格子图,状压dp怎么用…… 因为它与dp的不同就是它可以用二进制来表示这一位(这个格子选不选)…… dp [ i ] [ j ] [ t ] 表示第 i 行,第 j 个状态,选择 ...
分类:
其他好文 时间:
2019-01-26 21:37:09
阅读次数:
133