摘要:
题目大意:多个询问,每个询问问$[l,r](1\leqslant l\leqslant r\leqslant10^{18})$内有多少个数满足非零数位小于等于$3$。 题解:数位$DP$,$f_{i,j}$表示在第$i$位,有$j$个数位不是$0$的方案数 卡点:无 C++ Code: 阅读全文
摘要:
题目大意:给定一棵$n$个点的树,将叶子节点分为数个集合,使集合里点对最长距离不超过$k$,求最少集合数。 题解:贪心,发现将叶子节点分成集合等于把节点划分集合,答案是一样的。因为一定有一个点,到非叶子节点$p$的儿子的距离比到$p$远。然后发现一个集合一定是连续的(或者连续的一定最优),不然不完全 阅读全文
摘要:
题目大意:给出一张$n$个点$m(m-n\leqslant20)$条边的无向图,$q$询问两点之间的最短路。$n,m,q⩽10^5$ 题解:询问$10^5$肯定不能每次求最短路,发现$m-n\leqslant20$,也就是说这张图是一棵树加上最多$21$一条非树边,这$21$条非树边最多连接$42$ 阅读全文
摘要:
题目大意:给出由$n$个数组成的环,取某个数就可以得到它的分数,相邻的两个数不能同时取。问取$m$个数可以得到的最大分数。 题解:建一个大根堆,贪心取,每个点记录前驱后继,取一个点就把前驱后继设成不能取;但这样是不正确的,但假设取了点$p$,可以把$pre_p,p,nxt_p$合成一个点,这个点的前 阅读全文