随笔分类 - OI
摘要:问题描述 "LG5003" 题解 设 $mx[i][j][0/1]$代表当前位置、朝向的最大拐弯数,最小同理。 来源为左边和上边。 坑点:起点可能为 。 $\mathrm{Code}$
阅读全文
摘要:问题描述 "LG5003" 题解 设 $mx[i][j][0/1]$代表当前位置、朝向的最大拐弯数,最小同理。 来源为左边和上边。 坑点:起点可能为 。 $\mathrm{Code}$
阅读全文
摘要:综述 试题为常州集训2019SCDay2 得分$100+30(0)+28$ 时之终结 问题描述 "HZOJ1310" 题解 构造题。 发现部分分有一档是 $Y$ 是 $2^x$ ,于是自然想到很多个三角形连到一起。 然后正解就是在这个基础上删边。 $\mathrm{Code}$ cpp includ
阅读全文
摘要:问题描述 "https://www.luogu.org/problem/P3092" 题解 观察到 $k \le 16$ ,自然想到对 $k$ 状压。 设 $opt[i]$ 代表使用硬币状况为 $i$ 时,最多可以买到 $opt[i]$ 个物品。 然后 $opt[i]$ 在DP过程中二分求出。 $\
阅读全文
摘要:问题描述 "https://www.luogu.org/problem/P3092" 题解 观察到 $k \le 16$ ,自然想到对 $k$ 状压。 设 $opt[i]$ 代表使用硬币状况为 $i$ 时,最多可以买到 $opt[i]$ 个物品。 然后 $opt[i]$ 在DP过程中二分求出。 $\
阅读全文
摘要:问题描述 "LG4158" 题解 设$opt[i][j][k]$代表到$(i,k)$刷了$j$次的方案数。 一开始DP顺序有点问题,调了很长时间。 务必考虑清楚DP顺序问题 $\mathrm{Code}$ cpp include using namespace std; template void
阅读全文
摘要:问题描述 "LG4158" 题解 设$opt[i][j][k]$代表到$(i,k)$刷了$j$次的方案数。 一开始DP顺序有点问题,调了很长时间。 务必考虑清楚DP顺序问题 $\mathrm{Code}$ cpp include using namespace std; template void
阅读全文
摘要:问题描述 "LG2679" 题解 设$opt[i][j]$代表A串前$i$个,匹配$B$串前$j$个,选择了$k$个子串的方案数。 转移用前缀和优化一下。 $\mathrm{Code}$
阅读全文
摘要:问题描述 "LG2679" 题解 设$opt[i][j]$代表A串前$i$个,匹配$B$串前$j$个,选择了$k$个子串的方案数。 转移用前缀和优化一下。 $\mathrm{Code}$
阅读全文
摘要:问题描述 "LG2679" 题解 设$opt[i][j]$代表A串前$i$个,匹配$B$串前$j$个,选择了$k$个子串的方案数。 转移用前缀和优化一下。 $\mathrm{Code}$
阅读全文
摘要:问题描述 "LG1879" 题解 设$opt[i][j]$代表前$i$行,且第$i$行状态为$j$的方案数。 枚举$j$,再枚举$k$,$k$为上一行的状态。 判断$j,k$能否共存( ) 计数转移即可。 必须加强位运算能力。 $\mathrm{Code}$ cpp include using na
阅读全文
摘要:问题描述 "LG1879" 题解 设$opt[i][j]$代表前$i$行,且第$i$行状态为$j$的方案数。 枚举$j$,再枚举$k$,$k$为上一行的状态。 判断$j,k$能否共存( ) 计数转移即可。 必须加强位运算能力。 $\mathrm{Code}$ cpp include using na
阅读全文
摘要:问题描述 "LG1410" 题解 如果$i using namespace std; template void read(Tp &x){ x=0;char ch=1;int fh; while(ch!=' '&&(ch '9'||ch='0'&&ch
阅读全文
摘要:问题描述 "LG2578" 题解 用 去重。 bfs即可。 $\mathrm{Code}$ cpp include using namespace std; void read(int &x){ x=0;char ch=1;int fh; while(ch!=' '&&(ch '9'||ch='0'
阅读全文
摘要:问题描述 "LG1131" 题解 正难则反,把从一个点出发到叶子结点看做从叶子结点走到那个点。 DP方程很显然。 $\mathrm{Code}$ cpp include using namespace std; define int long long void read(int &x){ x=0;
阅读全文
摘要:问题描述 "LG1131" 题解 正难则反,把从一个点出发到叶子结点看做从叶子结点走到那个点。 DP方程很显然。 $\mathrm{Code}$ cpp include using namespace std; define int long long void read(int &x){ x=0;
阅读全文
摘要:问题描述 "LG2145" 题解 把颜色相同的一段看做一个点。 然后类似于合唱队区间DP即可。 但是这题好像出过一些情况,导致我包括题解区所有人需要特判最后一个点。 $\mathrm{Code}$ cpp include using namespace std; template void read
阅读全文
摘要:问题描述 "LG2145" 题解 把颜色相同的一段看做一个点。 然后类似于合唱队区间DP即可。 但是这题好像出过一些情况,导致我包括题解区所有人需要特判最后一个点。 $\mathrm{Code}$ cpp include using namespace std; template void read
阅读全文
摘要:问题描述 "洛谷(有翻译)" 题解 DP,设$opt_i$代表前$i$个字符方案数。 Trie优化,刷表法。 $\mathrm{Code}$
阅读全文
摘要:问题描述 "洛谷(有翻译)" 题解 DP,设$opt_i$代表前$i$个字符方案数。 Trie优化,刷表法。 $\mathrm{Code}$
阅读全文