![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
题解
文章平均质量分 83
canxuezhinuanyang
这个作者很懒,什么都没留下…
展开
-
A - Appearance Analysis Gym - 101173A
https://vj.e949.cn/ac69a6cced5131fcb0617bc659755d0e?v=1540621216 题目大意就是问以# 分割的窗户有多少种,一个窗户以旋转90度的整数倍后能够完全的与另一个窗户重合则这两种窗户是同一种 分析,实际上我们只要把每个窗户的所有旋转状态求出来 然后用map记录最后求出总数除以每个窗户的状态数就是结果, 关键在于怎么存储每种状态 刚...原创 2018-11-01 17:34:06 · 155 阅读 · 0 评论 -
2019南京网络赛A 题解
首先O(1)算出 m个点的对应的beauty值,然后就变成了一个二维数点问题,在一个n*n的矩阵上,有m个点,q个询问 每次询问一个矩阵内的值之和。由于n的范围为1e6,二维树状数组加离散化或者二维前缀和加离散化开不下,如果用map存pair 会多加一个log 复杂度为n(logn)(logn) 会T,这里要用到二维偏序预处理加一维树状数组。 在y轴上建立树状数组,对每个点的x轴和y轴进行排...原创 2019-09-06 22:49:07 · 164 阅读 · 0 评论 -
2019牛客第十场题解(C/F)
C 题意:第i天在原来字符串的基础上在字符串的前面或者后面添加一个字符。问添加完字符后有多少种不同长度的循环节。 定义循环节为能把原字符串分割成长度为k的一个或多个部分。并且后面可以有或者没有循环节的开头部分。 也就是说 s[1]~s[n-x] == s[x+1]~ s[n] 则说明循环节为x 。 做法一 hash+二分: 1.明显,对于长度为len的字符串,最少有一个长度为len的循环...原创 2019-08-19 21:22:14 · 161 阅读 · 0 评论 -
2019杭电多校第六场(C/E)
C:求出本质不同的回文串中能构成一个串为另一个串的子串所有字符串对的pair数 做法: 考虑每个点和他的fail点的贡献 , 在偶回文树和奇回文树上分别dfs, 求出该点和他的子节点的size, 然后该点的贡献就等于该点和他的fail点的未标记数,因为某个点和他的fail 点一定是该点的子节点的子串,那为什么不在fail链上继续往前找,因为根据回文树的性质,在一个节点fail链上往前找最后一定会...原创 2019-08-07 22:20:29 · 167 阅读 · 0 评论 -
2019牛客第三场(D/F)
D.Big Integer 题意: 当1<=p,n,m<=1e9时 求有多少对满足 做法: 考虑 则 则 Case1(p不为2,5,3) 然后由欧拉定理当p和10的时候有 则我们知道在i为0和p-1时 所以在0~p-1中间有没有可能有一个i=d 满足这个式子 ...原创 2019-07-26 12:24:58 · 160 阅读 · 0 评论 -
2019牛客第二场补题(F/H)
F. 把2*n个人分成 两个人数相等的队伍,每两个人之间都有一个竞争值,当分成两个队伍后,两个队伍之间的竞争值之和最大为多少 做法: 对每个人进行搜索将它放在a或b队里,每放一个人就计算一下当前的竞争值,这样往后搜索的时候就可以利用一下前面的竞争值,避免重复计算,(还有一个小优化,可以把第一个人固定放在第一个队伍里,可以减少一半的状态空间) #include<bits/stdc++....原创 2019-07-22 00:07:28 · 170 阅读 · 0 评论 -
2019牛客多校第四场A/K
A.给你一张n个点n-1条边的图,和k个关键点。求一个点到所有关键点距离最大值的最小为多少。 乍一看像是对答案二分,但是考虑两个相距最远的关键点,假设他们的距离为d,那么答案肯定为(d+1)/2 如果有一点到中心点的距离超过了(d+1)/2 ,那么这个点会成为最远关键点对中的一个。矛盾。 所以题目就变成了如何求最远的两个关键点的距离。 考虑如何求树的直径,首先取一个根节点通过bfs找到离他...原创 2019-07-29 20:01:11 · 231 阅读 · 0 评论 -
2019杭电多校第一场题解
1004 题意: 给你n+1辆车的车头距离终点的位置和车身长度, 以及每辆车的初始速度, 车子不会加速,当遇到前面一辆车的时候车子会瞬间减速并且和前面一辆速度相等,并且通过了终点线的车辆并不会停下来会继续行驶,问第0辆车的车头到达终点线所需要的总时间。 理解:当第0辆车经过终点线的时候无疑只有两种状态,1.以原来的速度行驶,2.与前面一辆车靠在一起并且以前面一辆车的速度行驶 做法1: 注意...原创 2019-07-23 23:33:16 · 272 阅读 · 0 评论 -
max answer 和 牛客多校第四场C
max answer 题意:给出一组数,求一个区间(l,r)中所有数之和与这个区间的最小数之积最大 做法:对于每个数a[i], 我们可以求出满足a[i]是最小数的 合法区间左边界l[i] 和 右边界r[i]; 然后对于每个a[i]接下来我们只要求 包含a[i]在内的在范围l[i]到r[i]内 最大子序列和为多少. 对于l[i]和r[i]我们可以通过单调栈求出, 每次加入一个元素的时候如果...原创 2019-07-28 23:40:30 · 158 阅读 · 0 评论 -
Educational Codeforces Round 69 D
题意: 求 做法: 可以发现 在m,m*2,m*3 长度的区间内的K是 相等的分别为k ,k*2,k*3 所以我们可以在余数为0~m-1 的位置枚举起点, 然后以每个点作为终点求出cost 然后每到达一个可能为新的起点 维护最小前缀和,将该点作为新的起点或者还是继续作为终点 每次计算得到的cost-维护的最小前缀和便可以得到以i, i+m, i+m*2... 为起点的最大的连续...原创 2019-07-23 22:09:12 · 116 阅读 · 0 评论 -
codeforces Round#563 D
http://codeforces.com/contest/1174/problem/D 任意的两子段异或和 的 异或 等价于任意两个 前缀异或和 si 和 sj , si≠sj 并且 si^sj≠x 也等价于si只能出现一次 si^x 也只能出现一次,所以只要从1到2的n次方 进行枚举前缀异或和 然后 用 s[i+1] ^s[i] 求出 a[i+1] 就是结果 代码: #incl...原创 2019-06-04 16:51:26 · 121 阅读 · 0 评论 -
ACM ICPC 2008–2009, Northeastern European Regional Contest St Petersburg –Problem J(补题)
题意就是给你很多个字符串, 让你找到一种大写字母的替换方式,使替换后的每个字符串的字母为元音字母和辅音 字母交替出现。求出替换后的字符串。 比赛的时候没有明确的想法 以为必须要O(n)的算法(果然该暴力还是要暴力) 赛后看题解, 枚举每个字母当做元音然后 直接判断是否满足条件,满足就输出,终止循环, 否则就继续 循环结束 就输出 impossible ; 似乎还可以用二分图染色(看不懂代码...原创 2019-04-06 22:34:46 · 250 阅读 · 0 评论 -
Contest Hunter 4301 Can you answer on these queries III (单点修改+查询区间最大子段和)
根据lyd 的模板,我们只需要在每次更新信息的时候 同时维护 t[p].sum=t[p*2].sum+t[p*2+1].sum; t[p].lx=max(t[p*2].lx, t[p*2].sum+t[p*2+1].lx); t[p].rx=max(t[p*2+1].rx, t[p*2].rx+t[p*2+1].sum); t[p].dat=Max(t[p*2].dat, t[p*2+1].d...原创 2019-03-18 15:25:00 · 148 阅读 · 0 评论 -
Buy Tickets POJ - 2828 (树状数组+二分)
大意:让你给你n个点的值和他们的插入位置问你在依次插入完后输出最后的序列 似乎用链表可以实现(但是我太菜了并不会链表只能用高贵的树状数组了~~~~(>_<)~~~~ ) 首先对于这种后面的点对前面的点可能有影响的题最后一个点一定不会被影响,所以我们从后往前考虑 如果最后一个点的pos[i]<前一个点的pos[j]那么前一个点的最后位置就会被后移一位 ,否则无...原创 2019-03-16 23:11:28 · 131 阅读 · 0 评论 -
A Simple Problem with Integers POJ - 3468 (树状数组实现区间修改+区间查询)
题意: 给长度为N 的数列A, 输入Q行操作指令, C l r d 表示 把数列中第l~r 个数都加d Q l r 表示询问数列中第l~r 个数的和。 这明显是线段树的操作。。但是咸鱼的我 想用树状数组 (吃饱了没事干) 首先对于区间修改,通常想法 我们可以 用一个树状数组b1来维护 ,C l r d 就相当于在 节点l 加d , 在节点 r+1 处 减d 树状数组b1 的的前...原创 2019-03-16 22:48:35 · 148 阅读 · 0 评论 -
2018 青岛复现赛J - Books ZOJ - 4067
https://cn.vjudge.net/problem/ZOJ-4067 题目大意一共n本书,要从前往后取m本,如果当前手中的钱比第i本书大,就一定要买下来,然后减去这本书的钱继续从前往后买。 求出初始最大可能的钱的数量,如果是无限的输出 Richman 如果不可能买m本则输出 Impossible 明显,m==n时 钱是无限的 书的价格中0的数量大于m时输出Impossible ...原创 2018-12-06 23:40:09 · 152 阅读 · 0 评论 -
2019徐州icpc网络赛补题
G :给你一个字符串求所有的回文子串中不同种类字母的数量(每个回文子串单独计算) 做法首先建立回文树,并求出与每个节点i回文串出现的次数,然后分别在偶节点0和奇节点0跑dfs, dfs的点来自next树,边表示字符串c,节点表示回文子串,则每次dfs到一个节点,答案更新为该点的回文串出现次数*已有的字符数种类数。字符种类数用一个26大小的vis数组存每次找到下一个点则vis[边]++, 回溯则...原创 2019-09-07 20:50:27 · 250 阅读 · 0 评论