
OI&ACM
文章平均质量分 59
OI竞赛与ACM竞赛
李峻枫
这个作者很懒,什么都没留下…
展开
-
Y - 孩子与玩具
Y - 孩子与玩具题目大意有nnn个小朋友,kkk个玩具,每个小朋友都有2个喜欢的玩具。当他选择的时候,他会将他喜欢的玩具全部拿走。求小朋友选择玩具的顺序,使得拿不到玩具的小朋友数量最少。题解玩具是有限的,要使拿不到玩具的小朋友数量最少,就要使拿到2个玩具的小朋友最少。也就是说,尽可能让拿到1个玩具的小朋友多。于是就可以用贪心的思想:首先,将一个小朋友喜欢的两个玩具连边,建图,然后求一个最小生成树就可以了。时间复杂度建图的时间复杂度是O(k)O(k)O(k)的,并查集的复杂度可以近似原创 2021-10-07 08:16:33 · 248 阅读 · 0 评论 -
O - 土豆的集合
O - 土豆的集合题目大意查询某两个点是否联通,或者将某两个点联通,支持查询历史版本。题解如果不需要查询历史版本,那么显然就是并查集。要支持历史版本,那就可持久化一下。但是并查集不能路径压缩,为了保证时间复杂度,需要按秩合并。注意:要及时更新root数组,即便是需要连接的两个点已经联通。时间复杂度按秩合并后的并查集,每一次查询是O(logn)O(\log n)O(logn),可持久化的时间复杂度是O(logn)O(\log n )O(logn)。因此,总的时间复杂度为O(m×lo原创 2021-10-07 08:15:22 · 164 阅读 · 0 评论 -
N - 土豆的序列
N - 土豆的序列题目大意让你写一棵平衡树。题解写一棵splay。注意:对于询问的数x,如果不在splay里,就先要找到一个在splay里的数替换它,再进行查询操作。时间复杂度利用势能分析!设势函数Rx=log(sizex)R_x=\log (size_x)Rx=log(sizex),可知splay操作的均摊时间复杂度都小于3×(Rx′−Rx)3\times(R_x'-R_x)3×(Rx′−Rx),因此,nnn个点,进行mmm次splay的均摊时间复杂度为O(n×logn+原创 2021-10-07 08:13:52 · 130 阅读 · 0 评论 -
L - 芜湖塔台请求起飞
L - 芜湖塔台请求起飞题目大意给出一棵大小为nnn的树,有如下操作:更改一个节点的权值查询从x到y路径上的权值和查询从x到y路径上的最大权值题解如果是在一个序列中,上面的操作非常容易用线段树来完成,但是在树上并不能。于是就要想一个办法使得树变成一个序列。很显然,就是树链剖分。利用倍增求LCA,然后分别就是从x到LCA与从y到LCA的答案。修改操作就直接在线段树上完成。时间复杂度线段树上一次查询的复杂度是O(logn)O(\log n)O(logn)的,因为重边是连在dfn原创 2021-10-07 08:12:13 · 410 阅读 · 0 评论 -
K - yousa的鸟蛋
K - yousa的鸟蛋题目大意给定一个n×nn \times nn×n的二维平面,有修改和查询两种操作:给平面上某个矩形里的每一个数都加上kkk,查询某个矩形里面所有数的和。题解其实这题可以用很多种方法来做,树套树。不过二维树状数组不失为一种简单的方法,因为相比线段树,树状数组的代码量更少。运用差分的思想:在一维树状数组中,能实现区间修改操作,就是运用了差分 的思想,于是在二维树状数组上面,为了能实现区间修改操作,同样也是要用的差分思想记差分数组bi,j=ai,j−ai−1,j−ai,原创 2021-10-07 08:10:29 · 123 阅读 · 0 评论 -
J - 马老师的餐厅
J - 马老师的餐厅题目大意给出nnn个数,要求每次取出互不相同的三个数,组成一组,问最多能取出多少组。题解运用贪心思想,每次取一定是取剩余数量最多的三个数。这个可以用优先队列来维护,每次取出队列头的三个数,组成一组,然后把它们的剩余数量−1-1−1,再仍会队列里。时间复杂度优先队列单词操作的时间复杂度O(logn)O(log_n)O(logn),总共由nnn个数,于是总的时间复杂度就是O(n×logn)O(n\times log_n)O(n×logn)Tag优先队列贪心算法co原创 2021-10-07 08:08:50 · 281 阅读 · 0 评论 -
Codeforces Round #512 (Div. 2, based on Technocup 2019 Elimination Round 1) E. Vasya and Good Sequen
题目大意给出nnn个数a1,a2,⋯ ,ana_1,a_2,\cdots,a_na1,a2,⋯,an,每个数在二进制下,可以任意交换0和1的位置(也可以不交换),问有多少个区间[l,r][l,r][l,r]满足在每个数在操作之后的异或和为0。时间限制2s数据范围n≤3×105n\le 3\times 10^5n≤3×105ai≤1018a_i\le 10^{18}ai≤1018题解不难发现,只需要关心这个数在二进制下1的个数,而不要具体关注这个数是什么。那么考虑一下满足条件的区间中原创 2021-07-31 10:08:33 · 135 阅读 · 0 评论 -
Codeforces Round #735 (Div. 2) C. Mikasa
题目大意给出n,mn,mn,m求集合{n⨁0,n⨁1,⋯ ,n⨁m}\{n\bigoplus0,n\bigoplus1,\cdots,n\bigoplus m\}{n⨁0,n⨁1,⋯,n⨁m}的MEX。时间限制1s数据范围n,m≤109n,m\le10^9n,m≤109题解对于一个xxx,如果它存在集合中,即有n⨁y=x,y≤mn\bigoplus y = x, y\le mn⨁y=x,y≤m则有n⨁x=yn\bigoplus x = yn⨁x=y显然我们就是要找到最小的xxx使得n⨁x≥原创 2021-07-30 20:47:16 · 166 阅读 · 0 评论 -
Codeforces Round #735 (Div. 2) B. Cobb
题目大意给出一个长度为nnn的数组a1,a2,⋯ ,ana_1,a_2,\cdots,a_na1,a2,⋯,an求i×j−k×(ai∣aj)i\times j - k\times(a_i | a_j)i×j−k×(ai∣aj),其中|表示or,kkk是指定参数。时间限制1s数据范围ai≤n≤105a_i\le n\le 10^5ai≤n≤105题解两个数做or运算,十分不好处理,并不能在二叉树上找出对应的数。也很难分离出与不与jjj只与iii直接关联的部分。换一种思路,假设已原创 2021-07-30 20:21:16 · 321 阅读 · 0 评论 -
Codeforces Round #735 (Div. 2) A. Cherry
题目大意给出一个长度为nnn的数组a1,a2,⋯ ,ana_1,a_2,\cdots,a_na1,a2,⋯,an,求最大的max{al,al+1,⋯ ,ar}×min{al,al+1,⋯ ,ar}\max\{a_l,a_{l+1},\cdots,a_r\}\times\min\{a_l,a_{l+1},\cdots,a_r\}max{al,al+1,⋯,ar}×min{al,al+1,⋯,ar}时间限制1s数据范围2≤n≤1052\le n \le10^52≤n≤105题原创 2021-07-30 20:06:23 · 191 阅读 · 0 评论 -
联想杯 - G. Gentle Jena
题目大意给出一个长度为nnn的数组b1,b2,⋯ ,bnb_1,b_2,\cdots,b_nb1,b2,⋯,bn。定义函数f(l,r)=∑i=lrmin{bi}f(l,r)=\displaystyle\sum_{i=l}^r \min \{b_i\}f(l,r)=i=l∑rmin{bi}定义权值Ai=∑1≤l≤r≤if(l,r)A_i=\displaystyle\sum_{1\le l\le r\le i} f(l,r)Ai=1≤l≤r≤i∑f(l,r)AiA_iAi对998244原创 2021-07-29 18:50:02 · 109 阅读 · 0 评论 -
联想杯 - Disaster Recovery
题目大意给出nnn个结点,编号为iii的结点的权值为FibiFib_iFibi,斐波拉契数列的第iii项。一条连接x,yx,yx,y的无向边的边权为x,yx,yx,y的点权之和。求最小生成树,且要求这棵树的最大度数最小。时间限制1s数据范围n≤105,m≤2×105n\le 10^5,m\le 2\times 10^5n≤105,m≤2×105题解这里的边权十分之大,完全不可能直接计算出来,此时就需要用到斐波拉契数列的一些性质了。可以发现就是任意两点的点权之差是十分巨大的,并不是在加原创 2021-07-29 18:27:13 · 131 阅读 · 0 评论 -
Codeforces Round #558 (Div. 2) C. Power Transmission
题目大意给出二维平面上的nnn个点,这些点两两相连,构成了一些直线,其中重复的直线算一条(比如:三点共线只算是一条直线而不是三条)。问这些这些有多少对是相交的。时间限制3s数据范围n≤104n\le 10^4n≤104题解正难则反,计算不相交的直线,即平行的直线。这个非常好判断,只需要斜率相等即可。现在有一个问题,如果找出所有的直线,不妨先枚举一个点iii,然后再再[1,i)[1,i)[1,i)中枚举一个点,此时两点就能确立一条直线了。现在判断一下这些直线的斜率是否相同,如果出现相同原创 2021-07-29 10:00:21 · 114 阅读 · 0 评论 -
Educational Codeforces Round 49 (Rated for Div. 2) D. Mouse Hunt
题目大意有nnn个房间,每个房间都有一条连出去的通道,连向另一个房间aia_iai。初始时刻,老鼠会出现在[1,n][1,n][1,n]中的任意一个房间里。下一个时刻,老鼠将沿着这个房间连出去的通道,逃跑到另一个房间。现在要在房间里布置陷阱来抓捕老鼠,在第iii个房间里布置一个陷阱需要花费cic_ici的代价。假设陷阱很强,一定能抓到跑到该房间的老鼠。问最少要花费多少代价,才能保证无论初始时刻老鼠出现在哪一个房间都能把老鼠抓获。时间限制2s数据范围n≤2×105n\le 2\time原创 2021-07-29 09:27:08 · 239 阅读 · 0 评论 -
Educational Codeforces Round 20 C. Maximal GCD
题目大意给出一个整数nnn,让你把nnn拆成由kkk个整数组成的,严格递增的的序列。问这个数列最大公约数是多少,并输出相应的数列。时间限制1s数据范围n,k≤1010n,k\le10^{10}n,k≤1010题解不妨设这个数列的公因数为ggg,但不一定是最大的。先来看一下它有什么性质。不妨设数列为a1,a2,⋯ ,aka_1,a_2,\cdots,a_ka1,a2,⋯,ak,∑i=0kai=n\displaystyle\sum_{i=0}^k a_i = ni=0∑kai=n原创 2021-07-29 09:09:07 · 115 阅读 · 0 评论 -
Codeforces Round #483 (Div. 1) [Thanks, Botan Investments and Victor Shaburov!] B. XOR-pyramid
题目大意定义函数f(b1,b2,⋯ ,bm)={b1m=1f(b1⨁b2⨁⋯⨁bm)m>1f(b_1,b_2,\cdots,b_m)=\left\{\begin{aligned}b_1 && m = 1 \\f(b_1\bigoplus b_2 \bigoplus\cdots\bigoplus b_m) && m>1\\\end{aligned}\right.f(b1,b2,⋯,bm)=⎩⎨⎧b1f(b1⨁b2⨁⋯⨁bm)m=1m>原创 2021-07-28 09:21:43 · 162 阅读 · 0 评论 -
Codeforces Round #483 (Div. 1) [Thanks, Botan Investments and Victor Shaburov!] A. Finite or not?
题目大意给出一个在101010进制中分数pq\frac{p}{q}qp,问其在bbb进制下,是否是有限小数。时间限制1s数据范围p,q,b≤1018p,q,b\le 10^{18}p,q,b≤1018题解先考虑在101010进制下,如何判断一个分数是否为有限小数。先对pq\frac{p}{q}qp进行约分,得到最简分数,此时ppp已经毫无意义了。如果∃x\exist x∃x使得q∣10xq|10^xq∣10x那么就是有限小数了。但是,这个xxx并不好找,而且如此大的数运算起来也是非常原创 2021-07-28 09:20:58 · 121 阅读 · 0 评论 -
Codeforces Round #465 (Div. 2) E. Fafa and Ancient Mathematics
题目大意给出一个表达式,符号位置全部用?替代,已知运算只有加法和减法,并且知道有ppp次加法和mmm次加法。问这个表达式的最大值是多少。时间限制2s数据范围minp.m≤100min{p.m}\le 100minp.m≤100表达式长度≤104\le 10^4≤104题解这题细节比较多,特别是处理这个字符串表达式的时候。先将表达式处理成为树,然后就可以在树上dp了。设fi,jf_{i,j}fi,j表示在第iii个结点,使用了jjj次运算(次数较少的那一种运算)的最大值。设gi,j原创 2021-07-27 10:40:10 · 132 阅读 · 0 评论 -
Educational Codeforces Round 94 (Rated for Div. 2) D. Zigzags
题目大意给出一个长度为nnn的数组a1,a2,⋯ ,ana_1,a_2,\cdots,a_na1,a2,⋯,an,问有多少个四元组(i,j,k,l)\pod{i,j,k,l}(i,j,k,l)满足i<j<k<l,ai=ak,aj=ali<j<k<l,a_i=a_k,a_j=a_li<j<k<l,ai=ak,aj=al时间限制2s数据范围ai≤n≤3000a_i\le n\le 3000ai≤n≤3000题解显然枚举i,ki原创 2021-07-27 10:26:59 · 161 阅读 · 0 评论 -
Codeforces Round #596 (Div. 2, based on Technocup 2020 Elimination Round 2) D. Power Products
题目大意给出一个长度为nnn的数组a1,a2,⋯ ,ana_1,a_2,\cdots,a_na1,a2,⋯,an,问有多少对(i,j),i<j\pod{i,j},i<j(i,j),i<j满足ai×aj=xka_i\times a_j= x^kai×aj=xk,xxx为任意整数。时间限制2s数据范围n≤105n\le 10^5n≤105ai≤105a_i\le 10^5ai≤105题解涉及到乘法,就应该考虑质因数,不妨先分解质因数。如果要使得ai×aj=xka原创 2021-07-27 10:12:19 · 141 阅读 · 0 评论 -
Technocup 2020 - Elimination Round 2 C. p-binary
题目大意如果一个数xxx能表示成2m+k2^m + k2m+k的形式,则称它为好数。给出一个数nnn和参数kkk,问nnn最少能用多少个好数表示,可以用相同的好数表示。如果无法表示,则输出-1时间限制2s数据范围n≤109n\le10^9n≤109题解不妨把n=(2m1+k)+(2m2+k)+⋯+(2mp+k)n=\pod{2^{m_1}+k}+\pod{2^{m_2}+k}+\cdots+\pod{2^{m_p}+k}n=(2m1+k)+(2m2+k)+⋯+(2mp+k)即n=2原创 2021-07-27 09:53:56 · 174 阅读 · 0 评论 -
Codeforces Round #293 (Div. 2) D. Ilya and Escalator
题目大意有nnn个人,排成一列,现在他们将要进入自动扶梯。已知在111秒内,排在对头的人有ppp的概率进入自动扶梯,有1−p1-p1−p的概率保持不动。nnn个人必须依次进入自动扶梯,进入了自动扶梯的人不会再次离开扶梯。问在ttt秒后,自动扶梯里人数的期望是多少。时间限制2s数据范围n,t≤2000n,t\le2000n,t≤2000题解一个非常好想到的dp,设fi,jf_{i,j}fi,j表示在第iii秒,自动扶梯里有jjj个人的概率。转移显然fi,j=fi−1,j×(1−p)原创 2021-07-27 09:43:23 · 128 阅读 · 0 评论 -
Codeforces Global Round 15 B. Running for Gold
题目大意给出nnn个选手555场比赛的成绩,定义一个选手比另一位选手强,当且仅当在舞场比赛中他至少三场比另一位选手排名前。问是否存有一位选手,比所有选手都强,需要输出这名选手。如有多名,只需要输出第一名。时间限制1s数据范围n≤5×104n\le5\times10^4n≤5×104题解不难发现如果直接n2n^2n2枚举显然是不行的,不过可以通过剪枝来优化。不妨用这位选手第三好的成绩来表征他比所有人强的可能性,则可以先按照这个成绩来排序,然后从前到后枚举,这样就会大大增加找到这名选手原创 2021-07-27 09:30:27 · 164 阅读 · 0 评论 -
Codeforces Global Round 15 D. Array Differentiation
题目大意给出一个数组aia_iai,问是否存在一个bib_ibi,满足:∀i,∃j,kai=bj−bk\forall i,\exist j,k a_i=b_j-b_k∀i,∃j,kai=bj−bk无需求出具体的bib_ibi,只需要判断是否可行。时间限制1s数据范围n≤10n\le 10n≤10题解不妨把bib_ibi看成点权,则aia_iai看作边权。这样就可以通过暴力枚举,看看是否会重复到达同一个点,如果有,则是可以,否则不可以。Code//#pragma GCC原创 2021-07-27 09:17:39 · 310 阅读 · 0 评论 -
Codeforces Round #695 (Div. 2) D. Sum of Paths
题目大意给出一个nnn维数组a1,a2,⋯ ,ana_1,a_2,\cdots,a_na1,a2,⋯,an,定义一条长度为kkk的路径如下:从一个点c0c_0c0出发,可以向左一步到c0−1c_0-1c0−1(当前不在最左边),向右走一步到c0+1c_0+1c0+1(当前不在最右边),可以走重复点。记通过第iii次移动之后到达的位置为cic_ici,则c0,c1,⋯ ,ckc_0,c_1,\cdots,c_kc0,c1,⋯,ck就称为一条合法路径。定义该条合法路径的权值为ac0原创 2021-07-25 15:42:37 · 116 阅读 · 0 评论 -
Codeforces Round #678 (Div. 2) D. Bandit in a City
题目大意给出一棵有nnn个结点的一棵树,111好结点时根结点,第iii个结点上有aia_iai个人。现在有一个坏人出现在根结点,开始来抓人:每个结点的人先跑到与该结点相邻的点(不能跑向父亲结点),然后坏人在跑到某一个相邻的结点。当坏人走到叶子结点的时候停止,该叶子结点上的所有人被坏人抓获。已知所有人与坏人都知道彼此的位置,他们都是聪明绝顶的,每一步都是最优策略。问坏人抓到的人数最少能是多少。时间限制1s数据范围n≤2×105n\le2\times 10^5n≤2×105题解如果认原创 2021-07-25 13:00:25 · 132 阅读 · 0 评论 -
Codeforces Round #554 (Div. 2) C. Neko does Maths
题目大意给出两个数a,ba,ba,b,求最小的k≥0k\ge0k≥0,使得LCM(a+k,b+k)LCM\pod{a+k,b+k}LCM(a+k,b+k)最小。时间限制1s数据范围a,b≤109a,b\le10^9a,b≤109题解已知LCD(a,b)=a×bgcd(a,b)LCD\pod{a,b}=\frac{a\times b}{\gcd\pod{a,b}}LCD(a,b)=gcd(a,b)a×b如果直接枚举kkk显然不现实,考虑枚举gcdgcdgcd,不妨假设a>ba&g原创 2021-07-25 11:05:49 · 136 阅读 · 0 评论 -
Codeforces Round #639 (Div. 2) C. Hilbert‘s Hotel
题目大意给出一个长度为nnn的数组a0,a1,⋯ ,an−1a_0,a_1,\cdots,a_{n-1}a0,a1,⋯,an−1进行无限次的变化,一个数kkk,在一次变化后它变为k+ak%nk+a_{k \% n}k+ak%n。会不会在某次变化后,两个原本不相同的数变成了同一个数?时间限制1s数据范围n≤2×105n\le2\times 10^5n≤2×105−109≤ai≤109-10^9\le a_i \le 10^9−109≤ai≤109题解虽然变化次数和参与变化的数是原创 2021-07-25 10:42:11 · 102 阅读 · 0 评论 -
Educational Codeforces Round 12 E. Beautiful Subarrays
题目大意给出一个长度为nnn的数组a1,a2,⋯ ,ana_1,a_2,\cdots,a_na1,a2,⋯,an。求有多少个区间[l,r][l,r][l,r],满足al⨁al+1⨁⋯⨁ar≥ka_l \bigoplus a_{l+1}\bigoplus\cdots\bigoplus a_r\ge kal⨁al+1⨁⋯⨁ar≥k时间限制3s数据范围n≤106n\le 10^6n≤106ai≤109a_i\le10^9ai≤109k≤109k\le 10^9k≤109题解对于异原创 2021-07-25 10:03:34 · 130 阅读 · 0 评论 -
Codeforces Round #429 (Div. 1) D. Destiny
题目大意给出一个长度为nnn的数列a1,a1,⋯ ,ana_1,a_1,\cdots,a_na1,a1,⋯,an有qqq次询问,每次询问给出l,r,kl,r,kl,r,k,询问区间[l,r][l,r][l,r]中出现次数严格大于r−l+1k\frac{r-l+1}{k}kr−l+1的最小的数是多少。如果不存在满足题意的数,就输出-1。时间限制2.5s数据范围n,q≤3×105n,q\le 3\times 10^5n,q≤3×105ai≤na_i\le nai≤n2≤k≤52\l原创 2021-07-25 09:31:23 · 174 阅读 · 0 评论 -
Codeforces Round #401 (Div. 2) D. Cloud of Hashtags
题目大意给出nnn个标签,要求你删去这些标签末尾的某些字符(可以不删),使得这些标签的字典序是不下降的。问最少需要删去多少个字符,需要输出方案。时间限制2s数据范围所有标签串长和≤5×105\le5\times 10^5≤5×105题解对于两个串a,ba,ba,b,如果想使得a≤ba\le ba≤b,显然是删除aaa,而不会删除bbb。因为删除操作只会使得字符串的字典序变小。假设从前往后删除,不难发现是不可行的,因为当成功将第一个串删除后比第二个串小,然后第二个串和第三个串比较的时候原创 2021-07-24 23:36:25 · 124 阅读 · 0 评论 -
Codeforces Round #354 (Div. 2) C. Vasya and String
题目大意给出一个长度为nnn的只含a,b的字符串,再给出一个参数kkk,可以修改字符串中的kkk个字母。问最长连续相同的字串为多少。时间限制1s数据范围n≤105n\le10^5n≤105题解用贪心,只要能修改,就尽量修改。先假设求的相同串全部是a,枚举字串右端点,不难发现左端点是单调递增的,所以可以用一个指针维护,因此时间复杂度就可以做到O(n)O(n)O(n)。如果右端点是b则看看是否还有剩余的修改次数,如果没有,就将左端点右移,直到其腾出一个修改次数为止。Code//#pr原创 2021-07-24 23:10:26 · 110 阅读 · 0 评论 -
Educational Codeforces Round 75 (Rated for Div. 2) D. Salary Changing
题目大意有nnn个员工,需要给他们发工资,每个人的工资可以维区间[li,ri][l_i,r_i][li,ri]中的任意一个数。求在发的工资总和不超过sss的情况下,最大的中位数是多少。时间限制3s数据范围n≤2×105n\le 2\times10^5n≤2×105,nnn为奇数s≤2×1014s\le2\times10^{14}s≤2×1014题解不妨记n=2×m+1n = 2\times m + 1n=2×m+1不妨设中位数为midmidmid,那么midmidmid要满足什么条件原创 2021-07-24 19:13:09 · 113 阅读 · 0 评论 -
Codeforces Round #607 (Div. 2) G. Beingawesomeism
题目大意给出一个r×cr\times cr×c的矩阵,每次可以利用图中的一个1×d1\times d1×d或者d×1d\times 1d×1的子矩阵,并用其向一个方向(上下左右)移动,并用这个子矩阵的值来覆盖其的经过的地方。时间限制2s数据范围r,c≤60r,c\le60r,c≤60题解Code//#pragma GCC optimize (2)//#pragma G++ optimize (2)#include <cstdio>#include <algorith原创 2021-07-24 18:47:43 · 156 阅读 · 0 评论 -
Codeforces Round #574 (Div. 2) C. Basketball Exercise
题目大意给出两个nnn维数组a1,a2,⋯ ,ana_1,a_2,\cdots,a_na1,a2,⋯,an和b1,b2,⋯ ,bnb_1,b_2,\cdots,b_nb1,b2,⋯,bn。在a,ba,ba,b两个数组中,交替选择且每次选择的数的下标都要严格大于上一次选择的数的下标。求选出数的所有数的总和最大是多少。时间限制2s数据范围n≤105n\le10^5n≤105ai,bi≤109a_i,b_i\le10^9ai,bi≤109题解一个简单的DP,设fif_ifi原创 2021-07-24 10:36:08 · 148 阅读 · 0 评论 -
Codeforces Beta Round #27 (Codeforces format, Div. 2) E. Number With The Given Amount Of Divisors
题目大意给出一个数nnn,求约数个数为nnn的最小的那个数。时间限制1s数据范围n≤103n\le10^3n≤103题目保证答案≤1018\le10^{18}≤1018题解考虑如何计算一个数的约数个数,假设这个数为p1k1×p2k2×⋯×pmkmp_1^{k_1}\times p_2^{k_2}\times\cdots\times p_m^{k_m}p1k1×p2k2×⋯×pmkm,则它的约数个数就为Πi=1m(ki+1)\displaystyle\Pi_{i=1}^m \p原创 2021-07-22 10:39:57 · 125 阅读 · 0 评论 -
Codeforces Round #538 (Div. 2) E. Arithmetic Progression
题目大意这是一道交互题。给出一个长度为nnn的等差数列xix_ixi,对其进行重新排序等于一个新的数列aia_iai。有两种询问:1.数列中是否存在大于xxx的数。2.aia_iai是多少。需要在不超过606060次询问下,找到数列xix_ixi的公差和第一项。时间限制2s数据范围n≤106n\le10^6n≤106xi,ai≤109x_i,a_i\le10^9xi,ai≤109题解很显然,利用第一个询问就可以通过二分找到数列中最大的元素,那么如何在剩下的303030原创 2021-07-22 10:25:43 · 125 阅读 · 0 评论 -
Codeforces 682 C. Alyona and the Tree
题目大意给出一棵nnn个点的树,111为根结点,点有点权,边有边权。对一棵树来说,如果∃u,v且v∈subtree(u)\exist u,v 且v\in subtree\pod{u}∃u,v且v∈subtree(u)满足dis(u,v)>avdis\pod{u,v}>a_vdis(u,v)>av,则这棵树就是不好的。其中dis(u,v)dis\pod{u,v}dis(u,v)表示从uuu到vvv路径上的边权和,ava_vav表示vvv这个点的权值。为了使这棵树变好,每次可以删除原创 2021-07-22 10:07:31 · 197 阅读 · 0 评论 -
Codeforces 1267 E.Elections
题目大意有nnn名候选人,mmm个投票站,每名候选人的得票总数为每个投票站得票数的和。一名候选人能够当选,当且仅当他的总得票数严格大于其余的所有候选人。现在已知每名候选人在每个投票站的得票情况,每个投票站的得票数不会超过10310^3103。问至少要删掉多少个投票站才能不让第nnn名候选人当选。需要输出具体删掉的投票站,多种方案输入任意一种方案即可。时间限制3s数据范围n,m≤100n,m\le100n,m≤100题解为了不让第nnn位候选人当选,只需要前面的n−1n-1n−1位中的原创 2021-07-22 09:25:48 · 243 阅读 · 0 评论 -
Educational Codeforces Round 36 (Rated for Div. 2) D. Almost Acyclic Graph
题目大意给出一个nnn个点,mmm条边的有向图,问是否可以再删除一条边之后,图中不会出现环。时间限制1s数据范围n≤500n\le500n≤500m≤105m\le10^5m≤105题解判断有向无环图,最简单的方法就是拓扑排序。每一次拓扑排序的时间复杂度是O(m)O\pod{m}O(m),显然不能直接枚举删除哪条边。不过,可以发现,有些便无论是否被删除它都不会对答案造成影响,比如说本身就不在环里面的边。先进行一次拓扑排序,如果没有环,就直接输出YES,如果有环,那么图中必然还会剩余一原创 2021-07-22 08:55:21 · 135 阅读 · 0 评论