- 博客(60)
- 收藏
- 关注
原创 AtCoder Beginner Contest 392(A-G)题解
F:因为前面的总会被后面的顶掉,所以我们直接倒置放,一定不会被顶掉,每次从头开始找到未被放数字的第a[i]个位置,这个位置就是当前数字,寻找的过程可以通过维护线段树,每次放一个数字就可以把这个位置上的sum标成1,在线段树上二分这个sum去寻找位置,复杂度nlogn。G:经典FFT,考虑把值域a[i]看成多项式的x^a[i],把方案数看成系数,最后把多项式相乘系数就是每个值的方案数,由于原式子可以化成A+C=2B,因此我们枚举2B,只可能是偶数,且B一定要出现在原来的a数组中,这就可以计算到答案中去。
2025-02-09 00:04:55
381
原创 失踪人口回归之-----(AtCoder Beginner Contest 388 A-G题解)
那也就是说我们可以二分答案确定答案,假设我们二分的答案为K,那么需要验证[L , L + K - 1] 和 [R - K + 1, R]是否能够一一匹配,也就是对于c∈[0, K - 1] a[L + c] * 2 <= a[R - K + 1 + c]。其次对于每个障碍区间[l, r]来说,永远只有最多B个位置在l左边也就是[l - B, l - 1]这个位置可能存在,然后到达这些位置后,在考虑用一次[A,B]中的步伐跨过去,此时也顶多B个位置,因此依次维护这些位置即可跨过所有障碍区间。
2025-01-12 01:05:28
422
原创 Codeforces Round 926 (Div. 2)
因为这幅图,假如2和3都是危险点,但是对于1子树外得点来说,1子树就1个危险点,因为简单路径不能有重复,如果2通过1得子树走出去了,那么就不能走回来,因此顶多就一个。考虑两个有限制的相邻节点(i,j),那么我们把原序列拆成n段来数,最后用乘法原理相乘即可,对于每一段就是每个数有pos[j] - pos[i]个数,并且有j-i+1个位置,我们考虑用隔板法计数即可。Q2:我们可以多画两个图,则可以发现2*2有2个,3*3有4个,4*4有6个,因此我们可以得出结论2*(n-1)就是我们至少要涂的个数。
2024-02-16 14:48:43
985
原创 AtCoder Beginner Contest 228(A-Ex)
给你两个长度为N的整数序列A和C,你可以操作任意次,每次选择一个整数i,使得A[i] + 1,花费Ci元,完成操作后你需要支付K*X元,K是A元素中不同值得个数。有一个H*W的网格,高桥每次可以把一个棋子移到同一行的某一个位置,青木每次会把棋子移动到同一列的某一个位置,在移动2*N步后,会产生多少个不同的数字序列。高桥有N个朋友,刚开始x这个朋友这个人会知道这个秘密,然后每个人在第i个位置会告诉p[i]这个位置的人高桥的秘密,问最后高桥的朋友会有多少知道秘密。对于X这个位置,一直往p[i]这个位置跳即可。
2023-10-07 10:52:11
293
原创 AtCoder Beginner Contest 231(D-F,H)
把每一行当作一个节点,从S->i流M的流量,从i->P流m-1的流量,从p向每一列流n-1的流量,从列向t流n的流量,最后给点的边的[u,v]的价值w 相当于从u->(v + n)流1的流量费用为w,最后跑费用流即可。有一个长度为N的A数组,A[i]代表A对i这件物品的好感度,有一个长度为N的B数组,B[i]代表B对i这件物品的好感度,现在让你求有多少对[i,j]满足A[i] >= A[j]并且B[i] <= B[j]。这里,1=A1<。<AN成立,且Ai+1是每一个1≤i≤N−1的Ai的倍数。
2023-10-05 20:48:23
225
原创 AtCoder Beginner Contest 232(A-G)
给你一个长度为N的A序列和一个长度为N的B序列,你每次可以对A的一个元素进行加1或减1,这个操作一次花费X元,你也可以对A的一个元素i进行交换,交换A[i]和A[i + 1],这个操作花费Y元,问你使得A序列变成B序列的最小花费是多少?对于A序列我们把i向M - A[i]连一条权值为0的边,对于B序列我们把B[i]向i连一条权值为0的边,对于[0,M - 1]把0->1,1->2.....M - 2->M - 1连一条权值为1的边,这样图就变成了这样。为什么要向M-A[i]连边而不是向A[i]连边呢?
2023-10-05 20:13:33
203
原创 AtCoder Beginner Contest 233 (A-Ex)
很明显的一个思路是,这个可以分治进行dp,考虑dp[l1][r1][l2][r2]表示消除[l1-l2][r1-r2]这个矩形的最小花费,我们每一次可以枚举横着切下去还是竖着切下去就行,或者整个是正方形也可以直接清除,取个最小花费即可。源坐标系上(x,y)的曼哈顿距离等价于新坐标系上(x+y,x-y)的切比雪夫距离,(补充:源坐标系上(x,y)的切比雪夫距离等价于新坐标系上(有一个排列P,给出M组交换关系,第i组swap(Pai,Pbi),问是否有可能可以使P不降。C.直接用map 进行dp即可。
2023-10-04 10:05:47
1147
原创 Codeforces Round 665 (Div. 2) (A-F)
首先这颗线段树是一颗完美二叉树,包含的区间都是2^i次方,对于reverse操作来说,就是把第(k + 1)层线段树的节点的左右儿子交换,那么swap操作,其实也就是对于每一层线段树节点的左右儿子进行交换。给你棵N个节点的树,和一个总权值K,要你把K分配给这颗树的N-1条边,满足这些树边相乘等于K,并且分配的边权1的数量最少,问你任意两个点的所有边权和加起来最大为多少?a序列有x1个0,y1个1,z1个2,b序列有x2个0,y2个1,z2个2,给定你这个函数,问你在任意排序后可以获得的最大价值是多少。
2023-10-03 11:53:25
128
原创 CodeCraft-21 and Codeforces Round 711 (Div. 2)A-F
你有n个活动事件,m个位置,初始在0这个位置,每一次活动给出Ti,Xi,Yi表示这个活动的类型是Ti,每一次步长为Xi'(Xi = Xi'/100000),可以执行[0,Yi]次这个步长,若Ti为1或2,若Ti为1,则表示这一次会变成pos = (pos + Xi),若Ti为2,则表示这一次会变成pos = (pos * Xi), 问你最早到达[1,m]每一个位置是第几个活动事件。给你n个高为1,宽为w[i]的矩形,你有一个大矩型已经确定了宽为W,你需要确定最小的h满足能放入所有的高为1的矩形。
2023-10-02 15:37:51
127
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人