
计数题
_奶酪
这个作者很懒,什么都没留下…
展开
-
【CF1369D】TediousLee(找规律递推——计数)
传送门 题目: 解题思路: 画出leve1~5的图形之后就可以发现,level[i]是由1个level[i-1]和2个level[i-2]再加一个根节点组成的,以level[4]为例:红色的为level[3],绿色的为level[2] 那么就可以递推出level[I]的"claw"数:cnt[i]=2∗cnt[i−2]+cnt[i−1]cnt[i]=2*cnt[i-2]+cnt[i-1]cnt[i]=2∗cnt[i−2]+cnt[i−1] 每次取“claw”的时候都是先取最下面的,那么对于leve原创 2020-06-24 22:42:49 · 839 阅读 · 3 评论 -
【POJ2775】The Number of the Same BST(二叉搜索树+计数+lucas定理)
传送门 题目: 给出一个数列,由该数列可以确定一颗二叉搜索树。求此二叉搜索树可以由多少个不同的数列确定。树上最多有100个结点。 解题思路: 100个结点可能出现极端情况(链式,100层),不能用数组存,考虑动态开点用指针存储 , 记得清空树,回收空间。 当前结点t,递推式:ans[t]=ans[lt]∗ans[rt]∗Csize[t]−1size[lt]ans[t]=ans[lt]*ans[rt]*C_{size[t]-1}^{size[lt]}ans[t]=ans[lt]∗ans[rt]∗Csize原创 2020-05-24 23:42:49 · 408 阅读 · 0 评论 -
【CF1333C】Eugene and an array(子区间计数)
传送门 题目: 思路: 枚举右端点,统计有多少个左端点和当前右端点组成的区间不是good,总数记为cntcntcnt。 对于一个确定的区间[l,r][l,r][l,r],如果sum[r]=sum[l−1]sum[r]=sum[l-1]sum[r]=sum[l−1],那么该区间内元素和为0,sum[]sum[]sum[]表示前缀和。 统计sum[r]sum[r]sum[r]最新出现的位置...原创 2020-04-09 19:07:06 · 432 阅读 · 0 评论 -
【CF1312D】Count the Arrays(计数)
传送门 题目: 思路: n个元素有一对相同的,那么n个数中共有n-1个不同的数,从m个数中选n-1,方法数:Cmn−1C_m^{n-1}Cmn−1 从n-1个不同的数中选择一个数使其在要构造的数组中出现两次,最大的数是唯一的,不能选它,所以方法数为:n-2 除了重复出现的数一个在最大数的左边,一个在右边外,其他n-3个数可以出现在最大数的左边/右边,方法数为:2n−32^{n-3}2n−3...原创 2020-03-12 20:30:18 · 406 阅读 · 0 评论