摘要: #抽屉原理 ##原理1: 把多于n+1个的物体放到n个抽屉里,则至少有一个抽屉里的东西不少于两件。 证明(反证法):如果每个抽屉至多只能放进一个物体,那么物体的总数至多是n×1,而不是题设的n+k(k≥1),故不可能。 ##原理2: 把多于mn+1(n不为0)个的物体放到n个抽屉里,则至少有一个抽屉 阅读全文
posted @ 2020-08-27 17:13 zlq, 阅读(307) 评论(0) 推荐(0) 编辑
摘要: https://zhuanlan.zhihu.com/p/133818995 #递推公式 f[n]=(n-1)*(f[n-1]+f[n-2]) ##证明(这也配叫证明??? 第n个元素可以在前n-1个元素都是错排的情况下与其中一个元素交换位置(n不在就有的错排) 有(n-1)*f[n-1]种方案 第 阅读全文
posted @ 2020-08-27 16:32 zlq, 阅读(371) 评论(0) 推荐(1) 编辑
摘要: https://www.luogu.com.cn/problem/P1040 中序遍历,左子树+根+右子树 对于区间l到r,枚举根结点i,再分别求解区间l到i-1和i+1到r 直接搜索程序很好看但是会t 可以改为记搜或动规 原题还需要求前序遍历,如果照常对于每个点存左儿子和右儿子,在l到r的区间中的 阅读全文
posted @ 2020-08-27 10:27 zlq, 阅读(76) 评论(0) 推荐(0) 编辑
摘要: https://loj.ac/problem/10157 不同于战略游戏要求每边有人看守,即只能靠自己或者靠儿子 https://www.cnblogs.com/qwq-/p/13569330.html 本题要求每个点有人看守,即对于点root可以靠自己靠儿子或靠父亲 设dp[root][0/1/2 阅读全文
posted @ 2020-08-27 09:00 zlq, 阅读(176) 评论(0) 推荐(0) 编辑
摘要: https://loj.ac/problem/10156 dp[i][0/1]表示以i为根的子树中,当i放(1)与不放(0)时最少放几个 由题意,树枝两端至少有一个放的,即父亲不放,所有儿子必须放;父亲放了,儿子放不放都行 注意从0开始编号 #include<bits/stdc++.h> using 阅读全文
posted @ 2020-08-27 08:22 zlq, 阅读(219) 评论(0) 推荐(0) 编辑