瑜画
瑜画
全部文章
题解
归档
标签
去牛客网
登录
/
注册
瑜画的博客
全部文章
/ 题解
(共42篇)
简单环 题解
前面部分跟“郊区春游”差不多,属于TSP问题,不懂的可以看一下我郊区春游的那篇题解。也是枚举起点、终点(终点这里得比起点大,避免重复统计),进行状态转移,不同的是这里的dp数组记录的是方案数量,然后每次转移以后要判终点和起点是否可以相连,相连就进行统计。最后答案要除以2,原因是大于等于3的回路可能会...
dp
2020-08-17
5
972
郊区春游
题意:一开始就在旅游的几个点选一个作为起点,然后这个点就算游过了,游完别的景点在最后一个景点停下即可。用dp[i][j],i表示状态(哪些点游过,哪些点没有),j表示最后停留在哪个点。具体看代码详细注释: #include <bits/stdc++.h> using namespace ...
dp
2020-08-17
3
850
炮兵阵地 题解
先看同一行哪一些方案可以放置,以减小时间复杂度(老套路)查看的方法是看左边第一、二,右边第一、二 不能跟自己这个位置同时有1 然后统计这个方法包含的炮兵数,统计方法是线性dp,通过lowbit(树状数组的东西),转移计数。(每个方案的炮兵数量是这个方案的二进制串去除最低位的1的炮兵数量+1)最后一行...
dp
2020-08-16
3
698
旅游 题解
本题是树形dp,树的最大独立集问题。自己涂色,那孩子一定不能涂***r>自己不涂色,那孩子无所谓,由于自己也在里面,所以要加一 dp[root][0]+=max(dp[to][0],dp[to][1]); dp[root][1]+=dp[to][0]; 循环外 dp[root][1]+=1;...
dp
2020-08-10
0
545
[SCOI2005]互不侵犯 题解
状态压缩dp入门 首先一次搜索,确定哪些状态能行,对应的国王数量是多少,然后再把放置到第多少行,状态是什么,国王数量是多少对应的方案数算出来,这就需要先确定状态,再通过状态转移求解。 dp[i][j][k]表示第I行,状态j,k个国王并且去除掉相邻行的状态,再转移最后把n行k个国王,所有的状态方案数...
dp
2020-08-09
1
811
吉吉王国 题解
本题是Rinne Loves Edges的变式,多了一个输出最大的切割长度 二叉苹果树题解:https://blog.nowcoder.net/n/c8a9812aa008472b8b31391e7995e29c 以下是错误题解,一开始做的时候我是这么做的:🤣🤣 跟二叉苹果树同...
dp
2020-08-08
1
905
Rinne Love Edges 题解
刚刚做了二叉苹果树过来的,然后把这题秒了。感觉比二叉苹果树简单很多。二叉苹果树题解:https://blog.nowcoder.net/n/c8a9812aa008472b8b31391e7995e29c 跟二叉苹果树同样的思路,把边权下放到点权,这里不再赘述,跑一遍树的构造,再进行dfs记忆化dp...
dp
2020-08-08
0
621
二叉苹果树 题解
首先看到题目的第一反应,就是边上的权值不好处理,感觉非常麻烦,仔细一看,可以把边pushdown,反正一个结点只有一个父亲,那么就把边的权值放到对应孩子结点上,那么就大功告成了。用二维数组求解问题,确定状态,用dp[root][y]表示结点root保留y个点(下放完事了以后是点,点会比边多一个,最后...
dp
2020-08-08
0
878
Cell Phone Network 题解
该题是点的最小覆盖集问题。题意:求覆盖一个树所有的点,需要覆盖最小的次数,覆盖一个点需要耗费一次次数,覆盖完以后,那么相邻的点也被覆盖。 对于无向树,直接随便找一个结点作为根,然后把整棵树支起来,就有了根和叶子!需要一点想象力,反正无向树怎么旋转都可以。那么寻找当前点的状态,如果一个树都被覆盖,那么...
dp
2020-08-08
4
800
Strategic game 题解
本题是树的最小点覆盖问题。设想一个结点放士兵和不放士兵两种情况,如果放士兵,那它的孩子们放不放士兵都无所谓,如果不放士兵,那孩子们必须放士兵(否则将无法覆盖) 那么很容易想到状态转移方程:dp[root][1]=1+ min(dp[son][1],dp[son][0])dp[root][0]= dp...
dp
2020-08-08
0
883
首页
上一页
1
2
3
4
5
下一页
末页