我头发呢_
我头发呢_
全部文章
题解
归档
标签
去牛客网
登录
/
注册
我头发呢_的博客
全部文章
/ 题解
(共5篇)
题解 | #牛牛种小树#
一共有n个点,因此度数和为2*(n-1),首先给每个点分一个度,保证最后形成的是一棵树。 分配n个度后还剩下m=2*(n-1)-n=n-1个度,剩下的这些度的最优分配方案用完全背包的方法dp求得。 背包的体积为m,每个物品的体积和价值分别为i-1(i个度有一个度在之前已经算过了)和w[i] 普通的完...
dp
2021-10-07
0
386
题解 | #牛牛吃豆人#
题意:n行3列的网格图,图中有障碍物,问是否存在两条不想交的路径,从左上角走到右下角。 解法1:两次dfs 第一次dfs优先向右边走,不能向右走时才向下走。把走过的点设置为障碍物 第二次dfs优先向下边走,不能向下走时才向右走。 显然,如果按这种方法走仍找不到两条不想交的路径,那么一定不存在这样...
爆搜
dfs
2021-10-07
0
355
题解 | #牛牛嚯可乐#
数据范围很小且保证一定有解,考虑爆搜 枚举到第u个字符时,若第u个字符与目的字符不一致,到后面的位置找一个与当前位置匹配的字符并交换。(因为前面的已经完全匹配了,所以只要找后面) 代码入下 #include <iostream> #include <cstring> #inc...
C++
dfs
2021-10-06
0
463
题解 | #A#
A.牛牛吃米粒 把每个格子看成一个二进制位,n个格子就构成一个二进制数。而每个二进制数唯一对应一个十进制数。因此n个格子能构成s对应的二进制数时答案为"YES",否则为"NO。 经过两步判断可求得答案: s否超出2^n,则一定为"NO" s对应的二...
C++
2021-10-06
0
310
题解 | #ABC#
A.活着的证据 在保位数不超过n的前提下,尽可能地增大数的位数。 从左往右填,先尽可能地填5,,若没填满n位且还有1剩余,在用剩下的1填后面的位。 填完1轮后,若还有1剩余,把剩下的1用完或把每个数加到8为止。 注意加的时候对5来说能加3,对1来说只能加1 #include <bits...
C++
贪心
2021-09-17
0
392