自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 GDKOI游记

day0又到了写游记的时候了~ 这次koi摆到了冬令营之前,还设置了一个讲课日,很悠闲啊。然而之前一个月都在做5h3题的模拟赛,可能会对4h4题不适应day1早上出门,感到凉凉。 集体迟到了15min…结果试机的时间也没有了。只得匆匆应战。看完所有题,第一题马上有了思路,但是发现自己写出来是两个log的。计算一下感觉有点虚。但是评测时开O2,我就大胆写了。 结果样例调了挺久,一对拍又是错。。很

2018-01-28 22:00:28 607

原创 [codeforces896E] Welcome home, Chtholly

题目大意给定一个n个数的序列。m次操作:1. 给区间[l,r]中所有大于x的数减x 2. 询问区间[l,r]中数值为x的数个数。n,m≤100000 1≤a[i],x≤100000分析这题?循环展开然后optimize一下就过了这是由乃题,我们应该考虑分块。值域范围比较小,我们可以直接记录cnt[i][j]表示块i中数值为j的数个数。 然后再用并查集把同一块中数值相同的元素缩在一起。 对于

2018-01-19 20:31:10 564

原创 [bzoj5011][Jx2017]颜色

题目大意给定n个数的序列,你需要选出一个数字集(可以为空集),使得原序列中所有未被选的数字恰好是一个非空的区间。n≤300000,1≤ai≤n分析题目等价于被选的数字恰好是一个非空的区间。 对于所有可行的极小区间,它们之间的关系只有两种:包含和没有交集。 那么可以考虑扫一遍这个序列,用单调栈按第一次出现时间维护当前未被扫完的数值。如果栈顶的数值被扫完了,那么一直退栈直到栈空或栈顶元素未被扫完。这

2018-01-19 10:43:27 405

原创 [Codeforces860E]Arkady and a Nobody-men

题目大意给定一个n个节点的有根树。设r(a,b)r(a,b),其中b是a的祖先,这表示b的后代中除a以外深度不大于a的节点个数。设z(a)=∑r(a,b)z(a)=\sum r(a,b)。求每个z(a)z(a)n≤500000分析答案等于:∑dep(b)≤dep(a)dep(lca(a,b))−dep(a)\sum_{dep(b)≤dep(a)}dep(lca(a,b))-dep(a) 这等价于z

2018-01-16 20:22:03 522

原创 [codeforces856C]Eleventh Birthday

题目大意给定n个正整数,你需要把它们按任意顺序拼接,得到一个大数。问有多少种方案使得最终得到11的倍数。如果两个数相同,它们交换位置也算不同方案。答案对998244353取模n≤2000 数字≤10910^9分析找突破口。 我们发现,一个数的奇数位每加1,对模11的余数的贡献是1,偶数为每加1,贡献是-1。 证明?10≡−1(mod11)10≡-1(mod 11) 我们跟着这个思路走下去。对

2018-01-12 22:22:26 725

原创 [codeforces 891E]Lust

题目大意给定大小为n的数组,还有一个变量res(初始为0)。进行k次操作,每次随机选择一个数ai,然后给res加上∏j≠iaj\prod_{j≠i}aj,然后ai-1 问最终res的期望值模1e9+71e9+7的值。n≤5000,0≤ai,k≤10910^9分析首先转化题意:每一次加的数可以看成操作前所有数的乘积减操作后所有数的乘积。那么只需求最终序列累乘的期望值,然后用初始的值减去它即可。 接

2018-01-11 17:41:14 735

原创 [codeforces 886F]Symmetric Projections

题目大意给定二维平面上n个点。问有多少条直线满足:所有点在它上面投影得到的点集是对称的。有无限条输出-1n≤2000分析首先:对称中心一定是原点集的重心在其上面的投影。 接下来:如果两个点关于重心对称,那么它们在任意直线上的投影点都关于重心在其上的投影点对称。可以将这对点删去。接下来枚举两个点,令它们对称,容易发现对应的直线是唯一的。 那么我们可以得到n2n^2条直线,一条直线出现过不小于n次才

2018-01-11 10:56:23 566

原创 [codeforces827F] Dirty Arkady's Kitchen

题目大意给定n个点m条无向边,边权为1.每条边还有一个出现时间区间。从1出发,每个时刻必须沿着一条边走到另一个点。问你最早什么时候到达n。无解输出-1 n,m≤500000分析我们不妨把每个点拆成两个点,表示时刻为奇数和偶数。 边也按照奇偶拆开,再拆成两条有向边。 然后用小根堆以加入时间为关键字维护每条边。设Late[u][p]表示当前奇偶性为p的点u,最晚可以逗留到什么时候。加入一条边时,如

2018-01-10 16:56:36 422

原创 [codeforces848D] Shake It!

题目大意给定n,m,最开始一个无向图中只有两个点s,t和连接它们的一条边。你需要进行n次操作,每次选择图中一条边(u,v),加入一个点i,并且添加两条边(u,i),(i,v)。 问最终有多少种不同构的图,满足其s-t最小割为m。模10^9+7输出n,m≤50分析设f[i][j]表示i次操作,s-t最小割为j的方案数。 接下来你需要枚举五个数a,b,c,d,x(其中四元组(a,b

2018-01-09 22:21:04 631

原创 [codeforces 718E]Matvey's Birthday

题目大意给定一个长度为n的字符串,字符集大小为8。两个点i,j之间有权值为1的边当且仅当满足以下条件之一 1. |i-j|=1 2. si=sj求图的直径和多少个有序点对之间的最短路长度等于直径2≤n≤100000分析好题 设dist(i,j)dist(i,j)表示点i到点j的最短距离,Dist(i,c)Dist(i,c)表示点i到字符c的最短距离。 易得dist(i,j)=min(|i−j

2018-01-03 17:29:08 561

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除