摘要:
P2016 战略游戏 树形DP 入门题吧(现在怎么是蓝色标签搞不懂); 注意是看见每一条边而不是每一个点(因为这里错了好几次); #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int 阅读全文
摘要:
P1108 低价购买 最长下降子序列不用多讲;关键是方案数; 在求出f[i]时,我们可以比较前面的f[j]; 如果f[i]==f[j]&&a[i]==a[j] 要将t[j]=0,去重; 这样将所有t[j]加起来就是方案数; #include<cstdio> #include<cstring> #in 阅读全文
该文被密码保护。 阅读全文
摘要:
P1041 传染病控制 说实话这种暴力我还是头一次见,每次病毒都会往下传染一层; 数据范围小,我们可以直接枚举当前层保护谁就好了; 用vector 记录相同层数的节点;维护已经断了的点; 如果超出最底层或者都已经被保护就更新答案; #include<cstdio> #include<cstring> 阅读全文
摘要:
P2502 [HAOI2006]旅行 一定要看清题目数据范围再决定用什么算法,我只看着是一个蓝题就想到了记录最短路径+最小生成树,但是我被绕进去了; 看到只有5000的边,我们完全可以枚举最小边和最大边,判断起点和终点是否连通用并查集维护一下就好了; 分数约分一定要仔细想想, an1==ans2的时 阅读全文
摘要:
题意: 给你两个字符串,由01组成;求他们两个的最短公共非子序列,要求字典序最小; 非公共子序列:都不是这两个字符串的子序列; 本人只会暴力啊,二进制枚举稳拿15分; 然而这道题其实是一个最短路题; 题解: 贪心考虑从前往后s1……si,维护一个j表示当前字符串已经匹配到t1……tj, 贪心考虑tj 阅读全文
摘要:
P3719 [AHOI2017初中组]rexp 没有什么算法的题做起来真不适应,这道题深深讽刺了我想用栈维护匹配括号个数的想法; 递归解决就行了; 时刻注意函数返回值是什么,边界条件是什么; #include<cstdio> #include<cstring> #include<algorithm> 阅读全文
摘要:
最长上升子序列比较暴力的写法是n2 的,实际上我们求得就是前面的比当前小的最长上升子序列的最大值; 树状数组可以优化它; 倒过来求就是最长下降子序列; 阅读全文
摘要:
P1378 油滴扩展 记得这道题好久以前(好像是上个学期?) 就想做了,但是看着里面的半径边界好像很难处理就没做(主要是当时刚学OI(菜还给自己找借口)); 今天上午一直研究SG函数,做的都自闭了,晚上想刷刷水题缓解一下心情,就又看到了这道题; 一看数据范围,原来挺简单的,还是个绿题,听着音乐开始切 阅读全文
摘要:
P2258 子矩阵 二进制枚举套二进制枚举能过多一半的点; 我们只需要优化一下第二个二进制枚举的部分; 首先我们先枚举选哪几行,再预处理我们需要的差值,上下,左右; sum_shang,sum_heng 然后DP查找最小值 dp[i][j]表示前i列已经选了j列; #include<cstdio> 阅读全文