补题
m0_37802215
这个作者很懒,什么都没留下…
展开
-
hdu 6333 Harvest of Apples(组合预处理+莫队)
要你求C(0,n)+…+C(m,n) 1e5组询问,n,m<=1e5 容易得到S(n,m)和S(n-1,m),S(n,m-1)之间关系,可以O(1)处理.使用莫队#include <algorithm>#include <cstdio>#include <cstring>#include <iostream>#include...原创 2018-08-02 00:10:32 · 151 阅读 · 0 评论 -
9.10沈阳站网赛补题
6198 number number number 太简单,裸的斐波那契快速幂/* xzppp */#include <iostream>#include <vector>#include <cstdio>#include <string.h>#include <algorithm>#include <queue>#include <map>#include <strin原创 2017-09-11 16:07:55 · 160 阅读 · 0 评论 -
Codeforces Round #431 (Div. 2) 848A From Y to Y(思维)
今早补题感觉思路不错,这题昨天连看都没看,真是菜到无法想象了. 一开始看到,有点懵逼,觉得很难,因为有一些,exactly,minimal,这样的词语,搞得好像这题状况很多一样. 但是仔细看会发现,每一种字符串的形式,他的”操作值”,是固定的,那么,这题就不那么难了. 又分析发现,假如是aaaa这种,他们要合在一起,操作值一定是1+2+3=6, aaaaa呢,一定是6+4 = 10,也就是一原创 2017-09-02 08:45:30 · 370 阅读 · 0 评论 -
Codeforces Round #431 (Div. 2) 849B Tell Your World(暴力+枚举)
这题一开始有点混乱,想着dfs什么的,有点傻. 枚举一号点的各种情况,假设他和之后的某一个点相连,得出该情况下第一条平行线能过几个点,然后根据平行,判断第一个没被第一条平行线过的点,如果这个时候,过的点总和是n,那么就可以了,复杂度是n^2. 最后加个特判,就是只有第一个点单一条线的情况. 我死在特判的if中,if(sg&&(!(((double)a[2]-a[1])==gd))) can =原创 2017-09-02 07:25:34 · 294 阅读 · 0 评论 -
Codeforces Round #431 (Div. 2) 849A Odds and Ends(思维)
首先考虑假如首尾出现偶数,那么一定不行,然后如果总长度是奇数,那么一定可以,最后,如果总长度是偶数,则一定不可以了. 为什么呢,因为偶数是不可能被分成奇数个奇数的./* xzppp */#include <iostream>#include <vector>#include <cstdio>#include <string.h>#include <algorithm>#includ原创 2017-09-02 07:18:29 · 162 阅读 · 0 评论 -
2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 Query on a string(字符串+树状数组)
啊啊啊,字符串几乎完全不懂啊. 迷迷糊糊的看了下kmp,感觉也和纯套模版没区别了.. 这题一看到就觉得是线段树什么的,但是并没有想到只是通过数据结构来方便求和(好菜啊好菜啊好菜啊). 幻想一些直接query,把字符串分开再组合就能得到答案的方法.. 用kmp先整体处理,在每一个小修改时,复杂度是很低的. 复杂度约等于nlogn/* xzppp */#include <iostream原创 2017-09-18 14:10:23 · 421 阅读 · 0 评论 -
Codeforces Round #433 (Div. 1) B Jury Meeting(思维)
感觉cf的题目很难分类,但是总能给个思维.. 这题卡了很久啊,一开始没看清题目,老觉得有很多很多城市,里面选出个别来参加会议,后来发现是所有城市都要来..T^T 扫一遍,然后更新一个数组,l[i],意为在i天及i天之前所有人都要抵达需要的最少钱,r[i]同理了. 然后枚举l~l+k就可以了 还是那句话,d题从题目信息,思路,代码难度,代码细节都完爆了c题 我好菜啊好菜啊T^T/* xzp原创 2017-09-09 20:51:32 · 195 阅读 · 0 评论 -
HDU 6069 Counting Divisors(枚举区间)(素数筛模版)
本题两个关键点 1.要得知一个数有多少因子,假设他可以被分解为素因数 n = p1^c1*p2^c2+p3^c3… 那么他的因子数为(c1+1)(c2+1)+…+(ck+1). 好像他们又说这是个小学生都知道的结论T^T 2.假如我想要知道[l,r]区间内所有的因子数,不能像单一的一样单个扫描2,3,5,7…而是要2,扫l~r所有2的倍数,3扫,5扫,这样就不会浪费时间在扫一些大素数上.原创 2017-09-14 20:46:38 · 264 阅读 · 0 评论 -
HDU 6092 Rikka with Subset(思维)
看了题解.. 感觉自己一天比一天菜啊..要菜破天际了.. 希望明天别太丢人. 就是一个递推.. 我就是没想到如何简单的刨除一个数字.. b[j] -= b[j-i]. 这样就刨除了../* xzppp */#include <iostream>#include <vector>#include <cstdio>#include <string.h>#include <alg原创 2017-09-22 20:31:37 · 189 阅读 · 0 评论 -
HDU 6201 transaction transaction transaction(dp)
这题是看题解的. 以后要多来看. 当时比赛很快过了四题,然后发现这题,两个人一直在想,四个小时wa了好几次,真的很废物了. 一方面这题似乎是有很多做法,但是那些spfa啊,网络流啊,我都完全不会,等下去学习一下好了,我觉得此题是一个很好的思维题. 我当时想到这个类似dp的做法,但是愚蠢的我忘记了他一棵树不一定等价于一条线.. 和以前的dfs不一样,以前的dfs是在进到最后一个点,或者走不下原创 2017-09-11 16:13:01 · 168 阅读 · 0 评论 -
Codeforces Round #434 (Div. 2) D Polycarp's phone book(字符串,字典树)
其实是个暴力题.. 枚举所有的九位子串,检查它是否会只在某个子串中出现. 具体实现方法是,把所有原串和他们的所有后缀存入字典树,进行一些标记,记录一个边被不同原串经历的次数. 然后就可以枚举遍历. D题还是不看题解做不出,看了题解也不能瞬间搞懂.. 代码强度也很高. 容易re,字典树放大一点. (不懂啊,为什么70还会RE啊??)/* xzppp */#include <iost原创 2017-09-20 16:48:33 · 138 阅读 · 0 评论 -
hdu 6321 Dynamic Graph Matching(dp)
给出一个图,询问加减边,问你在当时的1匹配,2匹配,3匹配的种类有多种 2匹配=>该图中,选出两条边,连着四个点,完全不重叠的,其余同理 dp[S],S中的所有点,和某些边,是一个count1(S)/2的匹配 dap = 1<< u|1<< v 加边的时候 dp[S] += dp[S^dap] S^dap没有u和v的连边,加入之,(一维数组包括原来的) 注意...原创 2018-07-31 00:41:05 · 162 阅读 · 0 评论 -
cf 500 思维
A Twisty Movement 给出一个1,2的串,给你翻转一个区间的机会,问你可以得到的最大不降子序列长度. 注意到这个题目的细节,n<2000,数值只有1和2,应该是dp,可以想到,这个题目的答案,应该是出现在某一个区间翻转之后,拿翻转区间的左边所有1,翻转区间右边所有2,以及翻转区间本身的最长不降子序列长度.#include <iostream>#incl...原创 2018-02-15 17:05:24 · 162 阅读 · 0 评论 -
矩阵快速幂
希望能够得出两个对应的一维矩阵./* Farewell. */#include <iostream>#include <vector>#include <cstdio>#include <string.h>#include <algorithm>#include <queue>#include <map>#include <string>#include <cmath>#incl原创 2017-11-02 15:34:11 · 128 阅读 · 0 评论 -
HDU 6181 Two Paths(dijk的深入)
这题真是弄的心态血炸.. 虽然勉强写出来,但是要多回顾 题意:求一条与最短路!!(不同)!!的尽可能短的路. 先理解一下dijk. 他是每次用一个可以确定最短路的点,更新其他点的最短路. 那么我们想一想次短路, 假如是到n的次短路,和n相连的点有abc.. 那么只可能是1到abc的最短路加abc到n的边,或者1到abc的最短路加他们的边.注意区分一下就好./* xzppp */#原创 2017-10-23 11:21:05 · 201 阅读 · 0 评论 -
HDU 6103 Kirinriki(思维尺取)
题意:在一个字符串中,选取两个长度相同且不重合的子串,计算dis值,定义为abcde efcgh 的a~h+b~g+c~c+d~f..即计算对应位置的差值和. 给定m,找到满足dis值小于等于m的最大子串对长度. 关键:枚举对称轴.进行尺取 复杂度 O(m^2).m<=5000 事实上,在见到小于等于m的时候,要想到尺取,对应位置差值和,应想到枚举对称轴.处理时注意可能对称到空处,*2后分奇原创 2017-10-04 20:11:09 · 225 阅读 · 0 评论 -
HDU 6180 Schedule(水题)
这题怎么怎么看怎么水啊?? 很明显的贪心思路,就是数据看上去有点大.. 没有比赛打的我,非常废物了./* xzppp */#include <iostream>#include <vector>#include <cstdio>#include <string.h>#include <algorithm>#include <queue>#include <map>#inclu原创 2017-10-19 15:36:53 · 300 阅读 · 0 评论 -
Codeforces Round #437 (Div. 2) B 865A Save the problem! (思维)
这题感觉很棒啊. 想了蛮久的. 事实上跟多重背包没什么关系,似乎只要1,2两个数,就可以构造出所有种类数量./* xzppp */#include <iostream>#include <vector>#include <cstdio>#include <string.h>#include <algorithm>#include <queue>#include <map>#i原创 2017-10-01 19:51:25 · 367 阅读 · 0 评论 -
Codeforces Round #439 (Div. 2) C 869C The Intriguing Obsession(思维+简单组合)
题意. 三组岛屿,要求在岛屿间建桥,每一个桥距离为1.但是每一种建法,必须满足两个同组的岛屿要不就不可达,要不最短距离至少为3. 思路. 考虑到不可出现同组岛屿间有任何桥,所以仅考虑不同组岛屿的情况. 又不能出现两个同组间距离为2的情况,也就是,不可有任意两同组岛屿连在同一岛上.那么,考虑a,b两组岛屿,要使他们之间满足要求,(假设a < b),只需计算A(b,i)*C(a,i)(i=0,1原创 2017-10-07 15:20:09 · 183 阅读 · 0 评论 -
Codeforces Round #432 (Div. 2) D 850B Arpa and a list of numbers(gcd 枚举)
一看到感觉是dp,但是dp也太难了呀,然后就滚了. gcd的问题很多时候都是枚举,因为gcd其实是很难递推的一个东西,所以观察一下ai的范围,大概也能猜到. 那么我们枚举每一个gcd,当然,是素数啦,然后发现每一个gcd我们数列的值可以O(n)算出来,可是素数有很多,这样不够,那么我们怎么样更快呢,就是可以利用一个区间的思想,假设x/y=delta,也就是说,假设p是gcd的一个倍数,那么在p-原创 2017-09-06 07:24:04 · 207 阅读 · 0 评论 -
eoj 3328 时空交织的代价(树状数组)
感觉这题也很容易啊,因为我对树状数组很不熟悉,然后还是老问题,没有逆向思考,如果从小往大扫,就不用考虑去掉的问题了. 还有个事情,这题会出现负数,但这个负数,不是溢出导致的负数,是”正确”的负数,他们只是在mod中,出现的而已,所以我们最后要%,+mod再mod./* xzppp */#include <iostream>#include <vector>#include <cstdio原创 2017-08-23 19:13:39 · 337 阅读 · 0 评论 -
Codeforces Round #432 (Div. 2) C 850A Five Dimensional Points(思维)
我要承认这题我真的一点思路都没有. 想着怎么样能弄一个n^2logn的算法出来,还傻乎乎算了好久角啊边啊什么的,好菜好蠢啊.可能自从高中毕业之后就很久没接触几何了,有点懵逼. 这题的核心在于,假设二维平面上,一个点要和其余的点都构不成锐角(以该店为顶点),那么我们可以想象到,其余的点最多有四个,想一想,对吧?也就是一个十字架的情况.那么我们推广一下,三维中,最多的其余点只有6个,对吧?那么我们就原创 2017-09-05 12:54:31 · 235 阅读 · 0 评论 -
CodeForces - 551B ZgukistringZ(暴力)
真的很弱智,我tmT了一年,找不出问题在哪里,才发现我每个字符串的for循环都是到strlen(),唉,用cin>>string,习惯了,string真的好蠢./* xzppp */#include <iostream>#include <vector>#include <set>#include <queue>#include <map>#include <algorithm>#原创 2017-08-11 14:21:06 · 316 阅读 · 0 评论 -
CodeForces - 798D Mike and distribution
本题在比赛的时候也是想不出啊,随便贪了一下果然没用,然后也没有尝试了. 是一个很妙的贪心啊,这题是d也不是没有理由. 大概办法就是对a的序号排序(根据对应元素大小),然后分奇偶讨论,主体就是每组两个来考虑,选b中大的那个,然后处理下头就行了/* xzppp */#include <iostream>#include <vector>#include <set>#include <qu原创 2017-08-04 14:50:22 · 230 阅读 · 0 评论 -
CodeForces - 835C Star sky(预处理加二维处理)
补题第一发.. 这题第一眼见到完全不会做啊,然后就算在比赛中百度了看到说是dp,然而也完全没有思路,就没有尝试了. 是一个所谓的预处理吧,因为星星的亮度是周期性变化的,所有只要处理最多1~10的情况就好了. 还有,这根本跟dp没关系啊,不就一个简单容斥嘛.(画个图就很好理解了,注意方框的边缘的处理,要减一)/* xzppp */#include <iostream>#include <原创 2017-08-04 13:26:32 · 345 阅读 · 0 评论 -
HDU - 5265 pog loves szh II (二分或者贪心)
这题有两种做法,一种是二分,我很快就想到了(nlogn的复杂度,10^6的n). 第二种就是贪心了,我觉得这个不那么容易想到,好像速度要快一些. 首先,我们找答案的两个数x,y,有两种,一种是x+y>p,一种是x+y< p ,(读入时把每一个都mod p) 那么第一种如果存在,那么最大值一定是数组最大值加次大值的mod.第二种的最大值,就是我们要关心的事情了. 第一种我们直接使用二分,每一个a原创 2017-08-10 18:36:24 · 356 阅读 · 0 评论 -
UESTC - 1357 柱爷与最大区间和(简单dp)
大概是本周最开心的一次A题了哈哈. 这题一见到我就有点烦,因为这题我以前见过,看了很久题解,然后勉强A(抄)了,这次一看到发现还不会,而且已经没有任何印象了,就很难过,但是今天下午头很痛,没想到想了一会就想出来了哈哈. 首先可以用基本的方法,dp[i]来表示以a[i]来(结尾!!)的最大子序列和,但这题由于要分两段,所以我们也来个dpx[i],就是反向的dp. 然后就是第二个处理,把dp[i]原创 2017-08-09 18:19:26 · 291 阅读 · 0 评论 -
CodeForces - 158E Phone Talks(dp)
可能以后补题会少一点了. 这题虽然知道是dp,但是还是想不出好的dp状态,看了题解后发现,我以前想dp,总是想着答案直接就在dp数组里面,这样有时就很难处理,这题就是这样,处理出dp之后,还要根据每一组的时间开始来剪去,计算最长时间间隔. 这题我也不是很懂,但是感觉是一个很好的题目,写个博客记一下把./* xzppp */#include <bits/stdc++.h>using nam原创 2017-08-16 19:21:23 · 198 阅读 · 0 评论 -
CSU - 1597 薛XX后代的IQ
我尊敬这题,也鄙视我自己. 这题一开始看到没有思路,因为我每次看到这种大计算,只知道快速幂,当然几乎每次都没用. 然后发现这题x,y,p都是300以内的,也就是说,在10^18次方内,x,y最多也只有90000种组合,这是很少的,所以我们可以直接全部算出来,显然会在某一个地方陷入循环,那么然后就算再多的后代,也可以取模取掉. 这思路是很简单的,但我犯了两个致命失误,这题wa了很久. 1.认为原创 2017-08-09 14:09:21 · 164 阅读 · 0 评论 -
HihoCoder - 1478 水陆距离(很骚的bfs)
我的搜索真的很垃圾 我嘴上会说很讨厌这种傻逼求职刷题网站,因为他们的题目都是暴力,单纯恶心的写代码,但是其实我心里明白只是因为我自己菜而已. hihocoder的题目的题解,都给人一种不专业的感觉,我想不是我的幻觉,这个bfs的题目,我写搜索是真的不会,这篇还是详细一点吧 这题最骚的地方就是他从所有水域开始同时搜,这一点是我以前没有想过的,因为这样就像是病毒扩散,距离永远是最低,如果从每一个陆原创 2017-08-09 09:42:14 · 350 阅读 · 0 评论 -
Codeforces 839C Journey(dfs+概率)
很简单啦,注意到他只有n-1条边,那他一定是一棵树,没有环的. 所以只需要计算到达每个尽头的距离*每一次选路线时的概率就好了./* xzppp */#include <iostream>#include <vector>#include <set>#include <queue>#include <map>#include <algorithm>#include <stdio.h原创 2017-08-13 00:41:43 · 636 阅读 · 0 评论 -
Codeforces Round #428 (Div. 2) 839B. Game of the Rows(思维+贪心)
写于newbee被李逵三比零之后. 关了直播,改了一个地方,就a了,可能我不要想太多无关的东西把. 这题讲实话我觉得挺难做的,如果不是在cf上可以看到数据,可能还要很久我才能a. 我的思路是把每一个军团的人,都分成三种,4个人一组,两个人一组,一个人一组,这样的话呢,两个人和一个人的组,每个军团最多一个.(关键) 然后就是贪心的策略,飞机中间的座位,一定要给四人连坐,因为这样不会浪费位置.然原创 2017-08-13 09:30:57 · 281 阅读 · 0 评论 -
eoj 3329 奇异收缩的剪影(异或性质的运用,简单dp)(存疑)
我发现做了这几个题目,都没有什么思维量,也不是说他们简单,只是一个没接触过类似体型的人,想要想到解法是很困难的. 这题是dp,起初看到dp我没有想法,为什么呢,因为xor这个运算,我没有概念,所以也就很难想怎么样是状态,什么样转移. 我在网上看到 a^b^b = a 也就是说,异或是可以抵消的,放到这里来说,假如我想知道x^a = b中的x,那么我只需要把b再^一下a就行了,这就是转移的关键.原创 2017-08-23 14:18:12 · 249 阅读 · 0 评论 -
hdu 5976 Detachment(乘法逆元)(附测试用例)
总结来说,一个数取过模之后,他只能用逆元,不能再向以前一样. 这题的做法本身很简单,分解成2~k,就是最大. 主要就是记录下乘法逆元这个事情. 假如(a/b)%m = c 那么如果a或b是很大的,那么他们不能被直接计算出,所以要取余,那么,对a和b取余之后,(a%mb)/b就不等于c了,因为a和b都取过余了. 那么要对a,b取余时怎么办呢,就用这个叫乘法逆元的东西,(a*k)%m = c,原创 2017-08-26 17:50:24 · 305 阅读 · 0 评论 -
eoj 3330 沉陷过往的幻灭
我真是日了这题了,明明很简单,但是毛子却能把他搞得很复杂很恶心. 统计每一个数字会经历的1或0的数量,乘上他的2^i,即可/* xzppp */#include <iostream>#include <vector>#include <cstdio>#include <string.h>#include <algorithm>#include <queue>using names原创 2017-08-23 10:18:44 · 214 阅读 · 0 评论 -
hdu 5695 扫雷(思维)(遇事不决就枚举)
就很烦啊,感觉这两天应该是可以休息一下,但是水平太差了,然后整个人都一个很混沌的状态,要开学了,心很乱. 这题一开始不会啊,想了很久递推,但感觉很难实现,百度了一下,发现可以枚举前两行,但是要注意了,并不是这样就万事大吉,可能在过程中,会出现非法状况,所以要去掉. 题目可能会直接给出非法状况,(1的时候?),wa了好多次/* xzppp */#include <iostream>#inc原创 2017-08-26 10:52:30 · 315 阅读 · 0 评论 -
hdu 5573 Binary Tree(传说中的构造)
这题第一眼见到,觉得是个dfs,但是呢,不知道怎么,看着简单但也没去写,(好在没去写),然后下来后,自己傻乎乎的去写dfs,然后果然炸了,毕竟我的裸dfs,复杂度又4^60….(不对,每一个要乘以个2^(i-1)).. 然后就不知所措,上网搜了一下,发现是构造,但是呢,现在虽然我好像懂了,但肯定过几天我又不懂了,所以也不多说. 核心就是,他们说的只要使用前k-1层和最后一层搞一搞,就能搞出[0,原创 2017-08-25 16:32:09 · 209 阅读 · 0 评论 -
CodeForces 789C Functions again(奇偶分类与递推)
这题感觉不太好描述,因为推理过程挺长的,不过我做出来的核心步骤就是一个y要找到前面的x段来剪去,有两种可能,奇数最小,偶数最大./* xzppp */#include <iostream>#include <vector>#include <set>#include <queue>#include <map>#include <algorithm>#include <stdio.h原创 2017-08-07 15:27:40 · 298 阅读 · 0 评论 -
CodeForces Round 428 div2 839D Winter is here(数学)(详解)
唉,要是哪天我能不看题解就做出D题来就好了. 感觉自己数学底子好差啊,我怎么都想不出来的问题,他们一句就带过了,应该是很显然的吧. 这题一开始我想到枚举gcd,但是我发现会有重复的情况,然后我就不知道怎么处理了. 这题我觉得最关键的就是这里了,假如很多数,他们都是2的倍数,但是显然,他们中的一些数的gcd不会还是2,但是(!!!!!!)他们的gcd,也仍然是2的倍数.如果你读到这里毫无感觉,那原创 2017-08-14 16:34:56 · 246 阅读 · 0 评论 -
HDU 6047 Maximum Sequence
贪心的思路是很好找到的,本题命门不在桶排序,其实直接sort也可以,而在如何得到区间最大值上. 我看到网上有人用线段树维护最大值,但这样其实慢了. 此处应该是用单调队列,所谓单调队列,网上一篇博客写的很好,就像是 “移窗子”,很好的维护这种情况的最值. 具体看代码/* xzppp */#include <iostream>#include <vector>#include <set原创 2017-07-28 11:25:04 · 180 阅读 · 0 评论