自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 2018年小记

  去年写了一次总结,今年看来感觉颇有趣味,于是今年闲着无聊又来“如法炮制”一番。----------------------------------------------正文的分界线----------------------------------------------  感觉今年于我而言是黯淡却又传奇的一年:黯淡在于一年除了互娱短暂的实习以外,其余时间似乎大多处于“摸鱼...

2019-02-04 12:14:00 200

转载 利用python爬虫爬取图片并且制作马赛克拼图

  想在妹子生日送妹子一张用零食(或者食物类好看的图片)拼成的马赛克拼图,因此探索了一番= =。  首先需要一个软件来制作马赛克拼图,这里使用Foto-Mosaik-Edda(网上也有在线制作的网站,但是我觉得这个比较方便,而且也找到了一个汉化过的版本,地址为http://witmax.cn/foto-mosaik-edda.html)。要制作马赛克拼图,需要一个图片的数据库,至少需...

2018-07-29 13:18:00 671

转载 2017年小记

  只感觉刚刚还只是高中毕业,现在已经跨上实习的道路了,时间真的走的很快。今年感觉变化了很多,也成长了许多,于是想今年稍微总结下今年的小结。  回想起今年的ACM之路来,感觉相比上一年来说似乎并没有过大的进展,在大腿队友的带领下又摸了一年的鱼,感觉水平没有过大的提高,可能只是算法熟练度上有所进展吧。  看了看去年一年的博客,大多数的博客都是密集在去年的上半年,可能的确只有那段时间...

2018-02-15 12:06:00 219

转载 CodeForeces 842d Vitya and Strange Lesson ——(带lazy标记的01字典树)

  给一个序列,每次操作对这个序列中的所有数异或一个x,问每次操作完以后整个序列的mex值。  做法是去重后构建01字典树,异或x就是对root加一个x的lazy标志,每次pushDown时如果lazy的这一位是1,则交换左右儿子。找mex的话只要每次往左走,如果左子树是满的,则往右走,并且加上左边相应造成的贡献。具体见代码: 1 #include <bits/st...

2017-11-11 17:14:00 147

转载 Codeforces 876E National Property ——(2-SAT)

  在这题上不是标准的“a或b”这样的语句,因此需要进行一些转化来进行建边。同时在这题上点数较多,用lrj大白书上的做法会T,因此采用求强连通分量的方法来求解(对一个点,如果其拓扑序大于其为真的那个点,则这个语句为真,都相同则无解,否则为假)。AC代码如下: 1 #include <bits/stdc++.h> 2 using namespace std;...

2017-11-02 12:21:00 513

转载 POJ1635 Subway tree systems ——(判断树的同构,树的最小表示法)

  给两棵有根树,判断是否同构。因为同构的树的最小表示法唯一,那么用最小表示法表示这两棵树,即可判断同构。顺便如果是无根树的话可以通过选出重心以后套用之前的方法。  AC代码如下: 1 #include <stdio.h> 2 #include <algorithm> 3 #include <string.h> 4 #inclu...

2017-10-12 17:25:00 135

转载 HDU 6208 The Dominator of Strings ——(青岛网络赛,AC自动机)

  最长的才可能成为答案,那么除了最长的以外全部insert到自动机里,再拿最长的去match,如果match完以后cnt全被清空了,那么这个最长串就是答案。事实上方便起见这个最长串一起丢进去也无妨,而且更好写(时间也没有慢特别多)。  另外需要注意的一点是init()里头的memset只需要清空之前用过的节点而不是所有节点,这是经常被卡的一点。  代码如下: 1 #i...

2017-09-21 18:25:00 105

转载 HDU 6194 string string string ——(2017沈阳网络赛,后缀数组)

  思路见:http://blog.csdn.net/aozil_yang/article/details/77929216。  代码如下: 1 #include <stdio.h> 2 #include <algorithm> 3 #include <string.h> 4 using namespace std;...

2017-09-11 20:56:00 75

转载 HDU 6086 Rikka with String ——(AC自动机 + DP)

  这是一个AC自动机+dp的问题,在中间的串的处理可以枚举中断点来插入自动机内来实现,具体参见代码。  在这题上不止为何一直MLE,一直找不到结果(lyf相同写法的代码消耗内存较少),还好考虑到这题节点应该不会过多,可以少开一点节点数。  代码如下: 1 #include <bits/stdc++.h> 2 using namespace std;...

2017-08-21 15:57:00 211

转载 HDU 6129 Just do it ——(找规律)

  思路见:http://blog.csdn.net/qq_32506797/article/details/77206167。  利用二进制讲m次转化成log次然后进行转移。  代码如下: 1 #include <stdio.h> 2 #include <algorithm> 3 #include <string.h> 4...

2017-08-21 14:44:00 86

转载 HDU 6041 I Curse Myself ——(仙人掌图,tarjan,转化)

  题解见这个博客:http://blog.csdn.net/ME495/article/details/76165039。  复杂度不太会算。。这个经典问题的解法需要注意,维护队列里面只有k个元素即可。另外,tarjan对无向图仙人掌图缩点(即只把所有环变成一个点)得注意一下(栈得手写才能实现要求,这是因为在这里割边不能被算进环内,而在有向图中,一个点也算是强连通分量的)。  ...

2017-08-21 14:38:00 96

转载 HDU 1402 A * B Problem Plus ——(大数乘法,FFT)

  因为刚学fft,想拿这题练练手,结果WA了个爽= =。  总结几点犯的错误:  1.要注意处理前导零的问题。  2.一定要注意数组大小的问题。(前一个fft的题因为没用到b数组,所以b就没管,这里使用了b数组,结果忘记给其大小乘以4倍了)  代码如下: 1 #include<bits/stdc++.h> 2 using namespace st...

2017-08-06 15:41:00 115

转载 HDU 4609 3-idiots ——(FFT)

  这是我接触的第一个关于FFT的题目,留个模板。  这题的题解见:http://www.cnblogs.com/kuangbin/archive/2013/07/24/3210565.html。  FFT的模板如下: 1 #include<bits/stdc++.h> 2 using namespace std; 3 const double p...

2017-08-06 12:27:00 108

转载 Codeforces Round #426 (Div. 2)

  AB都是水题。  C,设A和B是输入的最终分数,A和B一定具有这样的形式:A=a*b*b, B=a*a*b。那么A*B开三次方得到a*b,从而得到a和b,只要a和b存在答案便存在。开三次方使用二分即可。  D题,题意是使序列刚好分成k段,每段的贡献值为这段不同数字的个数,问一种分法使得分数最大,求最大的分数。在扫描的过程中,假设当前出现的数字是now,last[now]表示的...

2017-07-31 11:14:00 94

转载 CodeForces 787 题解

  A题,因为数据范围很小,所以只要暴力即可,如果能相遇一定范围不大,如果范围很大还没相遇一定是不会相遇的了。正解应当是用扩展欧几里得计算这个方程的整数解,再想办法看看有没有正整数解才是。  B题,只要看懂了题意,用map维护一下即可。真不知道题目给的n是干嘛用的。。  C题,如果不存在loop的情况就用np态判断一下即可。现在存在loop正向dfs是不可以的,因为dfs的顺序会...

2017-07-25 10:37:00 158

转载 2017杭电ACM集训队单人排位赛 - 2 题解

  1001,水题,直接模拟即可。比赛中开局连wa三发,因为把int写成了bool..  1002,积分题,比赛中找到了下面这个积分公式,  但是并没什么用,,因为带入以后存在误差,估计是展开了以后出现了误差。然后用自适应simpson即可。大白书上的模板不怎么好用(虽然能过),优化版的模板如下(本题AC代码): 1 #include<iostream&gt...

2017-07-06 13:36:00 145

转载 CodeForces 816E Karen and Supermarket ——(树形DP)

  题意:有n件商品,每件商品都最多只能被买一次,且有一个原价和一个如果使用优惠券以后可以减少的价格,同时,除了第一件商品以外每件商品都有一个xi属性,表示买这个商品时如果要使用优惠券必须已经使用了xi的优惠券。现在有B的钱,问在不超过B的钱的情况下最多能买多少件商品。  做法:因为根据x属性,所有商品能够被连缀成一棵以1为根节点的树,因此考虑树形dp,因为n=5000,所以定义状态...

2017-07-04 09:29:00 142

转载 Codeforces Round #420 (Div. 2)

  A题,水题,只要暴力即可,要注意的是题意要理解清楚。  B题,枚举每一个x作为矩形的右边,那么其中的贡献是可以用等差数列累和公式计算的,最后对所有可能的答案取一个max即可。该题很友好,使用floor没有被卡精度= =。  C题,由于题目是保证了一定能够使得满足要求,那么如果remove的时候这个栈不是递减的只需要给它排序一下即可。实际上并不需要对其这样模拟(也不可以这样模拟...

2017-07-02 16:49:00 105

转载 计蒜客 UCloud 的安全秘钥 ——(hash)

  题目链接:https://nanti.jisuanke.com/t/15769。  题意是求可以变换位置以后相同的子串有多少个,那么做法是只要每个数字的平方和,立方和以及四次方和都相同就可以了。  代码如下: 1 #include <cstdio> 2 #include <cstring> 3 #include <algorith...

2017-06-04 21:02:00 164

转载 Codeforces 812E Sagheer and Apple Tree ——(阶梯博弈)

  之前在bc上做过一道类似的阶梯博弈的题目,那题是移动到根,这题是移动到叶子。换汤不换药,只要和终态不同奇偶的那些位置做nim即可。因此这题给出了一个条件:所有叶子深度的奇偶性相同。同时需要注意的是,上次bc中,根节点是不能移动的,因此根节点是终态节点,而这里叶子上面还可以进行操作(可以吃掉),那么就相当于叶子节点都还可以继续向下移动,因此他们不是终态节点,也就是说这题只要和叶子节点同...

2017-06-03 22:39:00 211

转载 2017年浙江省赛总结

  最终是5题银。其实感觉再给点时间能7题的,主要是最后机子不够用了,没时间调试了,当然代码能力弱也是很大的一个问题。  E题,队友当时卡了很久,最终是A了。赛后发现就是一个很水的数位DP。。代码如下: 1 #include <stdio.h> 2 #include <algorithm> 3 #include <string.h&g...

2017-04-26 09:04:00 443

转载 UVALive 3716 DNA Regions ——(扫描法)

  乍一看这个问题似乎是很复杂,但其实很好解决。  先处理出每个点到原点的距离和到x正半轴的角度(从x正半轴逆时针旋转的角度)。然后以后者进行排序。  枚举每一个点到圆心的距离,作为半径,并找出其他到圆心距离不超过这个值的点,由于他们的角度是有序的,因此线性的找出角度差最小的满足题意的两个点即可(相当于拿一个长度为k的尺子不断地移动过去)。  那么总的复杂度为O(n^2)。...

2017-04-18 22:44:00 117

转载 UVALive 3716 DNA Regions ——(式子变形)

  一开始直接想到了二分,写了一发然后过了全部样例就交了,果断WA。因为这个问题显然是不满足单调性的。  然后想之前刚做的斜率优化DP,但是那个是求斜率最大值,不是求满足斜率大于一定值的最大长度的。也构造不出好的方法。  最后的方法是列个式子:i+1~j位置可以成立仅当 (pre[j] - pre[i]) / (j - i) >= (100-p) / 100。不妨把p变成1...

2017-04-18 22:29:00 114

转载 2016-2017 ACM-ICPC Northwestern European Regional Programming Contest (NWERC 2016)

  只A出了其中的5题。。这场题意好晦涩啊,而且其他题目也有一定的难度。又是tarjan又是dinic的。。暂时先给写出来的5题做个题解吧。  题目链接:https://vjudge.net/contest/158990#overview。  C题,还是一个比较水的题目,只要看懂了题意就能A出来了。  E题,也是一个水题,不过要对题目的意思有一定的想象力。。从一个...

2017-04-16 21:52:00 248

转载 Egyptian Collegiate Programming Contest (ECPC 2015) C题 Connecting Graph

  这题上次用的是线性求LCA过的,数据比较水,当时没有被T掉(不过线性的做法是在线的)。现在重新的分析一下这个问题。在所有的操作都进行完毕以后,这个图形肯定会变成一棵树,而我们的要求是在这棵树上的一条链上求出边权值t的最大值,那么很显然的可以使用树链剖分来解决这个问题(在做这题之前我还不知道LCA也可以获得一条链上的最值)。然后再看这个问题,因为不论是LCA还是树链剖分,都不能够动态的...

2017-04-16 09:52:00 167

转载 UVALive 4726 Average ——(斜率优化DP)

  这是第一次写斜率优化DP= =。具体的做法参照周源论文《浅谈数形结合思想在信息学竞赛中的应用》。这里仅提供一下AC的代码。  有两点值得注意:1.我这个队列的front和back都是闭区间的;2.在while(...) front++; 这个循环里面,<=写成<就会WA,不知道是为何(讲道理是肯定没问题的,至多多判断几个点而已,我猜想可能是存在了精度误差导致的)。。...

2017-04-14 14:00:00 111

转载 CodeForces 494B Obsessive String ——(字符串DP+KMP)

  这题的题意就很晦涩。题意是:问有多少种方法,把字符串s划分成不重叠的子串(可以不使用完s的所有字符,但是这些子串必须不重叠),使得t串是所有这些新串的子串。譬如第一个样例,"ababa"和"aba",共有5种方法:{aba}(前3个),{aba}(后3个),{abab},{baba},{ababa}。  先设s的长度为lena,t的长度为lenb。  做法是:用dp[i]表示...

2017-04-13 23:04:00 137

转载 UVALive 5052 Genome Evolution ——(xjbg)

  本以为这题n=3000,随便n方一下就能过。于是我先枚举长度len再枚举起点,不断增加新的点并删除原来的点,判断在b中的r-l+1是不是等于len即可,这个过程显然要用set维护比较方便,但是貌似卡了这个log,T了= =。  然后修改了一下思路,先枚举左端点,再不断的向有扩张,并用两个变量l和r来标记在b中的最左和最右的位置,然后如上做法即可。这样的好处在于不需要删除点的信息,...

2017-04-13 12:57:00 115

转载 UVA 11525 Permutation ——(线段树,脑筋急转弯)

  只要注意到对于譬如:S1*(k-1)! 因为后面k-1个数字的全排列个数刚好是(k-1)!,那么第一个数字就是没有取过的数字的第(S1+1)个即可。取走这个数字以后这个数字就不能再用了,依次类推即可得到整个排列了。  那么随便用线段树维护一下即可。  代码如下: 1 #include <stdio.h> 2 #include <algorithm...

2017-04-04 11:39:00 95

转载 UVALive 4976 Defense Lines ——(LIS变形)

  题意:给出序列,能够从这序列中删去连续的一段,问剩下的序列中的最长的严格上升子串的长度是多少。  这题颇有点LIS的味道。因为具体做法就是维护一个单调的集合,然后xjbg一下即可。具体的见代码吧: 1 #include <stdio.h> 2 #include <algorithm> 3 #include <string.h>...

2017-04-03 11:08:00 103

转载 UVA 11605 Lights inside a 3d Grid —— (概率和期望)

  题意:见大白书P181。  分析:一个一个点的进行分析,取其期望然后求和即可。假设当前点在第一次中被选到的概率为p,f[i]表示进行k次以后该点亮的概率(在这里也可以理解为期望),g[i]表示k次后该点不亮的概率,那么联立:    1.f[1] = p;    2.f[i] + g[i] = 1.0;    3.f[i] = f[i-1] * (1-p) + g[i-...

2017-04-01 17:49:00 111

转载 ZOJ 2592 Think Positive ——(xjbg)

  做法是,先求出前缀和pre。然后枚举端点i,[i+1,n]中pre最小的找出来,减去pre[i-1]大于0,这是第一个条件;第二个条件是,从i开始的后缀和和i之前的最小的一个pre相加大于0。只要满足这两个条件那么这个端点就是可行的。显然找这两个区间的最值都是可以用数组线性维护的,因此总体复杂度是O(n)的。  代码如下: 1 #include <stdio.h&g...

2017-03-28 21:51:00 122

转载 POJ 3342 Party at Hali-Bula ——(树型DP)

  一开始用pii保存dp类型,写的很长,还是WA了= =。。  然后参考了一下别人的博客,重新写了一发(似乎是岐哥的博客233)。  代码如下: 1 #include <stdio.h> 2 #include <algorithm> 3 #include <string.h> 4 #include <iostream...

2017-03-27 22:55:00 109

转载 POJ 2486 Apple Tree ——(树型DP)

  题意是给出一棵树,每个点都有一个权值,从1开始,最多走k步,问能够经过的所有的点的权值和最大是多少(每个点的权值只能被累加一次)。  考虑到一个点可以经过多次,设dp状态为dp[i][j][k],i表示当前从i出发,j表示最多走j步,k=0的话表示最后回到i点,否则不回到i点的子问题的答案。  转移见代码。  值得注意的是dfs中j循环的方向必须从大到小,因为如果从小到大...

2017-03-27 20:08:00 108

转载 Egyptian Collegiate Programming Contest (ECPC 2015)

  题目链接:https://vjudge.net/contest/155219#overview。  A题,用全排列来找出比当前这个数字字典序还大的排列有几个,然后前缀和dp即可。据说可以康拓展开来快速找出前面需要实现的要求。  B题,水题。  C题,感觉数据比较水。做法是dsu+lca,但是为了实现lca树的结构不被破坏,dsu::find()不能压缩路径。然后线性找lc...

2017-03-26 11:33:00 176

转载 2015 ACM Arabella Collegiate Programming Contest

  题目链接:https://vjudge.net/contest/154238#overview。  ABCDE都是水题。  F题,一开始分类讨论,结果似乎写挫了,WA了一发。果断换并查集上,A了。  G题,状态压缩DP,不难写,但是时限有点紧,读入也比较恶心。。值得注意的是计算一个数二进制下有几个1可以用__builtin_popcount(mask);判断a和b在二进制...

2017-03-17 18:02:00 185

转载 UVALive 4394 String painter ——(区间DP)

  其实这个dp过程有点似懂非懂。。。代码如下: 1 #include <stdio.h> 2 #include <algorithm> 3 #include <string.h> 4 using namespace std; 5 const int N = 100 + 5; 6 7 char a[N],b[N];...

2017-03-17 17:38:00 107

转载 2015-2016 ACM ICPC Baltic Selection Contest

  这是上礼拜三的训练赛,以前做过一次,这次仅剩B题没补。题目链接:https://vjudge.net/contest/153192#overview。  A题,水题。  C题,树形DP,其实是一个贪心问题,比如要取max的话,从根往下的肯定是要依次放max门,因此取一条能够获得最大值的一路放下max门即可。min同理。  D题,BFS即可。  E题,从小点到大点建边,...

2017-03-13 17:56:00 168

转载 UVALive 4254 Processor ——(二分+优先队列处理)

  题目是求最小化最大值,很显然是二分,但是二分以后怎么判断mid是否可行并不容易。  代码参考了网上一个博客的代码。巧妙之处在于一秒一秒的考虑,这样可以把处理速度mid直接转化成1秒内实际的量来解决(避免小数问题),然后贪心考虑每次处理最早结束的工作即可。注意我这里的代码t表示的是一整秒,譬如[1,2]即t=1。  具体见代码: 1 #include <stdio...

2017-03-13 17:42:00 88

转载 HDU 2243 考研路茫茫――单词情结 ——(AC自动机+矩阵快速幂)

  和前几天做的AC自动机类似。  思路简单但是代码200余行。。  假设solve_sub(i)表示长度为i的不含危险单词的总数。  最终答案为用总数(26^1+26^2+...+26^n)减去(solve_sub(1)+solve_sub(2)+...+solve_sub(n))。前者构造f[i]=f[i-1]*26+26然后矩阵快速幂即可(当然也可以分治的方法)。后者即...

2017-03-06 22:53:00 129

空空如也

空空如也

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

TA关注的人

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