根据最近做的几道树形dp题总结一下规律.(从这篇往前到洛谷 P1352 ) 这几道题都是在一颗树上,然后要让整棵树的节点或边 满足一种状态.然后点可以影响到相邻点的这种状态 然后求最小次数 那么要从两个维度来设计状态 第一个维度 (1)以i为根的树的所有节点都满足这种状态 (2)以i为根的树的只有i不满足这种状态 第二个维度 (1)i这个点取 (2)i这个点不取 所以就会有四种状态,不过最近几道题都是直接pass掉了其中一种 只有三种状态. 状态设计好了就很好写转移方程了,记住转移的过程中孩子一…
补题地址:https://zjusummer.contest.codeforces.com/ Contents ZJU-ICPC Summer 2020 Contest 1 by Group A Problem A. MUG Problem B. Count Angles Problem F. Balloons Tower Defence ZJU-ICPC Summer 2020 Contest 2 by Group B Problem A. The Number of Good Interva…
网页设计课上实在无聊,便开始补题,发现比赛时候僵着的东西突然相通了不少 首先,"追妹"这题,两个队友讨论半天,分好多种情况最后放弃(可是我连题目都没看啊),今天看了之后试试是不是直接判断情况就可以,于是出现 #include<stdio.h> int main() { int T,n,m,a,b,u,v,i,flag; scanf("%d",&T); while(T--) { flag=; scanf("%d%d%d%d",&…
[BZOJ2004]公交线路(动态规划,状态压缩,矩阵快速幂) 题面 BZOJ 题解 看到\(k,p\)这么小 不难想到状态压缩 看到\(n\)这么大,不难想到矩阵快速幂 那么,我们来考虑朴素的\(dp\) 设\(f[i][j]\)表示当前位置为\(i\),前面的\(P\)个位置的状态为\(j\) 其中,状态的含义是某个公交线路最后的停靠站 如果是最后的停靠站就是\(1\),否则是\(0\) 那么,任意状态中只存在\(k\)个\(1\) 并且表示\(i\)的二进制位一定是\(1\) 所以状态相当…
2018 HDU多校第四场赛后补题 自己学校出的毒瘤场..吃枣药丸 hdu中的题号是6332 - 6343. K. Expression in Memories 题意: 判断一个简化版的算术表达式是否合法. 题解: 注意细节即可. 代码: #include <bits/stdc++.h> using namespace std; int n; char s[505]; int main () { int T; cin>>T; for ( ; T; --T) { scanf(&quo…
2018 HDU多校第三场赛后补题 从易到难来写吧,其中题意有些直接摘了Claris的,数据范围是就不标了. 如果需要可以去hdu题库里找.题号是6319 - 6331. L. Visual Cube 题意: 在画布上画一个三维立方体. 题解: 模拟即可. 代码: #include <bits/stdc++.h> using namespace std; int a, b, c, R, C; char g[505][505]; int main () { int T; cin >>…
上次补题好像把两次训练混在一起了,总之先按时间顺序补完这一次|ू・ω・` ) HDU-6301 不会的东西不能逃避.jpg 红小豆非常讨厌构造题,因为非常不会,并且非常逃避学习这类题,因为总也搞不清楚. 这次红小豆搞清楚了一道构造区间数字不重复数列的题. 首先,由于字典序最小,即每次可以直接提取可能值中最小值,且不重复,又可以插入删除,所以我们获得了set(噔噔噔)用ta来装可以填的数.接着,我们考虑大区间包着小区间的情况,显然大区间满足条件时小区间必然满足,所以我们这时可以把小区间视为大区间(…
[arc093f]Dark Horse(容斥原理,动态规划,状态压缩) 题面 atcoder 有 \(2^n\) 名选手,编号为 \(1\) 至 \(2^n\) .现在这 \(2^n\) 名选手将进行 \(n\) 轮淘汰赛,决出胜者.若 \(x<y\) ,则 \(x\) 能够战胜 \(y\) .但有 \(m\) 个例外,\(1\) 号选手会输给这 \(m\) 个选手.问有多少中排列方式使得\(1\)号选手取得胜利.\(n,m≤16\). (这是肖大佬的翻译) 题解 钦定\(1\)号站在一号位置(…
[BZOJ1226]学校食堂(动态规划,状态压缩) 题面 BZOJ 洛谷 题解 发现\(b\)很小,意味着当前这个人最坏情况下也只有后面的一小部分人在他前面拿到饭. 所以整个结果的大致顺序是不会变化的. 对于一个人,他要占用的时间之和前面那个拿饭的人有关. 而他前面那个拿饭的人在队列中只有两种情况,一种在他前面,一种在他后面. 显然在他前面对于当前这个人是没有任何影响的,有问题的只有在他后面的人先拿饭. 所以可以状压后面哪些人在当前这个人之前拿到了饭. 所以设状态\(f[i][j][k]\)表示…
[BZOJ5299][CQOI2018]解锁屏幕(动态规划,状态压缩) 题面 BZOJ 洛谷 Description 使用过Android手机的同学一定对手势解锁屏幕不陌生.Android的解锁屏幕由3x3个点组成,手指在屏幕上画一条 线将其中一些点连接起来,即可构成一个解锁图案.如下面三个例子所示: 画线时还需要遵循一些规则 1.连接的点数不能少于4个.也就是说只连接两个点或者三个点会提示错误. 2.两个点之间的连线不能弯曲. 3.每个点只能"使用"一次,不可重复.这里的"…