题解-杂类
文章平均质量分 76
题解-杂类
ZSJZ_liuzian
QQ:2755815294
WeChat:15398814619
备注校名、年级、姓名
展开
-
UOJ Round #20 T1 A. 【UR #20】跳蚤电话(组合数+树形DP)
UOJ Round #20 T1 A. 【UR #20】跳蚤电话题目大意给出一棵树,求建出该树的不同操作方案数。建树方式如下:初始SSS集合只有111,操作111为取已连的边x,yx,yx,y和不在SSS的点zzz,删去边(x,y)(x,y)(x,y),加入边(x,z),(y,z)(x,z),(y,z)(x,z),(y,z),再把zzz放入SSS;操作222为取SSS内的点xxx和SSS外的点yyy,加入边(x,y)(x,y)(x,y),再把yyy放入SSS。2≤n≤1052\le n \le 10原创 2021-04-05 19:59:50 · 277 阅读 · 0 评论 -
NOI Online 2021 #1 T3 岛屿探险(CDQ分治+Trie)
NOI Online 2021 #1 T3 岛屿探险题目大意nnn座岛屿编号为1−n1-n1−n,每个岛屿有两个值ai,bia_i,b_iai,bi。qqq次询问,给出l,r,c,dl,r,c,dl,r,c,d,求编号在[l,r][l,r][l,r]中的岛屿满足a⨁c≤min(b,d)a\bigoplus c\le \min(b,d)a⨁c≤min(b,d)的数量。n,q≤105,1≤a,b,c,d≤224−1n,q\le10^5,1\le a,b,c,d\le2^{24}-1n,q≤105,原创 2021-03-27 22:31:10 · 1250 阅读 · 4 评论 -
2018 ACM-ICPC World Finals Problem D. Gem Island(递推)
2018 ACM-ICPC World Finals Problem D. Gem Island题目大意有nnn个人,初始每个人手上有一颗宝石,每天等概率有一颗宝石变为两颗,求ddd天后宝石数最多的rrr个人的期望宝石总数。1≤n,d≤5001\le n,d\le5001≤n,d≤500,1≤r≤n1\le r\le n1≤r≤n题解首先通过手玩样例可以发现,最终的每种状态出现的次数都是相等的,均为d!d!d!次,不同的操作方案有n∗(n+1)∗...∗(n+d−1)n*(n+1)*...*原创 2021-03-18 19:56:03 · 351 阅读 · 0 评论 -
2016-2017 ACM-ICPC Northeastern European Regional Contest Problem C. Cactus Construction(仙人掌+构造)
2016-2017 ACM-ICPC Northeastern European Regional Contest Problem C. Cactus Construction题目大意初始有NNN个点互不联通,且颜色均为111,各自处于各自的只有一个点的集合中,给出三种操作方式:1、把集合xxx和集合yyy合并,但不连边;2、把xxx所在的集合中,所有颜色c1c1c1染成颜色c2c2c2;3、把xxx所在的集合中,任意一个颜色c1c1c1的点和任意一个颜色为c2c2c2的点之间连边,但不能连出重原创 2021-03-16 20:06:42 · 239 阅读 · 0 评论 -
COCI 2020/2021 Svjetlo(树形DP)
COCI 2020/2021 Svjetlo题目大意求最短的树上路径(可以重复经过点或边)长度使得经过每个点的次数满足给定的奇偶性。树的大小为NNN。N≤500000N\le 500000N≤500000题解路径是可以重复的,简单的树形DP可能难以处理,考虑路径的拼接。设fi,j,kf_{i,j,k}fi,j,k表示第iii个点的子树内(除了自己)的奇偶性已经满足,且子树内(包括自己)的路径端点数有jjj个,第iii个点的奇偶性为kkk的最短路径长度,其中j∈{0,1,2},k∈{0,1原创 2020-12-02 22:24:30 · 633 阅读 · 0 评论 -
COI 2020 Semafor(矩阵乘法+优化)
COI 2019/2020 Semafor题目大意给定一个初始显示XXX的MMM位的五段显示器,求NNN次操作后显示为i(i∈[0,10M))i(i\in[0,10^M))i(i∈[0,10M))的方案数,需满足每KKK次操作后显示的均是一个合法的数字。每次操作即改变显示器某一段的开关状态。M≤2,N≤1015M\le 2,N\le 10^{15}M≤2,N≤1015题解看到多次操作后求方案数会想到矩乘,为了满足KKK的限制,可以先把每操作KKK次后的状态计算出来,如果不是合法的数的状态则忽原创 2020-12-02 21:50:33 · 251 阅读 · 0 评论 -
COI 2020 Pastiri(贪心)
COI 2019/2020 Pastiri题目大意一棵大小为NNN的树上有若干只羊,求能看守所有的MMM只羊的最少牧羊人数量及任意一种方案。牧羊人xxx能看守羊yyy,当且仅当disposx,posy=min(disx,posi)(i∈[1,m])dis_{pos_x,pos_y}=min(dis_{x,pos_i})(i\in[1,m])disposx,posy=min(disx,posi)(i∈[1,m]),其中posipos_iposi表示iii所在位置。题解这题要用到一种贪原创 2020-12-02 21:49:17 · 247 阅读 · 0 评论 -
2020“图灵杯”趣味网络邀请赛 C. 染色(推式子+组合数)
2020“图灵杯”趣味网络邀请赛 C. 染色题解有一个很简单的想法,两种颜色的个数,设他们分别为A,BA,BA,B,则第三种的个数为C=n−A−BC=n-A-BC=n−A−B,则答案为∑A=0n∑B=0n−A(nA)∗(n−AB)∗2A∗B+(A+B)∗(n−A−B)\sum_{A=0}^n\sum_{B=0}^{n-A}{n\choose A}*{n-A\choose B}*2^{A*B+(A+B)*(n-A-B)}∑A=0n∑B=0n−A(An)∗(Bn−A)∗2A∗B+(A+B)∗(n−原创 2020-11-29 21:43:10 · 326 阅读 · 0 评论 -
2020“图灵杯”趣味网络邀请赛 A. 相遇(分类讨论+数学计算)
2020“图灵杯”趣味网络邀请赛 A. 相遇题解路径总长100100100,速度也小于等于101010,而kkk却特别大,想到可以依次找出所有相遇位置,当出现循环则退出,可以证明这样复杂度是可以过的。如何快速的找到每次相遇的位置呢?直接分类讨论,相向时可以计算相遇,追及且能追上时可以计算相遇,其余情况则让两个人往他们当前方向的端点跑,设两人到端点时间分别为tx,tytx,tytx,ty,则计算时间min(tx,ty)min(tx,ty)min(tx,ty)后的位置(因为这样做计算简便)。代码原创 2020-11-29 20:34:30 · 195 阅读 · 0 评论 -
2020“图灵杯”趣味网络邀请赛 B. 回文串(构造+二分)
2020“图灵杯”趣味网络邀请赛 B. 回文串题解第一档部分分存在kkk使得m=k(k+1)/2m=k(k+1)/2m=k(k+1)/2起到了很大提示作用(其实没有的话也十分容易想到),回文串最多必然是所有字符相同,此时需满足m=k(k+1)/2(k∈Z)m=k(k+1)/2(k\in Z)m=k(k+1)/2(k∈Z),则答案为kkk个aaa;不满足时,可以尽可能增大kkk的值,使总长度接近mmm,中间再用两个字符bcbcbc隔开,然后剩下的部分再找到最大的kkk,继续做下去直到mmm剩余000。原创 2020-11-29 20:21:42 · 216 阅读 · 0 评论 -
eJOI2018 Problem D Chemical table(二分图+并查集)
eJOI2018 Problem D Chemical table题目大意n∗mn*mn∗m矩阵中已有若干点,只要有构成矩形(平行于坐标轴)的四个点中三个,就可以补充剩下一个,求把矩阵填满最少需要添加多少点。n,m≤2∗105n,m\le2*10^5n,m≤2∗105题解把行和列拆开看成二分图,发现每次添加点的操作,是在已经连通的三个点中把没连的边给连上,连通块的数量没有改变。同时,不难发现任何一个连通块中剩下的边都是可以直接加上的。现在需要把矩阵中所有点都填满,相当于所有的边都要连上,原创 2020-11-06 11:09:47 · 3901 阅读 · 0 评论 -
eJOI 2017 Problem A Magic(前缀和+排序)
EJOI 2017 Problem A Magic题目给定一个长度为nnn的字符串SSS。设SSS的不同的字符数为kkk。定义字符串的子串为该字符串某一连续段。而有魔法的子串被定义为SSS的某一非空子串,满足该子串中不同的字符数为kkk,且每个字符的出现的次数都相同。你需要求出给定字符串SSS的不同的有魔法的子串的个数。若两个子串的左右端点不同,则这两个子串不同。对于所有数据,保证2≤n≤1052\le n\le 10^52≤n≤105,字符集为[a,z]∪[A,Z][a,z]∪[A,Z][原创 2020-11-06 10:59:39 · 171 阅读 · 0 评论 -
COCI 2015/2016 PROKLETNIK(单调栈+线段树)
COCI 2015/2016 PROKLETNIK题目大意给定序列A1..NA_{1..N}A1..N,分别求出QQQ组询问区间[L,R][L,R][L,R]中最长的连续子序列Al..rA_{l..r}Al..r的长度,须满足该子序列中任意元素都在[Al,Ar](Al≤Ar)[A_l,A_r](A_l≤A_r)[Al,Ar](Al≤Ar)或[Ar,Al](Ar≤Al)[A_r,A_l](A_r≤A_l)[Ar,Al](Ar≤Al)中,也就是区间最大/最小值分别在左右端点。N,Q≤原创 2020-09-08 22:09:02 · 349 阅读 · 2 评论