- 博客(19)
- 收藏
- 关注
原创 Educational Codeforces Round 116 (Rated for Div. 2)
文章目录E. ArenaE. Arena题意:现有nnn位勇士,生命值在1∼x1\sim x1∼x ,每回合所有勇士减少t−1t-1t−1点生命值,其中ttt是生命值为正的勇士数量。问:有多少种分配各勇士生命值的方法,可以使得最终所有勇士生命值均降为000及以下。思路:DP状态表示:设dp[i][j]dp[i][j]dp[i][j]表示iii个勇士,其中勇士血量最多为jjj,经过若干次后所有勇士血量≤0\le0≤0的方案数状态转移:如果i−1>=j,dp[i][j]=jii-1>
2021-10-31 19:29:55
135
原创 CF817E Choosing The Commander
CF817E Choosing The Commander题意:有qqq次操作,每次操作有三种类型,分别是1pi1 p_i1pi把 pip_ipi 加入集合 SSS2pi2 p_i2pi 把 pip_ipi 从集合SSS中删除3pi,li3 p_i,l_i3pi,li 表示查询集合中有多少个元素异或上pip_ipi后小于lil_ili集合为可重集。思路:01Trie一般用01Trie树来解决异或问题,我们建一颗01Trie,加入和删除就是正常Trie的操作,查询时,我们从高位
2021-10-21 20:38:09
179
原创 CF56E Domino Principle
CF56E Domino Principle题意:给你一些多米诺骨牌,每个骨牌都有一个高度hhh,它倒下时会放到[x+1,x+h−1][x+1,x+h-1][x+1,x+h−1],在xxx轴上从左到右排列在一起,问,每一个倒向右边的时候会压倒多少个骨牌?给定的骨牌并不是按照xxx从小到大的顺序排列的。思路:线段树优化DP先对骨牌按xxx排序,然后从右往左推,dpidp_idpi表示放倒iii一共放倒的骨牌数,dpi=max(dpj+j−i),(xi+1≤j≤xi+hi−1)dp_i=max(dp_
2021-10-21 20:06:12
135
原创 CF1265E Beautiful Mirrors
CF1265E Beautiful Mirrors传送门题意:小C有NNN个从编号分别为111到NNN的镜子。她每天都会问一面镜子:“我漂亮吗?”而对于第iii面镜子,有pi(1≤i≤n)p_i (1\le i\le n)pi(1≤i≤n)的概率告诉小C很漂亮。她从第一面镜子开始,一个接一个的问镜子。每一天,对于她问的第iii个镜子,有两种情况:如果第iii个镜子告诉小C她很漂亮:若此时i=ni=ni=n,则小C就会开心到极点,停止对镜子的询问。否则,她第二天就会询问第i+1i+1i+1个镜子
2021-10-20 22:13:51
112
原创 Codeforces Round #744 (Div. 3)
文章目录A. Casimir's String SolitaireB. Shifting SortA. Casimir's String SolitaireA. Casimir's String SolitaireA. Casimir's String SolitaireA. Casimir's String SolitaireA. Casimir’s String Solitaire题意:给你一个只含A,B,CA,B,CA,B,C字符串sss, 每次可以删除一个AAA和一个BBB,或者删除一个AA
2021-10-02 11:04:09
229
原创 Codeforces Round #721 (Div. 2)
文章目录B2. Palindrome Game (hard version)B2. Palindrome Game (hard version)题意:alicealicealice和bobbobbob轮流操作一个长度为n<=1000n<=1000n<=1000的010101串,alicealicealice先手,有两种操作:1. 把一个000变成111,花费111元2. 把当前非回文串翻转,花费000元,但是上一步不能为翻转操作求当串全为111时,花费多的输掉,求最后的胜负情
2021-09-27 21:12:36
78
原创 Codeforces Round #743 (Div. 2)
文章目录C. BookC. Book题意:有一本书有nnn个章节,读懂一个章节,需要读懂它所有的前置章节,看一便书只能从顺序从第一章看到最后一章,问能否读懂所有章节,如果能,输出最少需要几遍书,否则输出−1-1−1思路:拓扑排序+dp状态表示:dp[i]dp[i]dp[i]表示读懂这个章节所需要的最小遍数边界条件:如果iii没有前置章节(入度为0),dp[i]=1dp[i]=1dp[i]=1状态转移:将一个章节的所有前置章节与这个章节连一条有向边,做拓扑排序,如果没有拓扑排序,直接输出−1
2021-09-23 17:30:12
184
原创 Codeforces Round #740 (Div. 2, based on VK Cup 2021 - Final (Engine))
文章目录B. Charmed by the GameC. Deep Down BelowB. Charmed by the Game题意:alicealicealice和bobbobbob打网球,两个人交替发球,谁先发球不定,alicealicealice得了aaa分,bobbobbob得了bbb分,如果一个人在对面发球时得分,称为破发,求两人所有可能破发数和思路:O(n)O(n)O(n)我们站在alicealicealice的角度破发总数=alicealicealice破发+bobbobbo
2021-09-01 19:11:01
73
原创 Codeforces Round #739 (Div. 3)
文章目录D. Make a Power of TwoE. Polycarp and String TransformationF2. Nearest Beautiful Number (hard version)D. Make a Power of Two题意:给一个数nnn,可以删除某一位或在后面添加任意一个数,求把nnn变为二的幂次最少需要多少步思路:枚举+双指针暴力枚举nnn到x=20∼262x=2^0\sim 2^{62}x=20∼262需要几步,统计nnn的子序列能最多匹配xxx的前缀
2021-08-22 20:28:46
93
原创 AtCoder Beginner Contest 215
文章目录E - Chain ContestantE - Chain Contestant题意:给你一个只有101010个大写字母长度为nnn的字符串sss,问有多少种非空子序列,使得如果选了一个字符,那么这些字符必须连续出现思路:状压dp状态表示:dpi,j,kdp_{i,j,k}dpi,j,k,表示枚举到第iii个字符,以jjj结尾,kkk表示每字符选和不选的状态,例如dp4,3,0001001000dp_{4,3,0001001000}dp4,3,0001001000表示当前枚举到第四
2021-08-22 11:57:36
290
原创 20级CUSTACM 2021年暑期训练七
文章目录E - Road to CinemaE - Road to Cinema题意:某人在起点000处,到终点的距离为sss。 公司提供nnn种车,每种车有属性租车费用cic_ici,油箱容量viv_ivi,车子有两种前进方式 :慢速:1km1km1km消耗1L1L1L汽油,花费222分钟,快速:1km1km1km消耗2L2L2L汽油,花费111分钟。 路上有kkk个加油站,加油不需要花费时间,且直接给油箱加满。 问在TTT分钟内到达终点的最小花费是多少?,若无法到达终点,输出−1-1−1思
2021-08-02 21:08:30
129
原创 Codeforces Round #735 (Div. 2)
文章目录A. CherryA. Cherry题意:给你一个长度为nnn的序列a1...na_{1...n}a1...n,问找出一段区间1≤l<r≤n1\le l< r \le n1≤l<r≤n,使max(al...r)×min(al...r)max(a_{l...r}) \times min(a_{l...r})max(al...r)×min(al...r)思路:考虑一个子数组ai..ja_{i..j}ai..j,那么ai...j+1a_{i...j+1}ai...j+
2021-07-30 11:29:04
78
原创 20级CUSTACM 2021年暑期训练六
文章目录C - Code For 1C - Code For 1题意:将nnn分解为n2,n%2,n2\frac{n}{2}, n\%2, \frac{n}{2}2n,n%2,2n三部分,再将n2\frac {n}{2}2n分解,得到一个序列只有000和111,问l∼rl\sim rl∼r有几个111题解:分治分析得出一个数全分解完的长度为len=2x−1len=2^x-1len=2x−1,因为最小的222分解变成1,0,11,0,11,0,1,长度为333,所以4,54,54,5分解的长
2021-07-29 20:01:34
269
原创 20级CUSTACM 2021年暑期训练三
E - Light It Up题意:在0∼m0\sim m0∼m这个区间内,有nnn次操作,一开始的时候灯是亮着的,每操作一次,会将灯熄灭/点亮,现在对于这个已知的操作顺序,在多加一次/不加操作,找出灯能亮的最长时间,输出最长的时间思路:T[i]T[i]T[i]表示从0∼m0\sim m0∼m 亮灯的时间,递推出T[i]T[i]T[i],遍历每一个开关灯的位置,添加一个操作会使i+1∼mi+1\sim mi+1∼m的时间内,开灯变为关灯,关灯变为开灯,我们假设只在a[i]a[i]a[i]前一个位置添
2021-07-28 19:37:02
136
原创 20级CUSTACM 2021年暑期训练五
K - Alyona and Strings大意:给定两个字符串s,ts,ts,t,在第一个串中找k个连续的子串(不相交),并且这些字串在第二个字符串中均出现且顺序相同,问这些字串最大的长度和。思路:(dp)状态表示:dp[i][j][k][0/1]dp[i][j][k][0/1]dp[i][j][k][0/1]表示匹配到了s[is[is[i]和t[j]t[j]t[j],并且已经匹配了kkk段,1表示当前第kkk段还会继续延伸,000表示不再延伸,的配对长度属性:maxmaxmax状态计算:
2021-07-27 21:22:32
103
原创 Codeforces Round #696 (Div. 2)
文章目录C - Array DestructionC - Array Destruction传送门题意:给一个长度为nnn的序列,问能否找出一个xxx?,有ai+aj=xa_i+a_j=xai+aj=x,消去ai,aja_i,a_jai,aj,然后xxx变成max(ai,aj)max(a_i,a_j)max(ai,aj),n2\frac{n}{2}2n次操作后消除数组所有数。思路:每次必须选择当前序列最大的数,因为如果不选之后就无法再消除这个数了,所以先从大到小排序,第一次操作我们枚
2021-01-21 12:48:10
412
原创 Codeforces Educational Round 102 (Rated for Div. 2)
文章目录D. ProgramD. Program传送门题意:给一个长度为nnn的’+’,’-‘序列,‘+’代表加1,’-'号代表减1 ,和qqq次询问,每次询问,输入l,rl,rl,r表示删除[l,r][l,r][l,r]序列,[1,l−1][1,l-1][1,l−1]和[r+1,n][r+1,n][r+1,n]按原顺序拼接,问删除后的序列出现了多少数字?思路:求当前序列出现多少个数字,因为只有加一减一,数的变化是连续的,所以出现数字=最大值-最小值+1,所以我们只要求出当前序列的最大最小值,删除
2021-01-16 14:26:24
269
1
原创 Codeforces Round 694 div2
文章目录A. Strange PartitionB. Strange ListA. Strange Partition传送门题意:给一个长度为nnn的序列和xxx,可以把两个数合并成一个数,问任意操作后⌈a[i]x⌉\left \lceil \frac{a[i]}{x} \right \rceil⌈xa[i]⌉和最大值。思路:两个数a,ba,ba,b,⌈a+bx⌉≤\left \lceil \frac{a+b}{x}\right \rceil \le⌈xa+b⌉≤ ⌈ax⌉+⌈bx⌉\lef
2021-01-12 12:46:56
102
原创 Codeforces Round 695 Div2
文章目录A. Wizard of OrzB. Hills And ValleysA. Wizard of Orz传送门题意:n个整数,开始全是0,每一秒全部+1模10。可以在任意的位置,让序列暂停。它的相邻位过1秒钟暂停,相隔为2的位置过2秒钟暂停,问操作后得到的最大的数是多少?思路:最大第一位必须是9,所以第二位是8,第二位暂停后第一位和第三位都是9,剩下n-3个数从0开始加并模10AC代码:#include<bits/stdc++.h>using namespace st..
2021-01-12 11:30:45
1156
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人