竞赛讨论区 > 【题解】牛客IOI周赛16-普及组
头像
zlxor
发布于 2020-05-02 09:52
+ 关注

【题解】牛客IOI周赛16-普及组

solution

求导

良心送分题

答案就是 n!

猜数

贪心

首先把每一位数求和。

如果大于等于 k 那么就是没有改变,答案为 0。

如果小于 k,那肯定是从 开始改变,并且每次把这个数贪心地变成 9。

答题卡

递推

考虑第一道题填的位置:

1. 如果填第一个空

则第一行和第一列均不可再填,则只需要右下的 (n-1)*(n-1) 的矩阵对称即可。

2. 如果不填第一个空

若填在 (1,x) 根据对称 (x,1) 也要填上,且第 1 行,第 1 列,第 x 行和第 x 列不能再填。

所以只需要让其余部分拼在一起构成 (n-2)*(n-2) 的矩阵对称即可。

设 n 的答案为 f(n) 不难写出递推式 f(n)=f(n-1)+(n-1)*f(n-2)

杀树

树形背包

记 dp[u][i] 表示 u 这个节点,向上传 i 个点的链的最小代价。

状态转移:

  • 保留点的情况:对于已经处理完的 dp[u][i] 存在 tmp[u][i] 之中,以方便更新。
  • 删除点的情况:

复杂度:

注意枚举的 i,j 的范围应该是 ,这样复杂度可以保证是

全部评论

(4) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐