- 博客(31)
- 收藏
- 关注
转载 周记2
开学了。。最近感觉自己有些膨胀了,即使并没有膨胀的资本,但心里涌现出了一种冲向顶峰的冲动了呢。这或许是个好事。最近机房也有经常去,也深入思考写了一些题目,虽然也欠下了许多作业。感觉自己对于oi越来越热爱了呢,即使到现在仍然是垫底水平,不懂的东西还有那么多,但确实想静下心来好好努力了。不想再被一些无关的事情所干扰,至于文化课牵绊着,只能更加努力来兼顾了。总有一天,我...
2019-03-02 08:29:00
127
转载 矩阵乘法
51nod1113 矩阵快速幂模版题 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 #include <queue> 6 #include <cmath&g...
2019-01-27 09:31:00
169
转载 周记1
也不知道自己为啥要开始写这个东西,总之最近一段时间都过得很恍惚吧,或许说过去的一年都很恍惚间就这么浑浑噩噩过去了。noip炸了之后一开始挺不甘的,但这种心情也似乎渐渐被时间所冲淡了。。noip和期中考连续发烧两次也搞得心情很不好。。。期中考爆炸后连机房都很少去了,每天在文化课与作业中挣扎,感觉做了许多但并不感觉充实..至于noip,没什么好说的,就是实力太菜罢了,没有努力...
2018-12-08 22:21:00
150
转载 Nowcoder 牛可乐发红包脱单OI赛$
好不容易打一场比赛写完2题信心满满能过结果快读写错炸成0分。。心态崩了。。A给一个序列长度n,求把最少数变成1使得任意长度大于等于k的子串gcd=1;傻逼题。。答案是n/k 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #incl...
2018-11-02 14:18:00
58
转载 Luogu 1194买礼物
题意:买n个东西,这些东西有个原价m,若买东西i,则东西j降到a[i][j]元,求买n个东西最少的钱.做法:若买i后买j的价钱a[i][j]比m小,那么连一条无向边,跑一波最小生成树.看剩下还有几个点没连进去的就直接按原价买.. 1 #include <iostream> 2 #include <cstdio> 3 #include &...
2018-10-17 21:34:00
129
转载 BZOJ 4992: [Usaco2017 Feb]Why Did the Cow Cross the Road
题意很简单,不说了。这题思路其实挺简单,把每个格编号为i,3*i走到3*j+1,3*i+1走到3*j+2,以此类推,注意一下边权是多少就好了.然而一开始用分层图的普遍套路i+j*n*n编号调了好久发现不同层编号有冲突,mdzz.... 1 #include <iostream> 2 #include <cstdio> 3 #inc...
2018-09-01 16:21:00
118
转载 BZOJ 2662&&2763
双倍经验2333....了解到这是典型的分层图最短路,k次免费机会就有k层图,层与层之间边权是0,然后其他边照样建,跑最短路就行了.2662边权减半同理呀。。。 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <...
2018-09-01 16:17:00
60
转载 BZOJ 1954: Pku3764 The xor-longest Path(01trie)
求树上最长异或路径.根据异或的性质,我们知道a^a=0,那么a^b^b^c=a^c;所以我们随便找个点做根,然后dfs出每个点到根的异或路径长num[i],对于任意两点有两种情况,当根是他们的LCA时,那么两点异或路径和就直接是num[i]^num[j],不是LCA时,由于两条路径都包含了LCA到根的路径,两次异或抵消掉了,所以证得任意两点异或路径和为num[i]^num[j];...
2018-08-30 23:08:00
77
转载 BZOJ 4260: Codechef REBXOR(01trie+思维)
求两个不相交区间异或和的和最大.设l[i]是1~i一段区间的最大异或和,r[i]是i~n一段区间的最大异或和,题意就是求max(l[i]+r[i+1]);那么只要求l,r数组。设num数组是个前缀异或和,根据异或的性质,我们要求i~j的异或和就是num[i]^num[j],所以对于l数组,我们要求出max(num[i]^num[j]),r数组用后缀异或和同理.l[i]=m...
2018-08-30 22:51:00
82
转载 BZOJ 2084: [Poi2010]Antisymmetry(Hash+二分)
求一个01序列的子串取反并反转后与原串相同的个数.很显而易见的是,反转的话只要子串对应的i和n-i+1位相反即可,这个看一下样例能很快看出来.所以我们正着求一遍hash,反着取反然后求hash.枚举中间点,二分一下这个子串长度的一半,check的话就是判断前一半子串的正hash值与后一半子串取反后的反hash值是否相等.答案怎么统计呢,显然,如果一个子串满足条件,那么去掉...
2018-08-30 22:22:00
98
转载 BZOJ 2795: [Poi2012]A Horrible Poem (Hash+思维)
给定字符串,求给定l,r区间的最短循环节长度.显然区间长度循环节长度是区间长度m的因数,但是这样直接写个q根号m的暴力就肯定T掉啦。想了挺久发现了一个喵喵的做法,不难发现,每个区间的某个字母必须在一个循环节里都出现,若这个字母出现k次,那么循环节的个数必须是k的因数,那么循环节个数就在这个区间gcd(k)范围内.我们可以先预处理出前缀和数组保存每个区间每个字母出现次数,预处理...
2018-08-30 22:17:00
221
转载 Loj一本通刷题记录
夏令营回来后就不知道怎么回事,状态一直不好==为了让自己不要太颓废,开个坑在noip前把一本通的好题都刷一遍。如果想要noip拿省一的话,就要开始好好努力了。加油!为了节省时间,一些比较简单的东西就不再赘述了。第一部分 基础算法第 1 章 贪心算法#10000 「一本通 1.1 例 1」活动安排按右端点排序。 1 #include <i...
2018-08-14 21:06:00
203
转载 洛谷 P1462 通往奥格瑞玛的道路(二分答案+最短路)
题目大意:n个点,m条边,开始血量为b,从1出发,要走到n,每条边有个扣血量,每个点有个价值,求在血量不为负走到第n个点时,走过的路径点权最大值最小.最大值最小,很容易想到二分答案,由于血量是边权,我们可以跑最短路来保证他能走到终点,我们二分最大点权,在跑最短路时如果跑到比当前二分到的最大点权还大的点,那么这个点是不合法的不能更新,跑完判断血量的大小.要注意的是点权是无序的,我们...
2018-08-05 16:41:00
185
转载 模拟赛#4
A.HDU 1171把和拆一半作容量然后跑背包。 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <cmath> 5 #include <cstring> 6 #include <qu...
2018-08-05 07:53:00
107
转载 模拟赛#3
A.HDU 1045Fire Net有墙情况的8皇后问题。。 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <cmath> 5 #include <cstring> 6 #inclu...
2018-08-03 16:03:00
78
转载 模拟赛#2
这场只肝出1题...A.HDU 1231最大连续子序列签到题。。B.HDU 1176免费馅饼比赛事没看这题全跑去干C了。。f[i][j]表示第i个时刻第j个位置的最大数量,倒着枚举时间,考虑上一个时刻i+1相邻位置跑到j,需要注意的是可以原地不动.f[i][j]=max(max(f[i+1][j-1],f[i+1][j+1]),f[i+1][j]) 1 #...
2018-08-03 15:57:00
106
转载 模拟赛#1
虽然AK了但是手速不够快而且罚时爆炸QAQ....A.Prime Ring Problem找素数环,经典深搜问题,要注意找完排列再判断素数为超时,正确的做法是边搜边判断,注意输出格式== 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 ...
2018-08-01 20:37:00
105
转载 Codeforces 水题糊做#1
感觉自己对于CF的Div2CD难度的题做的还不够好,所以开个坑练习一下吧.6/201.Codeforces 1006D. Two Strings Swaps根据题意规则大力分类讨论。 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm>...
2018-07-27 14:10:00
187
转载 Codeforces Round #499 (Div. 2)
又困又累总之状态不是很好。。就拿个小号随便打打了。。。A.n个小写字母选k个, 若选了一个字符c,那么它前面的字母和与它相邻的右边的第一个字母不能选,求最小价值.排序后xjb贪一贪...智障错误wa+1.。。 1 #include <iostream> 2 #include <cstdio> 3 #include <algorit...
2018-07-27 11:40:00
68
转载 AtCoder Beginner Contest 103 D(贪心)
AtCoder Beginner Contest 103 D题目大意:n个点,除第n个点外第i与第i+1个点有一条边,给定m个a[i],b[i],求最少去掉几条边能使所有a[i],b[i]不相连.按右端点从小到大排序,如果当前选的去掉的边在区间内,那么符合条件,否则ans++,并贪心地把去掉的边指向右端点,因为前面的区间都满足条件了,所以要去掉的边要尽量向右移使其满足更多的区间。...
2018-07-22 21:22:00
141
转载 洛谷 P2804 神秘数字
洛谷 P2804 神秘数字题目大意:n个数,求有多少个连续区间和平均值大于m.n个数先都减掉m,然后算一遍前缀和,那么就是要找多少个区间和大于0.转化为s[j]-s[i]>0即s[j]>s[i](j>i),那么就是求顺序对了.由于出现负数难以离散化,所以还是用归并排序倒过来求逆序对,效率nlogn。 1 #include <iostre...
2018-07-20 11:34:00
290
转载 Codeforces Round #498 (Div. 3)
这场..不知道说什么好了唉。。。A.签到++ 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <queue> 6 #include <map&...
2018-07-17 22:09:00
63
转载 Trie树初探
最近在搞搞Trie,写篇博客总结一下吧.Trie就是将字符串的每个字符用树的边储存,查询时只要沿着根节点往下爬。Trie的根节点为空,表示空串.----------------------------------------------------------------------------------------------------在详细的操作前,我们先了解一下...
2018-07-08 15:58:00
70
转载 Codeforces 1004C Sonya and Robots
C. Sonya and Robots题目大意:有n个数,每个数只能与自己后面的数配对,相同的配对只算一个,求配对的数量.我们反过来考虑每个数可以与自己前面多少个数配对,得到答案是不变的.如果前面的数都不相同的话,那么这个数对答案的贡献是i-1,如果有相同的,那么只要减去相同的就好了.所以在读入时记录每个数出现的次数最后出现的位置和这个位置前面相同的数,然后就可以一次循环...
2018-07-07 15:06:00
108
转载 Codeforces Round #494 (Div. 3)爆炸记
一开始网站爆炸,502刷新了10min,那时就知道这场要gg了。。。A.签到题B.求一个01串包含a个0,b个1且恰好有x个位置s[i]不等于s[i+1];考虑a,b大小关系确定第一个是0还是1,前面构造x-1个10或01,后面就连着输出相同的就好了。没看到样例wa3两次。。。 1 #include <iostream> 2 #include <cstd...
2018-07-07 14:57:00
72
转载 AtCoder Regular Contest 100 C
C - Linear Approximation题目大意:长度为n的序列,找任意一个整数b,使abs(a[i]-(i+b))的和最小。先将a[i]减去i,那么就是求a[i]-b的绝对值和最小.转换模型我们可以把a[i]看成数轴上的点,那么就是要求数轴上一个点到其他点的距离最小。曾经在蓝书上看过这个结论,b这个点就是中位数。证明一波:image.png...
2018-07-07 14:55:00
128
转载 Codeforces 998C Convert to Ones(思维)
C. Convert to Ones题目大意:一个长度为n的01字符串,反转任何一个连续区间价值为x,将任意一个全为0的子区间改为1价值为y,求将字符串全变为1的最小价值。这题也是看了好久才找到规律。我们可以发现,若要用x操作,就是要把1通过反转连起来,那么剩下的0的子区间就用y操作。那么要用多少次x操作呢,看似很难确定。。设0的子区间个数为m,我们不难发现,将所有1连在一起需要m-1次...
2018-07-07 14:53:00
133
转载 Codeforces 1000C Covered Points Count
C. Covered Points Count题目大意:有n条线段,问有多少个点被i条线段覆盖(i=1~n)。很常见的线段覆盖套路题QAQ。坐标排序后把左端点当做+1,右端点当做-1,扫一遍统计答案即可。但是记得开ll,数组大小开双倍。 1 #include <iostream> 2 #include <cstdio> 3 #include &...
2018-07-07 14:52:00
72
转载 AtCoder Beginner Contest 100 C(思维)
*3 or /2题目大意:有n个数,每次操作将第i个数*3或/2,得到结果必须为整数,且每次操作必须有一次为/2,求最大操作次数.一开始看很懵比,感觉肯定是思维题,对着样例猜了个结论竟然就过了大数据。。。思路:奇数只能 * 3,所以只考虑偶数.对于一个偶数,可以分解成2^n * a,显然a为奇数,那么如果这个偶数乘3为2^n * 3a,3a也显然为奇数,所以证得:任意一个偶数无论乘多少次...
2018-07-07 14:51:00
192
转载 Codeforces 1000B Light It Up(思维)
B. Light It Up题目大意:有一盏灯,在0时刻亮起,M时刻关闭。在一些时刻有一些开关可以改变灯的状态(开-->关,关-->开)。给你一个机会再0~m任何一个时刻(不与a[i]相同)加一个开关,求灯亮着的最大时间。显然应该把这个开关安排在任何一个a[i]的相邻位置(左边或右边),这样浪费的时间会最少。然而无论在左边还是右边,两个情况都是同一个道理,所以我们只需...
2018-07-07 14:50:00
153
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人