dp的状态转移很像一张有向图:每个状态为一个点,每中转移方案是一条有向边 本题要求是求出最小的数,那我们用状态[i,j]表示模i,数位和为j,那么从每个点出发的十条有向边代表[0,9]十个数 从每个状态点进行bfs,由于队首的点必定是当前最小的(因为bfs的顺序),所以可以保证最后求出的是最小的数 ...
分类:
其他好文 时间:
2019-05-27 13:35:08
阅读次数:
113
https://blog.csdn.net/a302549450/article/details/80948741?tdsourcetag=s_pctim_aiomsg 上面是题解的链接。。, ...
分类:
其他好文 时间:
2019-05-24 12:41:38
阅读次数:
114
降智好题。本蒟蒻VP时没想到怎么做被题面迷惑了,只会20分的“好”成绩。简直自闭了。 首先显然度为0的点是白给的,根据等比数列求和公式即可求得。然后考虑这个树如果是一颗外向树,就是每个点先父亲再自己。然后直接DP,令f[i][j]表示子树i内Σw=j的概率,转移时直接用背包转移一发即可。边是正向的直 ...
分类:
其他好文 时间:
2019-05-21 19:19:28
阅读次数:
96
这也太强了8……AtCoder真的道道好题 考虑一条链上的情况——这不SB题吗,按$\% 3$的余数考虑:$\% 3$余2后手赢,否则先手赢 扩展到树上,每次删除都会使直径删除1个或2个点。直径删完时其它链肯定也删完了,所以对直径按照上边的方法预处理下SG函数就行了 代码 cpp include d ...
分类:
其他好文 时间:
2019-05-15 14:36:29
阅读次数:
153
大意: 给定序列$a$, $m$个询问$[l,r]$, 回答$[l,r]$内最接近的两个数的差. 考虑离线, 枚举右端点, 每个点维护左端点的贡献, 对于新添一个点$a_r$, 只考虑左侧点比$a_r$大的情况, 另一种情况倒序处理一遍即可. 考虑$a_r$对答案影响, 从$r-1$到$1$依次二分 ...
分类:
其他好文 时间:
2019-05-11 23:30:49
阅读次数:
154
题意:给n个点m条边的有向图。每次使一条边反向,问你1到2的最短路变短,变长,还是不变。 解法:遇到这种题容易想到正向求一遍最短路d1,反向再求一遍最短路d2。纪录原图上的最短路为ans,然后分开考虑各种情况。 变短的情况:d1[y[i]]+d2[x[i]]+z[i]<ans 否则就剩下不变和变长两 ...
分类:
其他好文 时间:
2019-05-10 20:38:48
阅读次数:
177
题目链接: "传送门" 题目分析: 一道并查集好题 首先考虑暴力思路:由于每次给定区间内的数字要一一相等,把每个数字看成一个点,需要相等的数字就可以合并成一个点,用并查集维护 最后计算独立集合的个数,答案为$9 10^{k 1}$(首位不为1,只有9种选择) 上述思路复杂度是$O(nm)$的,显然跑 ...
分类:
其他好文 时间:
2019-05-04 12:00:53
阅读次数:
87
本题是一道好题... 首先我们可以看到,本题其实可以用完全背包跑,但是复杂度不对 所以我们考虑优化: 我们知道,如果有三个物品价值分别为, 如果允许取一个物品,那么都是合法的答案 如果允许取三个物品,那么就是一个合法的价值(废话) 这是否给了我们一些启示呢? 如果我们设集合,构造一个多项式 可以发现 ...
分类:
其他好文 时间:
2019-05-03 18:19:26
阅读次数:
165