- 博客(35)
- 收藏
- 关注
原创 Codeforces Round 936 (Div. 2)A-C
题意:问移去k条边。剩余的连通块中最小的最大是多少,比如五个节点,移除一条边可以分为1:2,3,4,5;1,2:3,4,5,那么最小的连通块有1或者1,2,那么答案就是2;题意:你可以选择数组中的子数组(可以为空),求和并查入数组的任意位置,求k次操作后数组最大的和。题意:给一个数组,找到中位数x,每次操作你可以让其加一,问让中位数x变成比原来大一要几次操作。思路:找到当前的中位数,计算后面有几个与其相等的,全部加一。
2024-03-23 14:53:46
328
1
原创 Codeforces Round 928 (Div. 4)A-D
思路:相当于对一个数找他二进制1-31(从右往左)的取反,但int有32位,直接取反会把第32位也取反,那么直接异或上31位的1就是(2147483647)就找到了,用map查找存不存在。对于同一组中的任意两个数x和y,对于所有1≤i<32, x2(i)≠y2(i)(二进制)对于所有1≤i<32。思路: 可以发现第i个数的数位和为a[i]= a[i/10]+i%10(O(n)),再用一个前缀和。思路:题目说不是方就是三角,如果是三角那么肯定有一个1两边都没数字。题意:统计从1到n所有的数位和。
2024-02-21 12:15:10
702
原创 Codeforces Round 926 (Div. 2)
思路:倍投法,保证如果赢一次总收益为正,因为有保底所以可以要保证他的硬币数足以撑到x+1回合,假设已经投入sum,那么每次的投入now就需要满足k*now>sum+now;思路: 每个格子都有两条对角线穿过,但主对角线和副对角线会穿过两个格子,也就是这两个格子只能提供3条对角线。题意:有n*n个格子,(4*n-2)条对角线,要求有k条对角线,每条对角线上至少有一个格子需要涂色。题意:计算a(i+1)-a(i)的最大值。思路:只要计算最大值减最小值。
2024-02-16 15:38:55
508
原创 Codeforces Round 923 (Div. 3)【题解A-D】
思路:统计每个数字出现的个数,用‘a’加上,相当于用字符表示数字出现的次数,第一次出现就是'a',第二次就是'b';思路:预处理,找到每个数下一个不同的位置d[i],判断d[i]<=r是的话输出l,d[l],否则输出-1 -1.思路:只要判断两个数组中1-k的独立出现的数字个数不大于k/2个就行了,前提是1-k中的数都存在。题意:给你一串数字,表示a-z字母出现的次数,例:[0,0,1,2]对应的字符串为"abaa"题意:n个数,q次询问,l,r,之间有没有不同的,有的话输出下标,没有输出-1,-1.
2024-02-07 16:19:48
448
原创 C. Removal of Unattractive Pairs
都大就是(2*max>n),第三种(2*max<n)就是最大的比。题意:字符串中不同的两个可以消除,问最后还剩几个。思路:可以分解成三种情况,一种是出现最多的可以和。直接抵消,或者说(2*max==n)第二种是出现最多的比。
2023-12-11 22:37:48
797
1
原创 牛客小白月赛81 C
思路:数据很大,可以对其取模。把除法转换成乘法,对第一个的除可以当成对第二个的乘,这个模要是一个大于10^5的质数并且不能是10^9+7数据会卡。或者将所有的数都拆成质因数,看能不能抵消。
2023-11-18 16:52:31
154
原创 Minimum Ties
思路:可以想到一共会进行(n-1)*n/2场那么每个人都会进行(n-1)场,平局最少的话每个人都应该赢(n-1)/2场,输(n-1)/2场。我们就可以确定第一列,(2,3)只能填1,因为3已经平过一局了,2也已经输过一局了。同理,可以填出其他的。可以发现 :1,0,-1;是滚动的,所以,结果取决于1与其他(n-1)个的安排。我们先确定第一个人的赢法,假设有4个人,因为(n-1)是奇数所以不能整除,需要一局平局。
2023-11-10 10:04:23
94
原创 Good String
思路: 很容易想到找出字符串中的重复出现次数最多的组合,但是如果直接枚举字符串中的组合肯定会超时,容易发现满足要求的组合一共有100种(ab,a是0~9,b也是0~9),所以我们直接枚举ab个个组合在字符串中的情况。
2023-11-09 20:21:55
89
原创 牛客练习赛117
思路:当k是偶数时一定可以全由女生构成或偶数个男生和女生构成所以可以假设所有的男生都参与了,(n + 2* m) % k得到如果是奇数则说明有一个男生和若干个女生(优先使用男生)如果得到得是偶数就全当女生。当k是奇数时肯定是奇数个男生和若干个女生也就是每组都需要一个男生。之所以要分开是因为当k为奇数时可能会把一个女生分到两个组。
2023-11-04 22:52:53
157
1
原创 牛客小白月赛80C-D
比如 人数最多的班级有a个人,那么其他的班级就只能小于等于a,那么用班级的原来人数减去a求。思路:数据小,枚举剩下的人数一共有0-n种,就是枚举。思路:二分枚举,用前缀和计算(orz)时离开的人数,判断其满不满足k。
2023-10-28 15:25:50
218
原创 C.mex和gcd的乘积
思路:有两种情况一种是没有零,那么结果就一定为零,另一种就是有零(gcd,mex,其中肯定有一个为1), 那么最大的就是零两边的数(因为gcd(x,0)=x,这时mex只能等于1),或者全部选上(如果mex不为1,那么gcd一定为1,因为gcd中有1)
2023-10-21 10:50:56
213
原创 A「Nhk R2」自胡蹿
问最少需要多少次操作才能使 sss 有长度大于等于 kkk 的回文子串。思路:动态规划dp数组表示l-r变成回文串的最小代价,最后枚举所有结果。
2023-10-16 20:13:40
150
原创 The 19th Zhejiang Provincial Collegiate Programming Contest
题意:计算起点到终点的最短路径,给你n个加速点到达之后可以获得3秒v2的速度,给你起点,终点,还有v1,v2。题意:有T组数据,a,b,你可以选择让a + 正奇数x 或让a - 正偶数y,问最少多少次可以让a变成b。思路 : 当a<b时如果a-b是一个偶数并且这个数除于2后是一个偶数数则需要3次比如(2,6)思路,计算起点到加速点的时间,和个加速点到个点的时间,跑一遍 dijkstra。中严格大于当前集合平均值的糖果,问最多可以拿多少个。题意:统计a中大于等于x和b中小于等于x的个数。
2023-09-16 19:24:11
276
原创 The 2021 ICPC Asia Shanghai Regional Programming Contest
题意:给你n个节点,n-1条边,其中n为奇数,求按每小组中有两条边 并且 两条边有一个相同的节点 分成(n-1)/ 2个组 有多少种分法。题意:给你一个序列,选出一个子序列,满足这个序列中。题意:给你p,q,找出a,b满足。思路:解方程,注意判断不合法情况。求满足要求的序列的最大长度。
2023-09-15 10:14:45
290
原创 2023 (ICPC) Jiangxi Provincial Contest -- Official Contest
思路:不需要建图,因为最终需要的结果是异或的结果,所以把异或的值直接存,就行了。不过要用C++17交。1:给x,y,z, 让你对 x 到 y 的路径上简单路径上的所有边都按位异或上一个 z。2:给你一个结点 x ,问你与 x相连的所有边的按位异或和等于多少,并输出。思路:操作0只是改变了相邻差值的顺序(没有意义),对差值排序后求前缀和。题意:一颗树有n个节点,每条边有权w,给你节点数量,和q次操作,题意:给你n个数,按降序排列,和m个操作。1:输出分成k段后其中差值最大的。
2023-09-09 17:12:30
475
1
原创 牛客练习赛115A-B
思路:除了最大的数外每个数有两种选择一个在最大的数左一个是右。所以每种数可以提供n+1种新组合。思路:模拟一下,用map存cnt对应的x。
2023-09-09 14:36:59
132
1
原创 2022 China Collegiate Programming Contest (CCPC) Mianyang Onsite
题意:每次操作都可以抓住一个节点里的所有蝴蝶(每个节点都有蝴蝶),每一分钟蝴蝶会飞向出口(节点1)(也就是从子节点集中到父节点)到达节点1的蝴蝶会立即消失。一分钟可以操作无限次,问最小的操作次数(抓完所有的蝴蝶)题意:给你n个数(不相等),在一轮中如果一个数比左右相邻的任意一个数小就可以得到蛋糕并且在这一轮结束后退出队伍退出队伍。蝴蝶一定会集中在与1号节点相邻的子节点所以当前子树有多少层就需要操作多少次,每颗子树相加就是总的操作数。思路:如果后一个可以赢前一个说明他可以继承前一个赢的次数反过来也一样。
2023-09-07 14:50:57
295
1
原创 C. Paint the Digits
思路:拷贝一份后将其排序,由于下标不变,所以可以遍历排序后的数组找到递增序列,并标记,然后判断另一组是否递增。题意:判断是否可以拆成两个子递增的序列,分别用1,2标记两个子序列,如果不存在就输出‘-’。
2023-09-05 16:24:17
94
1
原创 牛客周赛 Round 10
思路:由题可得关于t的函数F(t)=t+y/(v0+t*x);对其求导.当 v0*v0>xy 时 F(t)′>0 恒成立,t取零;如果 v0*v0<=xy的话令 F(t)′=0 来求出极值点 进而得到最小值。思路:直接枚举每个排列再判断。
2023-09-03 23:12:30
61
原创 2023 Hubei Provincial Collegiate Programming Contest
思路:暴力的话时间复杂度是O(n2)会超时,所以需要优化,很容易想到如果某一个点是零的话可以直接跳过,但还不够,还有如果度一样的话会重复计算,所以我们统计度出现的种类,而在m最多为10^6情况下度的种类约是√(2m)这个量级(近似服从正态分布的规律)。第i个位置的增长速度是1到i的和,初始为0。f(u,v)=(degu⊕degv)(degu|degv)(degu°v)度的异或*度的按位或*度的按位与;思路:前缀和算出每个位置总的增长速度,如果需要停留(有负的),则在当前最大的增长点停留相应的时间。
2023-09-03 22:23:26
346
原创 牛客小白月赛77
思路:通过统计每个货架的出发和结束情况,再用前缀和找到最大的,相当于是整个过程中(如果车只有一个位置)经过的次数。思路:最多n个环,就是n个自环,最少一个就是全部成环。可以看成有一个大环和m-1个自环,思路2:把每个货架当成一个节点统计入度出度,如果入度大于出度就说明有新的商品加入购物车。“n-(m-1)”就是大环里的元素个数,操作数就是n-(m-1)-1次;思路:有三个一样或对角线一样。反之就是有商品从购物车上下来。
2023-09-03 12:45:40
94
原创 Mondriaan‘s Dream
例如当 N=2,M=4 时,共有 5 种方案。当 N=2,M=3 时,共有 3 种方案。求把 N×M 的棋盘分割成若干个 1×2 的的长方形,有多少种方案。思路:状压dp,细节如下。
2023-08-26 13:03:45
72
原创 数学训练一
Bob先拿就相当于拿到最后的就赢,那么每一轮最多拿3个,如果数量对三取余不为零那么就是Bob只要把数量mod3的拿完,那么Bob一定能拿到最后一个,因为Bob可以控制每一轮的总数为3;如果数量mod3==0则Alice可以控制每一轮总数为3,Alice可以拿到最后一个。思路:如果是奇数就不行,之后每次乘二,而不是加,直到变成奇数,如果是加的话比如说‘6’就是可以分解成3*2。思路:每个数字意味着有n+1个人,当n的出现次数每超过了n+1,就说明还有n+1个人。思路:大数用数组将其转变为取余。
2023-07-26 22:49:48
71
1
原创 牛客小白月赛76A-D
题目链接: https://ac.nowcoder.com/acm/contest/60393 B 思路:每次复制最多可以变成两倍 C 思路:变形后可以得到(n-m-b)%b=0,所以n-m直接等于b就行了,之后在带回去判断成不成立 D 思路:选择加的情况只有x=0和x=1时a[i]=1时,而且要注意当x>1时如果取mod后x=1此时是不能用加的
2023-07-15 10:37:29
101
1
原创 牛客小白月赛74A-D
思路:将数组中大于零的都计算出操作它的结果,比如有n个数,a[i]=5,那么操作它就会减去a[i]*(n-i+1),因为要最小结果所以应该优先操作下标大的,这样可以避免影响前面的正数。也就说减完后对于其他正数是没影响的,那么操作m次,就只需要对所有正数的操作结果排序就行了,最终减去前m个。思路:尽量用1,2,3...如果末尾出现重复就和前一个相加,比如1,2,3,1,就应该是1,2,4。思路:其实就是统计不同的数字,不要想多了。
2023-06-11 09:26:45
90
原创 牛客小白月赛71A-D
思路:找出所有人中 符合猫猫需求的,输出的是符合需求的最大值,所以通过预处理将最大值赋给其他人就可以了,,先按照期望友善值排序,如果前一个人他的期望友善值小但友善值是大的说明这个人的友善值是小于这个友善值的人中的最优解(期望低,友善高)。思路:pow()可以计算10^18 ,直接比就行了。思路:查找存不存在子字符串。
2023-05-21 11:22:54
81
1
原创 牛客小白月赛70(A-D)
思路:一个一个的枚举会超时,所以枚举‘1’的位置,通过另一个数组记录下“1”所在的位置,题目要求不能有两个“1”存在。通过下标相减可得到“1”左边到前一个“1”之间零的数量,和右边到后一个“1”的零的数量。思路:四个格子四个格子的遍历,求平均值。
2023-05-06 11:43:31
92
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅