题解
cervoliu
这个作者很懒,什么都没留下…
展开
-
2018-2019 ACM-ICPC, China Multi-Provincial Collegiate Programming Contest 部分题解
B简单计算几何,求一下线段长再求一下夹角就做完了E大模拟,注意题目描述有一点小瑕疵u1s1这题提供的 2-3-4 tree 还是很精妙的老年码力苦手表示很淦H经典题,定义性价比=ATK/HP,按性价比从高到低打怪即可Kn=36,相当经典的数据范围,容易想到折半对于两个n=18的集合S,T分别预处理出其内部合法的染色方案,枚举S的状态,根据S与T之间的边确定T中染色最少的合法状态,我们只需要对T的合法状态预处理一个高位前缀和就可以快速计算答案了,复杂度O(2nn2)O(2^n n^2)O原创 2021-01-19 21:31:05 · 255 阅读 · 0 评论 -
2020-2021 Saint-Petersburg Open High School Programming Contest (SpbKOSHP 20) 部分题解
E先考虑每行个数相同的情形,只需 O(n)O(\sqrt n)O(n)扫一遍因子再考虑类似美国国旗的情形,也就是一行个数为xxx,一行为x+1x+1x+1,依次排下去对于这种情形,可以将每行的个数视作x+0.5x+0.5x+0.5,行数不变,那么最后与nnn误差不超过0.50.50.5所以我们分别对n∗10+5n*10+5n∗10+5,n∗10n*10n∗10,n∗10−5n*10-5n∗10−5质因数分解,并将其分拆成个位数为555的因子ppp与因子qqq的乘积,并用abs(p div原创 2021-01-15 11:48:00 · 606 阅读 · 0 评论 -
2020-2021 ACM-ICPC, Asia Seoul Regional Contest 部分题解
Preface感谢shadowice1984和__23333两位佬带我飞A听说是大模拟B签到题C答案即为虚树中的点数,边权没卵用E经过一些转化,题目变成:你有两个bool变量x和y,遇到1可以选择任意一个xor 1,遇到2需要保证x xor y = 1,末尾需要保证x = y = 0. 扫一遍用奇偶性判断即可.H问ai+ck=2bja_i+c_k=2b_jai+ck=2bj的三元组(i,j,k)(i,j,k)(i,j,k)的个数,ai,bi,cia_i,b_i,c_iai,bi原创 2021-01-13 18:36:23 · 2501 阅读 · 0 评论 -
【AGC 049C】Robots
对于B[i]>=A[i]的robot,称其为dangerous的若无dangerous的robot,则答案为0我们有两种方法消灭一个dangerous,一,把它变成safe,二,用另一个踩死它对于一个dangerous的robot,显然消灭该robot的代价最多为1(花费至多1的代价踩死他)找出safe能覆盖的极长的区间,在safe区间内的dangerous显然可以被消灭掉。…考虑只用第二种方法消灭dangerous,那么答案等于没有被safe区间覆盖到的dangerous个数考虑用第一原创 2020-11-22 07:52:03 · 254 阅读 · 0 评论 -
JZOJ 1769 Islands and Bridges
前言此题出现在2016.1.24日的比赛中。因为只有一个点,所以所有人都爆0。我也在这题磕了一个多小时。事实证明这种题目十分不人性,我的做法十分不明智,比赛选择打这种题一定要1000000000000%保证AC再开打。题目描述给定一些岛屿和一些连接岛屿的桥梁,大家都知道汉密尔顿路是访问每个岛屿一次的路线,在我们这个地图中,每个岛屿有个正整数的权值,表示这个岛屿的观赏价值。假设一共有N(N<=13)个原创 2016-01-24 21:53:37 · 594 阅读 · 0 评论 -
JZOJ 1768【NOI2001】炮兵阵地
前言此题出现在2016.1.24日的比赛中。当时最高分是HJY,拿了50分。而我在比赛中因为卡在其他题上所以只水了样例,竟然过了一个点。题目描述 司令部的将军们打算在N*M(N≤100;M≤10)的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用“H” 表示),也可能是平原(用“P”表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮原创 2016-01-24 21:22:51 · 633 阅读 · 0 评论 -
【USACO题库】3.4.1 Closed Fences闭合的栅栏
题意平面上有按逆时针顺序排好的N个点,给你这些点的坐标。 首先要判断这N个点按顺序连边构成的是否是一个合法的多边形。 一个合法的多边形定义为多边形的边与边互不相交。 然后再给一个点的坐标,求这个点能看到多边形上的哪些边。 如此图: (x,y)为观察者所在的点,能看到 (x1,y1)~(x6,y6),(x6,y6)~(x5,y5),(x4,y4)~(x3,y3)分析判断多边形合法其实就原创 2015-10-09 11:46:01 · 1087 阅读 · 0 评论 -
JZOJ 4218 【五校联考2day1】补给站
前言此题出现在2016.1.24日的比赛中。当时因为在恶搞第三题,此题又没有想到如何判重,于是此题打完暴力就搁置了。%%%CTY大神~~~题目描述DescriptionWYF为了保证他自己能够吃到足够多的牛排,来补充自己的脑力,所以他建了两个补给站,坐标分别为(ax,ay),(bx,by)。他有n个休息地点,第i个休息地点的坐标是(xi,yi)。每个补给站都有一个补给半径,当一个休息地点在以一个补给原创 2016-01-28 13:13:00 · 813 阅读 · 0 评论 -
JZOJ 4219 【五校联考2day1】池塘
前言此题出现在2016.1.26日的比赛中。这是比赛的压轴第三道题。我因为有一种“每次都对压轴题有想法”的特点,于是比赛中就恶搞了一个四维DP,代码极其恶心。最后时间不够,此题以WA 0收场。题目描述从前有两个青蛙王国,两个王国商业都非常繁荣。但是一块池塘阻碍了两国的商业往来。一次,两只青蛙在池塘的两岸,他们都希望到对岸去。我们可以将池塘看做一个n×m的矩形,在每个格子里,可能会有荷叶。青蛙必须踩在原创 2016-01-28 13:42:43 · 810 阅读 · 0 评论 -
JZOJ 3101【NOIP2012提高组】开车旅行
倍增算法 链表维护Analysis这题比赛时没时间想,直接听了正解。 易看出对于每个点,最近点和次近点要预处理出来。那么,预处理之后怎么办? 对于最暴力的做法,可以一步一步让A和B轮流跳,暴力判断。 等一下,“跳”好像让我们想到了某些东西。 好像可以用倍增,在这题是单点倍增。这里一个点有最近和次近,我们如果要跳,肯定不能分开处理。于是把A走一步之后B也走一完步算作一个轮回。那我们原创 2016-03-16 20:05:17 · 675 阅读 · 0 评论 -
JZOJ 4270 魔道研究
Description“我希望能使用更多的魔法。不对,是预定能使用啦。最终我要被大家称呼为大魔法使。为此我决定不惜一切努力。” ——《The Grimoire of Marisa》雾雨魔理沙 魔理沙一如既往地去帕秋莉的大图书馆去借魔导书(Grimoire) 来学习魔道。 最开始的时候,魔理沙只是一本一本地进行研究。然而在符卡战中,魔理沙还是战不过帕秋莉。 好在魔理沙对自己的借还和研究结果进行原创 2016-03-10 19:18:03 · 726 阅读 · 0 评论 -
五校联考4总结
五校联考4总结两天6道题,给虐到190分…… day1:比赛在晚上,精神状态不佳。看题时第一题大水 水题:【五校联考4day1】学习神技 题意为等比数列求和,逆元+快速幂轻松解决。然而计算模的时候漏打了一个mo,光荣30分。【五校联考4day2】神界古树 这种大水竟然没发现,真是/bi:/了。 题目所求即为树的重心。 sum[v]记录其节点最多的子树的节点数。每递归到一个点原创 2015-09-30 16:45:21 · 938 阅读 · 0 评论 -
JZOJ 4294【NOIP2015模拟11.2】复制&粘贴2
Description文本编辑器的一个最重要的机能就是复制&粘贴。JOI社现在正在开发一款能够非常高速地进行复制&粘贴的文本编辑器,作为JOI社一名优秀的程序猿,你担负起了复制&粘贴功能的测试这一核心工作。整个JOI社的命运都系在你的身上,因此你无论如何都想写出一个正确且高速的程序来完成这项工作。 具体的做法如下所示。文件的内容是一个字符串S,对其进行N次复制&粘贴的操作,第i次操作复制位置Ai和原创 2016-04-08 19:34:42 · 558 阅读 · 0 评论 -
JZOJ 4295【NOIP2015模拟11.2】愉快的logo设计
DescriptionK理事长正在思考日本信息学奥林匹克竞赛选手的应援道具的logo问题。某天,K理事长突发奇想,想要设计一个用’J’,’O’,’I’三种文字环形排列的logo,意为希望选手能从JOI中收获快乐的意思。 (注:“环形地”在日文中的表述为“円状に”,“円”读作“en”,再加上“JOI”三个字即为“enjoy”……) 如下所示,对于任意非负整数k,我们定义标号为k的JOI序列Sk为:原创 2016-04-08 19:40:20 · 489 阅读 · 0 评论 -
JZOJ 4296【NOIP2015模拟11.2】有趣的有趣的家庭菜园
Description职业经营家庭菜园的JOI君每年在自家的田地中种植一种叫做IOI草的植物。IOI草的种子在冬天被播下,春天会发芽并生长至一个固定的高度。到了秋天,一些IOI草会结出美丽的果实,并被收获,其他的IOI草则会在冬天枯萎。 JOI君的田地沿东西方向被划分为N个区域,从西侧开始的第i个区域中种植着IOI草i。在第i个区域种植的IOI草,在春天的时候高度会生长至Hi,此后便不再生长。如果原创 2016-04-08 20:02:32 · 663 阅读 · 0 评论 -
JZOJ 1598 文件修复
Description有一个文件被破坏了,可是值得庆幸的是,只是文件的顺序被打乱了。文件仅包含大小写的拉丁字母以及逗号,句号和叹号。为了尽快修复,请你找出有多少个至少出现两次的子串。 比如字符串abbabc,子串”a”,”b”,”ab”分别出现了2次,3次,2次。Analysis这题是很水的SA了。 首先构造出height,然后至少出现两次的子串怎么算呢? 如下,有3个串 ...原创 2016-04-15 19:07:00 · 1062 阅读 · 2 评论 -
JZOJ 4376【GDOI2016模拟3.9】染色配对
特殊图匹配Analysis由于题目的特性,我们把极大团看成点,把点看成边。 然后会形成多个连通块。 对于每个连通块,若其中有mm条边,则一定能匹配⌊m2⌋\lfloor\dfrac{m}{2}\rfloor次。因为一次匹配要两条边。 所以第一行直接算出每个连通块内的边数就好了。 关键是要找到一个可行的算法来达到最优匹配。 然后我们可以发现,目标等价于最大化入度为偶数的点原创 2016-04-15 19:28:29 · 560 阅读 · 0 评论 -
JZOJ 4466【GDOI2016模拟4.22】无界单词
Description你在坐飞机的时候总是喜欢随便写点文字以打发时间。 对于一个单词SS,如果存在一个长度LL,满足0<L<length(S)0<L<length(S),并且使得SS长度为LL的前缀与SS长度为LL的后缀相同,则称SS是有界的。比如“aabaaaabaa”和“abababababab”就都是有界的字符串。如果一个单词不存在这样的LL,则称之为无界单词。 现在考虑所有仅由字母aa和原创 2016-04-28 20:19:55 · 664 阅读 · 0 评论 -
JZOJ 4465【GDOI2016模拟4.22】飞机调度
Description作为一个旅行达人以及航空公司的金卡会员,你每一年的飞行里程可以绕赤道几周了。你发现,航空公司为了提高飞机的使用率,并不是简单的一条航线使用一架飞机来回飞,而是会让同一架飞机连续不停地飞不同的航线,甚至有的时候为了能够完成飞机的调度,航空公司还会增开一些临时航线——在飞机转场的同时顺路捎一些乘客。你研究了一下GDOI著名航空公司GD Airways的常规直飞航线,你想知道,在最佳原创 2016-04-28 20:31:30 · 561 阅读 · 0 评论 -
JZOJ 4467【GDOI2016模拟4.22】数字方阵
DescriptionAnica 做了一个很奇怪的梦:她梦见了一个无限大的平板,平板上填着无限行和无限列的整数。有趣的是,每个整数在那神奇的平板上只出现有限的次数。 机智的Anica很快便发现了这其中数字的规律,每一行第一列的数字表示当前的行号,其它非第一列的数字,为该位置左边一列的数字加上其数字的翻转数字之和。为了方便描述,我们定义A[i,j]表示平板上第i行第j列的数字: 1.原创 2016-04-28 21:07:12 · 663 阅读 · 0 评论 -
JZOJ 2256【ZJOI2008】树的统计
Description一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。 我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径上的节点的权值和 注意:从点u到点v的路径上的原创 2016-04-29 11:27:02 · 609 阅读 · 0 评论 -
【JZOJ 3401】Pty爬山
Description坐标系里有N个点,保证他们的x坐标递增,它们互相连接形成一些连续的线段。每个点会想自己的位置能看到的最高点(能看到指视线不被其它线段遮住)原创 2016-05-22 10:32:12 · 555 阅读 · 0 评论 -
[SDOI 2014] [JZOJ 3625] 旅行
Description一棵树,每个节点有权值和颜色。询问有一下几种:询问从u到v的路径上与u相同颜色的节点的权值和(保证u与v颜色相同)询问从u到v的路径上与u相同颜色的节点的权值的MAX(保证u与v颜色相同)修改节点v的权值修改节点v的颜色Analysis若不考虑颜色,那么这就是一个裸的链剖(链剖裸题)。在线做法由于还没有搞出来,留坑待填。离线大法首先,我们要高呼:离线大法好!离线大法好原创 2016-05-11 19:08:35 · 549 阅读 · 0 评论 -
JZOJ 3547【清华集训2014】mex
Description有一个长度为n的数组{a1,a2,…,an}。m次询问,每次询问一个区间内最小没有出现过的自然数。Analysis题目描述使人神清气爽。在线可以用可持久化权值线段树,第i棵树记录a[1~i]各个值出现的右端点。然后根据线段树的特性查找下去即可。离线将询问区间按右端点排序。然后直接上权值线段树,方法如上述在线做法。Code我打的是在线做法。 事实证明离线大法大好!离线大法大好!原创 2016-05-13 20:10:10 · 719 阅读 · 0 评论 -
JZOJ 4302【NOIP2015模拟11.3】IOIOI卡片占卜
DescriptionK理事长很喜欢占卜,经常用各种各样的方式进行占卜。今天,他准备使用正面写着”I”,反面写着”O”的卡片为今年IOI的日本代表队占卜最终的成绩。 占卜的方法如下所示: 首先,选择5个正整数A,B,C,D,E。 将A+B+C+D+E张IOI卡片排成一行,最左侧的A张卡片正面朝上,接下来B张反面朝上,接下来C张卡片正面朝上,接下来D张反面朝上,最后E张正面朝上。如此排列的话,从原创 2016-04-19 19:27:43 · 714 阅读 · 0 评论 -
[JZOJ 3422] 水叮当的舞步
Description水叮当得到了一块五颜六色的格子形地毯作为生日礼物,更加特别的是,地毯上格子的颜色还能随着踩踏而改变。 为了讨好她的偶像虹猫,水叮当决定在地毯上跳一支轻盈的舞来卖萌~~~ 地毯上的格子有N行N列,每个格子用一个0~5之间的数字代表它的颜色。 水叮当可以随意选择一个0~5之间的颜色,然后轻轻地跳动一步,地毯左上角的格子所在的联通块里的所有格子就会变成她选择的那种颜色。这里连通原创 2016-05-31 19:39:28 · 649 阅读 · 0 评论 -
【JZOJ 3424】 粉刷匠 /【JZOJ 4254】 集体照
Description有k种颜色的球,每种颜色有a[i]个,要把这些球排成一行,相邻的两个位置颜色不能相同,问可行排法。Analysis竟然是原题,比赛时我竟然没有想到,也没有看出来是原题( ⊙ o ⊙ ),做过的题又不会做了我真是。。。。 只能怪自己太弱! 其实比赛的时候知道是DP,一直在设状态乱搞。 题解的dp方法的思路非常值得学习。 设f[i][j]f[i][j]表示做了前i种颜色,产原创 2016-05-31 19:55:36 · 560 阅读 · 0 评论 -
[JZOJ 3427] 归途与征程
Description对于100%的测试点,1<=N<=100,1<=M<=100000。Analysis我们可以把A串视为一些串中间隔着一些星号。 显然,A串头尾都没有星号是有星号的特殊情况。因为无星号可以跳过头尾的串变成头尾都是星号。 下图,上者A,下者B。 我们可以对于A串中的小串与B串做一次KMP,搞一个bz[i][j]bz[i][j]表示第i个小串是否能与B的第j个位置往后相应长原创 2016-06-01 12:41:58 · 630 阅读 · 0 评论 -
[JZOJ junior 2042] SuperPow
题目描述众所周知,a^b表示a的b次幂。例如:2^3=2*2*2=8。 一天,某只肥皂很无聊,于是在纸上写了形如a^b的式子玩。FL见到了,过来一起玩。突然,FL脑洞一开:我给你普及一个符号“^^”,叫做超级幂。a^^b表示a^(a^(a^(a^a^(…)))),共b个a。例如2^^3=2^(2^2)=2^4=16。那么你知道a^^b的个位数是多少么? 肥皂表示一脸懵逼,于是一旁看热闹的YDL出原创 2016-06-04 16:34:37 · 629 阅读 · 0 评论 -
[BZOJ 3907] [JZOJ 3431] 网格
Description某城市的街道呈网格状,左下角坐标为A(0, 0),右上角坐标为B(n, m),其中n >= m。现在从A(0, 0)点出发,只能沿着街道向正右方或者正上方行走,且不能经过图示中直线左上方的点,即任何途径的点(x, y)都要满足x >= y,请问在这些前提下,到达B(n, m)有多少种走法。 100%的数据中,1 <= m <= n <= 5 000Analysis因为我是蒟蒻原创 2016-06-11 19:18:04 · 882 阅读 · 0 评论 -
JZOJ 4485【GDOI 2016 Day1】第一题 中学生数学题
Description给定商品成本 p0 和系数 k ,常数 n0 ,设价格为 p ,购买商品人数满足n1=⌊n0−k∗p⌋n1 =⌊ n0 -k*p⌋ 其中 p , k 为实数, n0 为整数。 题目分为两部分: 1)可以设置一个价格,求最大利润。 2)可以设置两个价格,p1,p2 p1 , p2 ,有 n1=⌊n0−k∗p1⌋n1 = ⌊n0-k*p1 ⌋ 的人按 p1 购买,n2=原创 2016-06-12 20:42:31 · 669 阅读 · 0 评论 -
【TJOI & HEOI 2016】【JZOJ 4604】【BZOJ 4551】 树
Description 100%1≤N,Q≤100000100\%1\leq N,Q\leq 100000Analysis一秒无脑链剖,能过。 离线,把操作反过来做是正解。Code#include<cstdio>#include<algorithm>#define fo(i,a,b) for(int i=a;i<=b;i++)#define efo(i,v) for(int i=last[原创 2016-07-11 16:54:46 · 438 阅读 · 0 评论 -
【TJOI & HEOI 2016】【JZOJ 4605】 【BZOJ 4552】排序
Description 序列长度为nn,排序次数为mm 100%1≤n,m≤100000100\%1\leq n,m\leq 100000 Time Limits:6000msTime\ Limits:6000msAnalysis此题做法极为机智。 二分出一个数。把>=这个数的数变为1,<这个数的数变为0 按顺序做一遍区间排序,排序直接用线段树区间修改。 升序就0在前1在后,反之则反。原创 2016-07-11 17:02:00 · 404 阅读 · 0 评论 -
【usaco 2013 open】【JZOJ 3234】 阴阳
usaco 2013 open yinyangDescription给出一棵树。树的边权为1或-1。现在要求有多少个点对(u,v)(u,v)满足,存在中间点k(k≠u,v)k(k≠u,v),dis[u,k]=0dis[u,k]=0 且 dis[k,v]=0dis[k,v]=0。dis[u,v]dis[u,v]表示从uu到vv的最短路径上的边权和。Analysis求树上点对数的题目一般都用点分治解决。原创 2016-05-06 17:50:42 · 1066 阅读 · 0 评论 -
【TJOI & HEOI 2016】【BZOJ 4554】【JZOJ 4612】 游戏
Description Analysis二分图匹配。 由于本人之前中了网络流的毒,此题便乱搞搞出来了。 首先,对于网络流的知识,可以参考专题“网络流与线性规划” 这题,就是最大点独立集。 但是不是裸的,因为有”#”影响一行情况。 所以,一行或一列中,被”#”隔开的部分视为不同的行或列。Code#include<cstdio>#include<algorithm>#define fo(原创 2016-07-12 14:05:56 · 586 阅读 · 0 评论 -
【JZOJ 4622】 亚瑟王之宫
Description 100%R,C≤20,N≤200100\%R,C\leq 20,N\leq 200 R,CR,C为棋盘大小,NN为骑士数。Analysis我还真是中了网络流的毒啊啊啊啊啊啊 限制条件做多了,中毒了 显然的思路是预处理所有点到棋盘上任意位置的最小移动次数。 然后呢?怎么办? 本蒟蒻乱搞,搞出了一个神奇的费用流,开心滴码,愉快滴调不出来。。。 没办法,正要放弃,发现原创 2016-07-13 16:28:16 · 486 阅读 · 0 评论 -
【JZOJ 4624】字符串匹配
Description 串长度小于10^5,1<=n<=10^12AnalysisKMP匹配。 要加上连接处的贡献 对于S串长于T串的情况要特殊处理,把T串长度弄成>=S串,再乱搞。 注意细节。Code#include<cstdio>#include<cstring>#include<algorithm>#define fo(i,a,b) for(int i=a;i<=b;i++)u原创 2016-07-13 16:32:07 · 553 阅读 · 0 评论 -
【TJOI & HEOI 2016】【BZOJ 4556】【JZOJ 4614】 游戏
Description Analysis题解法是离线的啊 可是此题可以在线做 先把SA弄出来。 然后对于每个询问,二分答案,转化为判定性问题。 然后,再二分出与suffix(c)的LCP>=mid的左右边界。 问题变成在左右边界中是否能找到[a,b-mid+1]开始的。 这个的话,主席树就好了嘛 O(mlog22n)O(mlog_2^2n)Code#include<cstdio>#原创 2016-07-13 16:40:54 · 474 阅读 · 0 评论 -
【JZOJ 4587】 Snow的追寻
Description Analysis此题本人跑得最快,rank1了233 求出树的欧拉序。顺便用序弄出rmq快速求lca。 我们知道,一个节点在序中表示的是一段区间。而题目询问的是一些树的直径。 我们可以用线段树维护区间表示的节点内的直径,可是怎么合并?直径性质 两棵树用一条边合并,新树直径两端一定是原本两棵树直径四个端点中的两个。具体证明可以看crazy的课件。 所以,按上述方原创 2016-07-14 09:05:18 · 725 阅读 · 0 评论 -
【JZOJ 4606】 序列
Description Analysis记mx[i]为i位置上变化的MAX,mn[i]同理。 DP方程显然: f[i]=Maxj<i,mx[j]<a[i],a[j]<mn[i]f[j]+1f[i]=Max_{j<i,mx[j]<a[i],a[j]<mn[i]}f[j]+1 把后两个约束化成二维平面上的,然后树状数组套线段树。 注意动态开节点。 时间O(nlog22n)O(nlog_2^2原创 2016-07-14 10:42:04 · 389 阅读 · 0 评论