gym
文章平均质量分 63
issue是fw
19 years old, struggling in life, chasing daydreams.
展开
-
G. Gnoll Hypothesis(简单概率)
LINK题意有 n 只怪物,每只怪物的生成概率为 pi 。只有 k 只怪物会生成(任意 k只),不生成的怪物原本的生成概率将会向后转移给下一只会可能生成的怪物,如果是第n个那么就转移给第一个,问最终每个怪物生成的概率是多少考虑计算虫子iii的生成概率当j<ij<ij<i时,只有[j,i−1][j,i-1][j,i−1]的怪物都没有生成且iii被生成时,jjj的初始生成概率才会转移给iii当j>ij>ij>i时,只有[j,n][j,n][j,n]和[1,i−1]原创 2021-11-02 10:43:22 · 412 阅读 · 3 评论 -
GYM 102501 K. Birdwatching(bfs,思维)
Link考虑先把所有边反向,问题转化为从kkk出发,在不经过k−>vk->vk−>v路径的条件下无法到达点vvv的合法vvv个数一个点vvv和kkk有边时,由于是反向图我们从kkk走到vvv再走到uuu,此时在原图中就存在u−>v−>ku->v->ku−>v−>k这条路径那么点uuu显然不是一个合法点就这样我们不断枚举和kkk相邻的点vvv,然后钦定v−>kv->kv−>k是原图路径的最后一步于是我们在反向图上bfsbfsb原创 2021-11-01 19:24:52 · 312 阅读 · 0 评论 -
Codeforces Round #469 (Div. 1 A-E)
A - ZebrasLINK考虑一个子序列必定是以000开头,后面跟着若干个101010然后考虑当前ai=1a_i=1ai=1,暂时存下来,等下一个遇到的000去匹配若ai=0a_i=0ai=0,如果之前有111未被匹配,就匹配上去,然后接在刚好能接的某个子序列的后面如果之前的111都被匹配了,只能以这个000开头新加一个子序列#include <bits/stdc++.h>using namespace std;const int maxn = 3e5+10;char a原创 2021-10-30 12:11:41 · 273 阅读 · 2 评论 -
A - Flying Squirrel(特殊的DAG,思维)
Link先考虑[1,n][1,n][1,n]区间中最大的那些数字mxmxmx,这些数字把[1,n][1,n][1,n]分成若干个小区间考虑ap1=ap2=ap3=mx&&p1<p2<p3a_{p_1}=a_{p_2}=a_{p_3}=mx\&\&p_1<p_2<p_3ap1=ap2=ap3=mx&&p1<p2<p3设[p1+1,p2−1][p_1+1,p_2-1][p1+1,p2−1]最大数下标为原创 2021-10-29 14:34:57 · 332 阅读 · 0 评论 -
F.Lucky Pascal Triangl(lucas+数位dp)
Link在杨辉三角的前nnn行中,有多少个数字是777的倍数?求∑i=1n∑j=1i[(ij)%7==0]\sum\limits_{i=1}^n \sum\limits_{j=1}^i[\binom{i}{j}\%7==0]i=1∑nj=1∑i[(ji)%7==0]考虑卢卡斯定理,Lucas(i,j,p)=(i%pj%p)∗Lucas(i/p,j/p,p)%pLucas(i,j,p)=\binom{i\%p}{j\%p}*Lucas(i/p,j/p,p)\%pLucas(i,j,p)=(j%p原创 2021-10-28 16:01:00 · 217 阅读 · 0 评论 -
2019-2020 ACM-ICPC Pacific Northwest Regional Contest (Div. 1)
D - Dividing By Two给定数A,BA,BA,B,每次可以把AAA加111,或者把A/2A/2A/2(要求AAA为偶数)问最少多少次可以把AAA变成BBB考虑把BBB变成AAA,相当于每次只能乘以222或让自己减111设共执行k1k_1k1次乘222操作,k2k_2k2次减111操作A=B∗2k1−∑i=1k22ziA=B*2^{k_1}-\sum\limits_{i=1}^{k_2} 2^{z_i}A=B∗2k1−i=1∑k22zi其中zi∈[0,k1]z_i\in原创 2021-10-21 15:32:24 · 267 阅读 · 0 评论 -
2018ICPC 焦作 B - Ultraman vs. Aodzilla and Bodzilla(贪心,思维)
LINK找到最小的nnn满足∑i=1ni>=hpa+hpb\sum\limits_{i=1}^ni>=hp_a+hp_bi=1∑ni>=hpa+hpb可以证明,在nnn轮对决中打死两个怪物一定是最优的(因为可以选择先打死AAA或先打死BBB)定义prei=∑j=1ijpre_i=\sum\limits_{j=1}^i jprei=j=1∑ij考虑如果先打死AAA找到最小的p1p_1p1满足prep1>=hpapre_{p_1}>=hp_aprep1&g原创 2021-10-09 18:26:13 · 257 阅读 · 0 评论 -
2018 Chinese Multi-University Training, Nanjing U Contest(多校第八场)
E - Magic Square没什么好说的,模拟转转转就好了,自认为我写的还是比较简便的.#include <bits/stdc++.h>using namespace std;const int maxn = 3e5+10;int t,n;char a[101][101];void rotate(int x,int y,int num){ for(int i=1;i<=num;i++) { char q = a[x][y], w = a[x][y+1], e =原创 2021-10-09 10:35:14 · 332 阅读 · 1 评论 -
Codeforces Round #511 (Div. 2) E. Region Separation(思维,性质,dp)
LINK题意每一轮可以砍掉若干条边,满足每个连通块权值相等,求砍树方案数.两种方案不同,当且仅当至少存在一轮,剩余的连通块不完全相同.考虑如果把树分成kkk份,那么每个连通块的权值为Sk\frac{S}{k}kS我们dfsdfsdfs这棵树,若存在一颗子树的权值等于Sk\frac{S}{k}kS,显然需要砍掉这个儿子和父亲的边这样重复做下去,发现需要砍掉所有满足Sk∣su\frac{S}{k}|s_ukS∣su的uuu与父亲的边我们定义f[k]f[k]f[k]表示f[k]=∑i=1原创 2021-09-18 10:50:56 · 237 阅读 · 0 评论 -
2020-2021 ICPC Southeastern European B. Reverse Game(思维,博弈)
LINK由于终止状态一定是0000000…1111111然后观察操作110,110,1010110,110,1010110,110,1010都相当于把111往右移动了两个格子,而101010只是把111往右移动了一个格子在未到达终止状态之前,一定可以执行操作101010,也就是使逆序对减少111,这个很好理解而且在逆序对大于等于222时,一定可以执行110,100,1010110,100,1010110,100,1010之一证明如下如果原串中只有一个111不在后缀位置,那么这个111后面一定有原创 2021-09-17 16:32:08 · 388 阅读 · 0 评论 -
2020-2021 ICPC Southeastern European M. Mistake(模拟,拓扑排序)
LINK直接硬着模拟就好了,因为k∗n<=500000k*n<=500000k∗n<=500000,所以可以把这kkk张图目前的拓扑度存下来每次遇到一个节点xxx,我们知道在哪些图中这个节点的入读为000,就输出那张图的编号即可选哪个图都无所谓#include <bits/stdc++.h>using namespace std;const int maxn = 5e5+10;int n,k,m,id[maxn];vector<int>vec[max原创 2021-09-17 14:57:10 · 397 阅读 · 0 评论 -
2020-2021 ICPC Southeastern European Regional E. Divisible by 3(前缀和,优化暴力)
LINK区间[l,r][l,r][l,r]的权值计算方式是(sum=∑i=lraisum=\sum\limits_{i=l}^r a_isum=i=l∑rai)weight[l,r]=∑i=lrai∗(sum−ai)=sum∗∑i=lrai−∑i=1rai2weight[l,r]=\sum\limits_{i=l}^r a_i*(sum-a_i)=sum*\sum\limits_{i=l}^r a_i-\sum\limits_{i=1}^r a_i^2weight[l,r]=i=l∑rai∗(s原创 2021-09-17 14:19:32 · 488 阅读 · 0 评论 -
A. chino with string(ac自动机+floyd矩阵快速幂)
LINK有mmm个字符串,每个字符串有一定的分值(可能为负数)求出一个长nnn的字符串sss使得它的价值最大,你只需要输出这个最大的价值.价值定义为∑i=1mcii∗pointi\sum\limits_{i=1}^m ci_i*point_ii=1∑mcii∗pointi其中ciici_icii表示给定的第iii个字符串在sss中的出现次数,pointipoint_ipointi表示第iii个字符串的分值对mmm个字符串建acacac自动机,每个节点预处理一个mximx_imxi表示原创 2021-07-15 23:15:19 · 510 阅读 · 0 评论 -
The 15th Chinese Northeast Collegiate H - Loneliness(思维,构造)
LINK注意左上角是(1,1)(1,1)(1,1),右下角是(n,n)(n,n)(n,n)如果无脑走下去,会乘上一个2n−12^{n-1}2n−1,早就爆了,所以需要构造000考虑DRULDRULDRUL绕一圈可以让数字减111,RDLURDLURDLU绕一圈可以让数字加111当原数字为偶数时,LURDLURDLURD可以加222,而ULDRULDRULDR可以减222k<=198k<=198k<=198这样的话,当kkk比较小的时候,可以先一直在原点为000往下走到(n,1原创 2021-07-12 10:38:33 · 480 阅读 · 6 评论 -
The 15th Chinese Northeast Collegiate C. Vertex Deletion(树形dp)
LINK对于节点uuu来说(分别对应状态0,1,20,1,20,1,2)定义f[i][0/1/2]f[i][0/1/2]f[i][0/1/2]表示当iii分别满足以下三个条件时,子树内节点全部符合要求时的答案Ⅰ.如果删去这个节点,那么uuu一定满足条件Ⅱ.如果不删去uuu,且所有儿子被删掉.那么此时uuu还没满足条件,需要父亲也不被删去Ⅲ.如果不删去uuu,且所有儿子中至少有一个没删掉.那么uuu满足条件,父亲怎样无所谓可以发现这个设计非常合理,比如f[u][0]=∏v∈sonuf[v][0]原创 2021-07-11 10:15:26 · 831 阅读 · 0 评论 -
Codeforces Round #725 (Div. 3) E. Funny Substrings(字符串小模拟)
LINK一个略微麻烦的小模拟对于每个变量,存一下他本身有多少个hahahahahaha串考虑两个串拼接,多产生的hahahahahaha串只可能在中间的拼接部分,所以额外存一下前333个字母和后333个字母即可使用mapmapmap存每个变量的信息#include <bits/stdc++.h>using namespace std;#define int long longint t,n;//开头字母是//最后一个字母是struct p{ string l,r; i原创 2021-06-11 17:55:51 · 265 阅读 · 0 评论 -
The 2021 Sichuan Provincial 四川省赛 J - Ants(模拟+技巧)
LINK设棍子总长度为LLL两只蚂蚁相遇,看作他们彼此穿过不改变方向(结果而已,等同于都改变方向)那么每只蚂蚁不断向左撞击,然后向右撞击…所以时间2L2L2L是一个循环,经过2L2L2L后所有蚂蚁撞左右分别一次且回到原位所以前面的min(a/n,b/n)\min(a/n,b/n)min(a/n,b/n)个循环都是空循环,每次都是一样的(因为装不烂)接下来一次,障碍物就可能被某只蚂蚁率先撞破了可能是左可能是右,讨论起来非常麻烦,所以直接模拟把蚂蚁分成向左的一类,向右的一类直接考虑是向左的先原创 2021-06-10 21:33:01 · 815 阅读 · 0 评论 -
The 2021 Sichuan Provincial 四川省赛 E.Don‘t Really Like How The Story Ends(贪心dfs)
LINK考虑从节点111出发,下一个遍历节点一定是222,如果不存在(1,2)(1,2)(1,2)也要补上Ⅰ.那么到了节点222,如果存在(2,3)(2,3)(2,3)就去遍历节点333Ⅱ.如果不存在(2,3)(2,3)(2,3),而222也不和任何比333大的节点相连,那么这个节点就没必要遍历了因为就算添加一条(2,3)(2,3)(2,3),也就是让我们到达节点333而已然而我们完全可以选择不添加(2,3)(2,3)(2,3)而是回溯到节点111如果存在(1,3)(1,3)(1,3)就剩下了一原创 2021-06-09 21:56:20 · 753 阅读 · 0 评论 -
The 2021 Sichuan Provincial 四川省赛M.True Story(模拟)
LINK题意现在是时刻000,航班在p0p_0p0时刻起飞有nnn个人,第iii个人速度为si/hs_i/hsi/h,每个人距离机场距离xxx显然有kkk次公告,第iii次表示在时刻tit_iti开始时,告诉所有人航班延迟到pip_ipi起飞同时设一个人在时刻fff,此时航班在PPP时刻起飞,距离机场XXX米只有当(P−f+1)∗si>=X(P-f+1)*s_i>=X(P−f+1)∗si>=X时,这个人才会向机场出发,否则不动.问有几个人能到机场显然如果在ppp原创 2021-06-09 19:35:39 · 569 阅读 · 0 评论 -
The 2021 Sichuan Provincial 四川省赛 F.Direction Setting(最小费用流)
LINK给定mmm条边,每个点有点权为aia_iai要求你为每条边定向,最小化D=∑i=1nmax(0,di−ai)D=\sum\limits_{i=1}^nmax(0,d_i-a_i)D=i=1∑nmax(0,di−ai)对于一条边(l,r)(l,r)(l,r)要么指向lll要么指向rrr对于点lll来说,前aia_iai条指向自己的边对DDD没有任何贡献从第ai+1a_i+1ai+1条边开始,每多一条边,权值增加111那么其实跑一个最小费用流就好了因为对于每个点肯定是先走免原创 2021-06-09 18:24:56 · 534 阅读 · 0 评论 -
The 2021 Sichuan Provincial 四川省赛 L. Spicy Restaurant(多源bfs)
LINK由于wi<=100w_i<=100wi<=100所以直接枚举一个权值kkk,把所有wi=kw_i=kwi=k的点作为源点做一次多源bfsbfsbfs那么可以预处理dis[i][j]dis[i][j]dis[i][j]表示jjj点距离最近的辣味iii多远然后顺着更新一遍dis[i][j]=max(dis[i−1][j],dis[i][j])\rm dis[i][j]=max(dis[i-1][j],dis[i][j])dis[i][j]=max(dis[i−1][j],d原创 2021-06-09 17:38:47 · 1226 阅读 · 2 评论 -
1523 E - Crypto Lights(期望+组合数学思维)
LINK题意nnn盏熄灭的灯,每次操作在熄灭的灯随机选择一盏灯打开当任意连续kkk个灯至少有222盏灯被打开游戏结束求游戏结束的期望操作次数。对于一个打开www盏灯结束游戏的方案,考虑分别计算它的www次贡献分别是第1,2,...w1,2,...w1,2,...w次打开灯的贡献基于这样的思想,我们考虑枚举一个ppp表示当前点亮了ppp盏灯考虑计算此时游戏没有终止的方案数记作fff那么对期望的贡献即为f∗p!n∗(n−1)...∗(n−p+1)f*\frac{p!}{n*(n-1)...原创 2021-06-03 20:10:42 · 405 阅读 · 0 评论 -
2020ICPC 昆明热身赛 C.Statues(小思维)
LINK因为雕像一定是重量从小到大放过来的所以只要直到之前放了几个雕像,就直到现在要放什么雕像定义f[i][j]f[i][j]f[i][j]表示前iii个位置放了jjj个雕像的最小代价一个简简单单的O(n2)O(n^2)O(n2)的dpdpdp就搞定了#include <bits/stdc++.h>using namespace std;#define int long longint n,k,f[5009][5009];typedef pair<int,int>原创 2021-06-01 22:08:42 · 294 阅读 · 0 评论 -
2020CCPC 长春 L. Coordinate Paper(思维,构造)
LINK构造数组满足Ⅰ.ai>0Ⅰ.a_i>0Ⅰ.ai>0Ⅱ.∑i=1nai=sⅡ.\sum\limits_{i=1}^na_i=sⅡ.i=1∑nai=sⅢ.i∈[1,n−1],ai−ai+1=kⅢ.i\in[1,n-1],a_i-a_{i+1}=kⅢ.i∈[1,n−1],ai−ai+1=k或ai+1−ai=1a_{i+1}-a_i=1ai+1−ai=1至少有一个满足先考虑构造一个最小和的解,形如0 1 2 … k 0 1 2 … k 0 1 …可以算得这个答原创 2021-06-01 21:05:45 · 344 阅读 · 0 评论 -
2020ICPC昆明 J.Parallel Sort(思维,规律)
题意#include <bits/stdc++.h>using namespace std;const int maxn = 1e6+10;int n,p[maxn],pos[maxn],vis[maxn],a[maxn];typedef pair<int,int>w;vector<w>vec1,vec2;void zero(){ int flag = 1; for(int i=1;i<=n;i++) if( i!=p[i] ) flag原创 2021-06-01 15:55:55 · 468 阅读 · 0 评论 -
2020ICPC 昆明 M.Stone Games(思维+可持久化线段树)
LINK题意给出长度为nnn的数组aaa和qqq次询问,每次给出区间[l,r][l,r][l,r]你可以用区间[l,r][l,r][l,r]的任意子集来凑数,问最小的不能凑到的数是多少其实有点像010101背包问题,但显然不符合时间复杂度考虑区间[l,r][l,r][l,r]内没有数字111,那么答案就是111否则设我们拥有xxx个数字111,毫无疑问可以凑出[1,x][1,x][1,x]设kkk是继数字111后最小的数字,若存在k>x+1k>x+1k>x+1显然x+1x原创 2021-06-01 15:39:09 · 369 阅读 · 0 评论 -
2020ICPC昆明 L.Simone and graph coloring(思维+nlog(n)的最长下降子序列)
LINK给定长度nnn的数组aaa若i<j&&ai>aji<j\&\&a_i>a_ji<j&&ai>aj,那么i,ji,ji,j之间有一条无向边使用最少的颜色给这个图染色,使得每条边连接的两个顶点颜色都是不同的这种形如逆序对的连边方式,最后的图应该是一个DAGDAGDAGiii会和j∈[1,i−1]&&aj>aij\in[1,i-1]\&\&a_j>a_ij∈[1,原创 2021-05-31 21:42:41 · 369 阅读 · 0 评论 -
牛客多校六Palindrome Mouse(PAM上DAG)
LINK题意给定字符串sss,将sss的所有回文子串放进集合www中从www选出串aaa和串bbb(满足a!=ba!=ba!=b且aaa是bbb的子串)问方案数考虑建立回文树,除了根节点每个节点都代表一个本质不同的回文串设sss为节点uuu表示的回文串sss包含回文树的哪些回文子串呢??我们来分析一下①.若回文子串不以s1s_1s1开头,那么由于回文,也不会以sns_nsn结尾此时删掉两头的字母也没有影响,也就是可以转移到父节点②.若回文子串以s1s_1s1开头,相当于以sns_原创 2021-05-28 21:32:25 · 220 阅读 · 0 评论 -
Northern D. Down We Dig(压缩状态)
LINK容易想到暴力的O(n2)O(n^2)O(n2)算法,每次对[1,i][1,i][1,i]的子游戏展开记忆化搜索定义f[i]f[i]f[i]表示当前在iii位置操作的人是否能取得胜利于是每次去dfsdfsdfs后继即可,但是显然无法通过每次相当于在有向无环图上多加了一个点和一些边,这几乎会影响之前大部分点的胜负情况但是注意到pospospos位置出发的胜负情况之和[pos+1,pos+8][pos+1,pos+8][pos+1,pos+8]的胜负情况相关若[pos+1,pos+8][po原创 2021-05-27 14:24:39 · 313 阅读 · 0 评论 -
L. Lookup Performance(二分+主席树)
LINK给定一颗二叉搜索树qqq次询问给定区间[l,r][l,r][l,r],问从根节点执行lookup(1,l,r)lookup(1,l,r)lookup(1,l,r)函数共执行多少次设节点xxx中权值最小权值为mixmi_xmix,最大的为mxxmx_xmxx如果能访问到节点xxx,说明xxx的父节点rrr一定①.不满足L<=mir&&mxr<=RL<=mi_r\&\&mx_r<=RL<=mir&&mxr&原创 2021-05-27 12:20:14 · 271 阅读 · 0 评论 -
C - Color the Tree(递归构造)
LINK考虑只有一条链的情况,显然操作方案唯一,一路按下来即可如果有两条链,设链一的状态为s1,s2...sns_1,s_2...s_ns1,s2...sn,链二的状态为t1,t2....tmt_1,t_2....t_mt1,t2....tm所有状态都可以达到,形如(s1,t1)−(s2,t1)...(sn,t1)(s_1,t_1)-(s_2,t_1)...(s_n,t_1)(s1,t1)−(s2,t1)...(sn,t1)(sn,t2)−(sn−1,t2)...(s1,t原创 2021-05-26 21:30:46 · 484 阅读 · 0 评论 -
A. Almost Balanced Tree(构造)
LINK也可以这样,根据A+BA+BA+B节点数计算出前kkk层节点是满的那么若B<2k−1B<2^k-1B<2k−1,根据二进制的性质,可以从中抽取若干层都放222节点那么剩下的都是111节点,就随便构造了若B>=2k−1B>=2^k-1B>=2k−1,贪心的想,让前kkk层全部放222节点然后把剩余的A,BA,BA,B节点从根节点递归下去,每次都二分到了第k+1k+1k+1层就可以开始构造了(当然还是有小概率凑不成,再dfsdfsdfs验证一遍即可)#原创 2021-05-26 20:31:01 · 342 阅读 · 0 评论 -
E. Easy Measurements(解不定方程)
LINK由题意得(ab+cd)∗d=b(\frac{a}{b}+\frac{c}{d})*d=b(ba+dc)∗d=b化简一下得到a=b2−bcda=\frac{b^2-bc}{d}a=db2−bc已知b,db,db,d,所以只需要求存在多少个ccc使得b2−bcb^2-bcb2−bc是ddd的倍数即可b2−bcb^2-bcb2−bc可以取(0,b2)(0,b^2)(0,b2)中所有是bbb倍数的数,而且这个数必须是ddd的倍数那么答案是b2−1lcm(b,d)\frac{b^2-1}{l原创 2021-05-26 15:58:35 · 256 阅读 · 0 评论 -
2020 CCPC 长春 J. Abstract Painting(状压dp)
LINK顺序考虑区间上的每个点作为圆的右端点,定义f[i]f[i]f[i]表示[0,i][0,i][0,i]的方案数考虑iii点之前有一个直径为[x−r,x+r][x-r,x+r][x−r,x+r]的圆(x+r<ix+r<ix+r<i)当以iii为右端点放直径为[l,i][l,i][l,i]的圆时, 显然lll不能是[x−r+1,x+r−1][x-r+1,x+r-1][x−r+1,x+r−1]中的任意一点只要满足这个条件,交点数一定小于等于111然后注意到半径不超过555,所以以原创 2021-05-25 16:26:29 · 447 阅读 · 0 评论 -
Codeforces Round #722 (Div. 2) D. Kavi on Pairing Duty(证明和公式图解)
LINK为了方便,定义(x,y)(x,y)(x,y)表示xxx点和yyy点配对已知第111个点和第x+1x+1x+1个点配对,第222个点和第yyy个点配对考虑y<x+1y<x+1y<x+1时这是不可能的,设和x+2x+2x+2这个点配对的点为zzz(zzz可能在左边也可能在右边)显然(x+2,z)(x+2,z)(x+2,z)形成的弧线既不被(1,x+1)(1,x+1)(1,x+1)包含,也不被(2,y)(2,y)(2,y)包含那么就必须满足abs(x+2−y)=y−2&a原创 2021-05-25 11:54:13 · 963 阅读 · 5 评论 -
2020 CCPC 长春 K. Ragdoll(预处理+启发式合并)
LINK考虑x⊕y=gcd(x,y)x\oplus y=gcd(x,y)x⊕y=gcd(x,y)的情况应该是非常少的不妨设x>yx>yx>y由于x⊕y>=x−y>=gcd(x,y)x\oplus y>=x-y>=gcd(x,y)x⊕y>=x−y>=gcd(x,y)显然等号应该同时取到,得到x⊕y=x−y=gcd(x,y)x\oplus y=x-y=gcd(x,y)x⊕y=x−y=gcd(x,y)枚举约数kkk作为gcd(x,y)gcd(x,y)原创 2021-05-25 00:06:56 · 439 阅读 · 2 评论 -
2020 ccpc长春 D. Meaningless Sequence(按位启发式合并)
LINK刚好在gymgymgym碰到就顺手写了话说打长春的时候是被队友秒掉的emm自己写的时候还是有点细节的…注意虽然这是一颗有根树,但边并不是完全由父亲指向儿子的!!!需要建双向边,我被这个卡疯了…∑i=1n∑j=i+1n[ai⊕aj=alcai,j]∗(i⊕j)\sum\limits_{i=1}^n\sum\limits_{j=i+1}^n[a_i\oplus a_j=a_{lca_{i,j}}]*(i\oplus j)i=1∑nj=i+1∑n[ai⊕aj=alcai,j]∗(原创 2021-05-24 21:28:49 · 309 阅读 · 0 评论 -
2019 China Collegiate Programming Contest Final (CCPC-Final 2019) L. Lottery(二进制)
LINK考虑现在有xix_ixi个2ai2^{a_i}2ai因为xi<=109x_i<=10^9xi<=109,所以即使把这部分全选上最多也就影响到第ai+30a_i+30ai+30位二进制至于第ai+31a_i+31ai+31往后的二进制怎么选,已经和前面完全没有关系,可以用乘法原理计数设我们已经知道第[l,r][l,r][l,r]位二进制是连续的,也就是第lll位二进制最多可以影响到第rrr位这段有多少方案呢??累加sum=∑bi∈[l,r]2bi−l∗xisum原创 2021-05-22 20:26:38 · 479 阅读 · 0 评论 -
2019 (CCPC-Final 2019) K. Russian Dolls on the Christmas(dsu one tree)
LINK子树内的问题,每次把子树内的点扔进数组里暴力维护保留重儿子启发式合并即可#include <bits/stdc++.h>using namespace std;const int maxn = 2e6+10; int t,n;struct edge{ int to,nxt;}d[maxn]; int heaed[maxn],cnt=1;vector<int>vec[maxn];int dfn[maxn],low[maxn],ID[maxn],id;in原创 2021-05-22 12:13:28 · 245 阅读 · 0 评论 -
2020 China Collegiate Programming Contest - Mianyang Site J. Joy of Handcraft(线段树模板)
LINK其实暴力一下就好了如果tit_iti相同,显然只需要最大的那个xix_ixi即可那么对于每个tit_iti,我们暴力去修改每一段值,区间修改使用线段树即可最坏情况下,n=105,m=105n=10^5,m=10^5n=105,m=105且所有tit_iti互不相同,那么有m2+m4+m6...\frac{m}{2}+\frac{m}{4}+\frac{m}{6}...2m+4m+6m...个区间根据调和级数的性质,区间个数一定小于mlog(m)mlog(m)mlog(m)原创 2021-05-22 11:02:08 · 227 阅读 · 0 评论