摘要: 题目大意:$n$个点,每个点有一个值$w_i$。$m$个条件,每个条件给出$x,y$,要求$w_x\not =w_y$。选择最少的点,使其值加$1$后,所有条件成立(数据保证有解)。 题解:对于每个条件,若$(w_x+1)\bmod h=w_y$,连上$x->y$;若$(w_y+1)\bmod h= 阅读全文
posted @ 2018-10-05 20:24 Memory_of_winter 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 题目大意:有一个$1\sim n$的序列,若可以用$3n$次交换产生,则输出$\text{Petr}$,若可以用$7n$次交换则输出$\text{Um_nik}$。 题解:交换一次会导致逆序对的奇偶性变化,于是若逆序对的奇偶性和$3n$(即$n$)相同输出$\text{Petr}$,否则输出$\te 阅读全文
posted @ 2018-10-05 19:15 Memory_of_winter 阅读(220) 评论(0) 推荐(0) 编辑
摘要: A: 题目大意:给你一个数字串,每个数字只可以用一次,求最多可以组成多少个电话号码(可以相同),电话号码第一个数字为$8$,且长度为$11$ 题解:限制为$8$的个数和总长度,直接求 卡点:无 C++ Code: B: 题目大意:给你一个数$x$,求两个数$a,b$,使得$a+b=n$,且价值和最大 阅读全文
posted @ 2018-10-05 15:00 Memory_of_winter 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 题目大意:有一个$n$个点$m$条边的有向图,起点$S$,要求你添加最少的边使得$S$可以到达所有点 题解:缩点,答案就是没有入边的强连通分量个数,注意,如果起点$S$所在的强连通块没有入边则不计入答案 卡点:无 C++ Code: 阅读全文
posted @ 2018-10-05 14:30 Memory_of_winter 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 题目大意:多个询问,每个询问问$[l,r](1\leqslant l\leqslant r\leqslant10^{18})$内有多少个数满足非零数位小于等于$3$。 题解:数位$DP$,$f_{i,j}$表示在第$i$位,有$j$个数位不是$0$的方案数 卡点:无 C++ Code: 阅读全文
posted @ 2018-10-05 13:07 Memory_of_winter 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一棵$n$个点的树,将叶子节点分为数个集合,使集合里点对最长距离不超过$k$,求最少集合数。 题解:贪心,发现将叶子节点分成集合等于把节点划分集合,答案是一样的。因为一定有一个点,到非叶子节点$p$的儿子的距离比到$p$远。然后发现一个集合一定是连续的(或者连续的一定最优),不然不完全 阅读全文
posted @ 2018-10-05 12:38 Memory_of_winter 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给出一张$n$个点$m(m-n\leqslant20)$条边的无向图,$q$询问两点之间的最短路。$n,m,q⩽10^5$ 题解:询问$10^5$肯定不能每次求最短路,发现$m-n\leqslant20$,也就是说这张图是一棵树加上最多$21$一条非树边,这$21$条非树边最多连接$42$ 阅读全文
posted @ 2018-10-05 10:37 Memory_of_winter 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给出由$n$个数组成的环,取某个数就可以得到它的分数,相邻的两个数不能同时取。问取$m$个数可以得到的最大分数。 题解:建一个大根堆,贪心取,每个点记录前驱后继,取一个点就把前驱后继设成不能取;但这样是不正确的,但假设取了点$p$,可以把$pre_p,p,nxt_p$合成一个点,这个点的前 阅读全文
posted @ 2018-10-05 07:58 Memory_of_winter 阅读(252) 评论(0) 推荐(0) 编辑