- 博客(13)
- 收藏
- 关注
原创 牛客周赛84
题解:求最大的快乐指数,我们需要先找到树根,然后对其从上到下遍历,dp[x][0]表示以x为根节点,并且不选它的最大值,dp[x][1]表示以x为根节点,并且选他的值。可写作:f[i][j]=max(f[i][j],f[i][j-k-1]+f[v][k]+w[i]),v是i的子节点。题解:要求将某个边断掉后两棵树陡峭值相差的最小值,首先先预处理树上每个节点维护的信息,之后dfs一遍,看每个边去除后的最小值,即为答案。题解:观察样例,可以发现x为每个陡峭值累加的两倍,而q可以发现就是求一个逆元。
2025-03-16 16:43:12
240
原创 codeforces练习
题解:若我们想要nk的数里有123456789和额外的d,由于123456789d不一定是n的倍数,那么我们可以给他加上一些数使其成为倍数,我们只需构造出123456789d000...的形式最后加上(n-x)%n,再除以n即可。题解:由样例可发现,若n的每个位上的数都是奇数,那么直接输出97531即可,若有偶数,将其位置记录下来,最后输出即可,因为最后以为是偶数,一定可以拆成两个数相乘。题解:可以得到性质:结果一定出现在横坐标相邻的点对上,所以只需按横坐标排序后算一边相邻点的答案,取最大值即可。
2025-03-09 08:29:03
176
原创 codeforces 1006 div3(A-F),洛谷线段树
题解:对于长度为n的数组,选择[l,r],将a[l]移到a[r]后面 ,要让逆序对数目尽可能少,观察可发现,如果移动后a[l]>a[r],显然逆序对数目会变多,而若a[l]<a[r],逆序对数目会减少,所以只要逆序对减少的越多越好,同时不断更新左右边界即可。题解:要重排字符串,找出满足哥布林脸的最大个数,显然‘-’要放两边,‘_'要放中间,因此先找到分别的对数,再乘上其余未配对的个数。//此时画图可以看出,当点都在一条线上时,对k的贡献最大,此时为(n*(n-1))/2;题解:由lucas定理可推出。
2025-03-01 20:16:24
240
原创 codeforces round1003 div4
题解: 在一组b中选择,构造数组a,使得最终a能递增,构造的每个a需要尽可能的小,我们可以对b先排序,之后就能通过二分找出满足条件的最小的b以此构造a数组,如果构造完不能递增,那么输出no.题解:平衡值为k,只需连续输出0或1,其余的用0101填充即可,最后剩下的输出与相反的即可。题解:如果字符串两两元素相同,那么最终就能消到1,否则就是原长。题解:将字符串的前len-2的长度截取,加上i输出即可。题解:贪心,可以发现把总和大的放到前面,通过排序计算即可。C. C2是C1的一般情况。
2025-02-16 16:54:48
289
原创 牛客寒假4,5(未补完)
题解:由于询问需要替换多少次才可让s成为回文串,由观察到的性质可知,我们可以先将两个字符串中的字母数依次用map存储起来,两个字符串相同的字母依次抵消,它们不需要进行替换,如果长串中没有短串中的某一字母,我们把它加到sum中表示替换次数,同理,长串自己的元素也可以两两抵消,用sum1记录不能抵消的数目,如果sum1<sum,那么总次数就是sum1,否则总次数除了sum1,还有sum1和sum抵消,还有sum1两两抵消。题解:由观察可知:如果n==m,那么一定可以变成目标数字,如果n==0但m!
2025-02-09 19:36:57
242
原创 codeforces round 993 div4+round 974 div3
题解:要求罗宾哥哥和母亲开始的最佳时期,由于哥哥要尽可能大,母亲要尽可能小,所以先将哥哥初始化为0,把母亲初始化为无穷。题解:要将字符串翻转,并且将q变p, p变q,只需依次遍历出现p就变成q,出现q就变成p,最后将字符串从后往前输出即可。题解:本题要我们构造一个b数组,让a中每个元素都是b的模,只需a的每个元素在b中出现一次即可,如果有空位,用i填充即可。题解: 只需判断座位能不能满足a,b即可,如果a,b比座位多,那么总数即为座位和,如果有空,就给c.
2024-12-22 14:14:39
620
原创 1.洛谷题解
题解:本题想要求最小的区间将五个画师的画都包含,并且a要尽可能小,可以看作一道滑动窗口问题,它的最小区间可以通过二分得到,先判断区间中有无对应画师的作品,如果没有,将其包括,如果一开始以及满足条件,直接返回对应区间,否则进行遍历,如果划出窗口,且窗口中没有对应的数,那么总数减少。题解:虽然写的矩阵,但是1*n的,属于滑动窗口模板题,用stl,如果队列不空,并且当前元素大于队尾,弹出队尾,将当前元素放入队尾,如果窗口滑过队头,弹出队头,如果都在队里,输出队头即为最大的数。k:分界线,将区间分为两部分。
2024-12-19 20:57:50
283
原创 codeforces round 974 div3
题解:由于本题的年分最大达到十亿,时间复杂度过大,无法枚举,因此,本题应该和找规律有关。要我们判断叶子数奇偶性,只需判断最后n-k+1到n年即可,如果为偶数,输出YES。题解:本题要求从罗宾汉哪里获得黄金的人数,如果 达到阈值,罗宾汉就进行没收,如果遇到没有的,并且他还有黄金,那么计数器加1,表示获得的人数。
2024-12-14 14:20:45
124
原创 洛谷部分题解
题解:由于每次都有三个数据彼此有关,所以可以定义一个结构体,本体的状态可以看作以第i个鼹鼠结尾能打死的最大数量,由于机器人只能沿上下左右走,因此可以计数它与鼹鼠的曼哈顿距离为多少,将其与下一刻和现在的时间的差值作比较,如果dist大于judge,由于机器人一次只走一格,所以抓不到。(可以看作最长上升子序列问题)题解:题目给定了n组询问,先将区间的起点和终点排序,我们先不管区间是否有重合,先加上它的长度,如果一个区间的右端点大于它之后区间的左端点,说明发生重合,此时我们将重合的部分减去即可。
2024-12-13 16:40:54
174
原创 codeforces round 952 div4
题解:要求a的非空前缀数量,先处理第一个元素,如果它为0,计数器加1,遍历每个数,观察其是否和前面的数相加的和为最大数的二分之一。如果是,计数器加1.题解:先输入每一行,如果遇到了‘#’就将其的横和纵坐标分别累加,同时用计数器记录有多少个‘#’,将横和纵坐标的和分别除以个数,即为圆心。题解:本题要我们找x的最优值,先枚举x可能的值,然后将它的倍数全部相加,找出其最大值,然后重新枚举找到x.题解:直接将两个字符串的第一个字符交换即可。
2024-12-13 16:10:47
237
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人