自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

辣鸡葫芦娃

在巨人的脚趾上往肩膀那边爬

  • 博客(137)
  • 收藏
  • 关注

原创 第二类斯特林数合集

留坑。。HDU2643求一个n人参加的比赛,最终的排名情况有多少种,注意可以并列。思路1:直接DP。dp[i][j]表示i个人,总共有j种名次。dp[i][j] =j*(dp[i-1][j-1]+dp[i-1][j]) 如果第i个人单独占有了一个名次,则i-1个人占有j-1个名次,否则,i-1个人占有j个名次,然后枚举第i个人在哪一个名次。答案=sigma{dp[n][i]}(1<=i&lt...

2018-04-08 18:38:14 974

原创 Codeforces 961F: 字符串hash

题意:给一个字符串,求出其border长度(前缀=后缀,且长度最长),然后切掉第一个和最后一个字母,再求border,直到字符串切么得了。题解:首先要发现一个性质:设一个字符串的border长度为x,那么,在这个字符串头尾各加上一个字母,新字符串的border长度最多为x+2。证明的话,考虑反证法:设原串border长度为x,即长度最长的前缀=后缀,假设添加字母之后,border'>x+2,...

2018-04-05 18:02:18 1876

原创 kickstart Round A -- Problem B

康复ing康复ing,不能出去给nju丢人qwq题意:给n个数字,给k次机会,每次你可以随机取出一个数字,你有k次放回重新取数字的机会,你可以放弃一些机会不使用。请计算最终取得数字的最大期望。题解:简单dp,记dp[i]为拥有i次机会,得到数字的最大期望,那么,如果这一次取得数字是vi>dp[i-1],显然,我们保留vi,放弃机会,得到期望vi,否则,vi<dp[i-1],则我们放回重...

2018-03-19 14:12:16 214

原创 Jenkins+mvn+cobertura覆盖率报告并由jenkins导出

这东西辣鸡葫芦娃折腾了一天多,茶不思饭不想,终于能够跑起来了,从此省去了手动部署项目的烦恼233。在这里把踩过的一堆坑分享一下,希望能帮助到其他小伙伴。项目配置:mvn对项目结构有一些约束,比如约定源代码放在src/main/java 测试代码放在src/test/java,如果你的项目是按照此种方式结构,那是极好的,如果不是,源代码和测试代码路径可以再pom.xml中显式指明。注:如果在编译过程...

2018-03-15 23:25:04 2106

原创 Codeforces 949C Data Center Maintenance 缩点+拓扑

怠惰啊。。。欠了一屁股的cf比赛了。。。先发一个zz题解好了。。。题意:有n个数据中心,m个客户,一天有h小时,每个数据中心在每天的一个特定小时宕机,每个用户的数据保存在两个数据中心上,数据保证每个用户在每个小时都可以访问到数据,也就是不存在一个用户保存数据的两个中心宕机时间相同。现要选出一部分中心将他们的宕机时间向后推迟1h,且还要保证用户对数据的随时访问,问最少要选几个机器(不能选0个)。题解...

2018-03-12 17:46:41 1497

原创 一个求凸包的板子。。

测试题目:HDU1348Code:#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn = 1005;#define M_PI 3.1415926535struct Node{ int x,y;};int st[maxn],top; Node a[maxn];in...

2018-02-14 14:45:20 294

原创 Codeforces 919F SG大爆搜(拓扑)

题意:臭名昭著的Alice和Bob又要玩游戏 :(游戏规则:每个人有八张卡牌,卡牌的数字可以是0、1、2、3、4,在一个人的回合中,它可以选择自己一张牌,再选择对手一张牌,然后把选中的自己这个牌,替换成两张牌之和%5,对手的牌不变。率先实现八张零牌的人获胜。保证先手的人不会立即获胜,存在平局情况,数据有10W组。题解:显然这个数据量要爆搜打表O1出答案。此题无非就是一个单纯的有向图博弈,因此需要做...

2018-02-10 15:03:17 1434

原创 线性筛&积性函数学习习题集(未完待续)

前述:积性函数最基本的用法:求出每一个f(i) 1积性函数求和常见套路:用线性筛预处理n^(2/3)的前缀和,然后用某些狄里克莱卷积前缀的变形公式,可以推出一些可以在O(N^(1/2))完成的递推,配合记忆化即可搞定大范围的前缀和求值。例题:51Node1244题意:求莫比乌斯函数的区间和,即前缀和(1e10)利用μ*1=e,对这个式子的前缀和进行变形,可以得到O(N^(1

2018-02-07 16:13:09 344

原创 Codeforces 919E 小学数学入门

题意:给你a、b、p(素数,求满足n (1 ≤ n ≤ x) 且的n个数。题解:等式左边分开考虑,n%p显然最小循环周期是p,而a^n%p最小循环周期是p-1,因为n=0时,a^n%p=1,由费马小定理,a^(p-1)%p=1,得证。还有一个事情就是n*a^n%p的最小循环周期是p*(p-1),这个事情大概可以这样考虑:显然LCM(p,(p-1))=p*(p-1

2018-02-01 20:41:15 625

原创 2017 ACM/ICPC 新疆站总结

热身赛:水题切的挺快的,暴力题也有勇气提交(AC)了,计算几何背大锅,于是菜鸡葫芦娃决定在肝了很久字符串和DP之后,入坑计算几何,拒绝做板子选手。W->WDY->本菜鸡S->SKY->漂亮小姐姐T->TZY->13岁少女正赛:W从前看,T从后看,S从中间看。W看了A感觉可做,然后就忍不住想了几分钟,此时T发现G大水题,上去切。S没发现可做题。此时W放弃A读B,发

2017-12-04 22:58:57 1515

原创 Codeforces 895D Round#448 2D :组合数学+小学数学优化

题意:给出串S1,S2,长度相同,均为小写字母,保证S1题解:先考虑如何让T我们可以从第一位向后枚举,在每一位上枚举这一位可以放哪个字母,比如S1是ababa,S2是ububu,那么我们先枚举T第一位放a,那么无论后边怎么放,一定满足T于是我们设计了一个n*26*26的算法。然后这算法被卡掉了。。。。。优化:考虑那个公式(元素总个数!)/(元素1个数!*……

2017-11-27 14:55:50 327

原创 Luogu 3942 :乱搞?

题意:有一个经典DP问题是树的最小点集覆盖,那个问题是说:要你选出一个最小的点集,使得树上所有的点要么是点集里的点,要么和点集里的点相连。就是一个01DP.。。现在这个题的意思是,树上的点要么在点集中,要么离点集的最小距离题解:考虑直径,把一个端点选做根,另一个端点就是深度最大的点,考虑这个点,想要把它覆盖了,并且同时覆盖面尽量广,那么就要选择他的k爹((爹的)^k-1爹)

2017-11-03 00:03:12 205

原创 POJ 3281:最大流

题意:有N个牛,F个食物,D个饮料,每个牛喜欢一些食物和饮料,现在要给牛分发食物和饮料,当一个牛得到一个喜欢的食物和一个喜欢的饮料的时候,就说这个牛被满足了。求最多可以满足多少个牛。每个饮料和食物只能被分给一个牛,每个牛也只能拿到一个饮料和食物。题解:按流建图,一个合法的流应该是:一个牛以及一个喜欢的饮料一个喜欢的食物。一头牛贡献一单位的流量,所以把牛拆了,中间加一个1容量的边,然后起

2017-11-01 22:26:59 343

原创 POJ 3436:拆点最大流

题意:一个电脑有P个部件组成,刚开始所有电脑都是空壳子,当一个电脑具备了所有的N个部件则认为这个电脑早好了。现在有一些机器专门加工电脑,每个机器可以加工某一些特性状态原型机,比如必须具备1部件,必须没有3部件,2部件有没有都行,然后这些原型机经过这个机器的加工,就会变成一种特定状态,比如具备123部件,没有45部件。每个机器每小时可以加工qi个原型机。求出每小时最多生产多少个成品机。以及流水线

2017-11-01 18:41:30 330

原创 Codeforces 884D:合并果子

题意:现在在1盒子中有N中颜色的求各ai个,要求操作若干次使得颜色i的球全部进入i盒子中,操作为:从某个盒子中取出所有的球,花费是取出球的总个数,然后把这些球分成k堆,放到k个空的盒子中去,k=2或者3.求最小花费。题解:反过来想,就是合并果子嘛。求一个带权路径和最小值,就是3-哈夫曼树。显然3-哈夫曼树比2-哈夫曼树更优,但是2-哈夫曼树对于任意个数的果子都可以构造出来,因为每次2-

2017-10-30 22:09:59 995

原创 2017 ICPC 西安站现场赛总结&部分题解

关于补题:计算客数据是错的,一定要去ICPC官网交传送门:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=810关于别墅:别墅很Nice,除了Wifi有点差之外都很棒,晚上还可以去健身房玩耍,早餐特别棒,前台的小哥哥也是很热情!给秦龙打Call!关于学校:能看...

2017-10-30 11:01:15 5164 9

原创 BZOJ 3437 : 斜率优化DP

Description小P在MC里有n个牧场,自西向东呈一字形排列(自西向东用1…n编号),于是他就烦恼了:为了控制这n个牧场,他需要在某些牧场上面建立控制站,每个牧场上只能建立一个控制站,每个控制站控制的牧场是它所在的牧场一直到它西边第一个控制站的所有牧场(它西边第一个控制站所在的牧场不被控制)(如果它西边不存在控制站,那么它控制西边所有的牧场),每个牧场被控制都需要一定的花费(毕竟在控

2017-10-25 11:49:41 303

原创 HDU 5992: KD-Tree

题意:给出N个酒店,每个酒店用平面上一个整点表示,每个酒店有一个价格C。现在有若干次询问,每次询问(x,y,c),求出距离(x,y)最近的且价格不超过C的酒店。题解:这题要是在比赛上,绝对直接按照C排序,然后离线暴力。但是正解也是要学习的,这个题的正解是kd-Tree,就是所谓的多维度二叉搜索树,众所周知,二叉搜索树有很多种,主要都在贯彻一个思想:降低树的高度,提高搜索效率。那么kd-

2017-10-23 22:16:19 600 1

原创 Codeforces 100548G - The Problem to Slow Down You & UVAlive 7041 :回文自动机

无病呻吟:字符串算法好像还剩下后缀树。。但是他好像和后缀自动机差不多的样子(这就是你划水的原因吗?)?以及还剩下一个KMP自动机。。。但是他好像和KMP也没什么区别的样子(同上?)?以及好不容易补上了PAM这个坑。。。15年西安出了一个PAM的题,成了难题,17年哈尔滨又来了一次,这次就是中等题了。吓得我赶紧学了一波。。慌得不行PAM:至少先学一个ACAM或者SAM,然后PAM基本上稍

2017-10-23 15:25:50 383

原创 HDU 5977 & 2016 ICPC 大连 G:点分治

题意:给出一棵树(n题解:先讲讲7的那个退化版的做法:7个颜色可以用7位压起来表示状态,2^7-1=127,因此可以用一个空间复杂度O(n*2^k)时间复杂度为O(n*2^k)的树形DP或者说dfs搞定,属于简单题。再来看看k=10的版本,由于k=10,n*2^k的时间或者空间都无法接受。本题属于路径统计问题,是比较明显的点分治模型,那么在点分治的时候,我们可以从当前选定的

2017-10-19 21:14:51 415

原创 Codeforces 876E:2-SAT 或者 瞎搞

题意:给出N个字符串,每个字符用整数来代表,规定一个字符可以有大小写,设小写为1,大写为1‘,并且字典序表示为:1’题解:正解是2-SAT。。。。我要讲一个怪算法。。。首先有一个不完整的思路是:正着扫一遍,要保证第i个字符串但是这样有问题,后面有一些字符变成大写了之后,可能前边的字典序就保证不了了,那么显然 另外一个不完整的思路就是:反着再扫一次。但

2017-10-16 23:26:42 466

原创 Codeforces 873D:构造题

题意:给出一个归并排序的算法:当前要merge[ l , r)区间,如果这个区间已经有序(升序),那么返回。否则分别merge[ l, mid ) 和merge[ mid , r) 然后再把两段区间给合起来。所以给出一个序列,他调用多少次merge函数是可以确定的。现在给出N和K,要你构造一个N的全排列,使得这个全排列要调用K次merge。无解输出-1。题解:归并排序类似线段树的结构,

2017-10-16 15:22:16 754

原创 Codeforces 870E:计数问题

题意:给出N个二维点,坐标都是整数,每个点可以不画线,也可以画一条竖直的线,也可以画一条水平的线,但是最多只能画一条线。 求图案方案数。题解: 假设两个点他们相互独立,那么答案就是组合一下,可以分别来算。那么思路就是:把相互之间冲突的点放到一个联通快中,然后每个联通快单独计算,再乘起来就行了。冲突定义为:两个点要么横坐标相同,要么纵坐标相同,要么同时和第三个点冲突。(也就是说一个联

2017-10-16 14:34:53 983

原创 Codeforces 869C Round #439 Div2 C:排列组合计数

题意:给出三片点,第一片点是红色,第二片是蓝色,第三片是紫色。现在要求你往上边加一些边,得到一个合法方案是:同颜色的两个点,要么不可达,要么最短路长度>=3。求出所有合法方案数。题解:显然三种颜色,最短路>=3,肯定这里面有猫腻,首先显然,两个相同颜色的点不能连边,那么我们考虑一下这个最短路>=3是怎么来的。每个点只能直接连接到不同颜色的点,而这个不同颜色的点不能再连第二条边到颜色1的

2017-10-09 21:30:26 621

原创 洛谷3698 CQOI 2017 小Q的棋盘

题意:给出一个树,从0开始出发,可以走m步,问这m步最多可以访问多少个不同的点。题解:很神奇的题目啊。考虑树的遍历(dfs):2*(n-1)步就可以把每个点都访问两次(叶节点1次)。观察边对答案的贡献:dfs往下走的边:每条边会贡献一个新的节点。dfs回溯的边:每条边对答案没有贡献。且对答案没有贡献的边不会走第二次。那么问题很简单了。先抓住一个主方向:往以0为一端的最长链的方向可劲走,

2017-10-09 16:43:24 395

原创 BZOJ 2588 & SPOJ 10628:树上主席树

BZOJ强制在线,所以大多数RE==WASPOJ比较坑,大多数WA是因为数组没开够(n实际上大于1e5。。。题目数据的锅)。题意:给出一棵树,树上每个点有一个权值,现在有若干询问,每次询问(u,v,k)求出u-v路径上权值第k小的是什么。题解:在树上构造主席树,每个点记录该点到根路径上所有点。然后u-v的路径 需要用 u+v-lca(u,v)-father[lca(u,

2017-10-04 21:52:18 411

原创 HDU 5917:Ramsey定理

题意:给出一个n个点的图(最多50),定义合法的顶点集合为:至少存在一个子集(size>=3)且这个子集是一个团或者独立集。求合法集合的个数。题解:现场赛怕是群脸懵逼吧。。。有一个Ramsey定理,说的是,世界上任选6个人,必然存在至少三个人相互认识或者相互不认识。也就是说给一个大于等于6个点的图,他的最大团或者最大独立集必然大于等于3那么问题很显然了,6以及6以上的直接统计345

2017-09-30 00:25:24 476

原创 Codeforces 864F Round#436 F :有向图倍增

题意:给出一个有向图,没有重边和自环,每次询问s,t,k,求出s到t的字典序最小的道路上的第k个点。如果字典序最小的道路是无限长的,则认为道路不存在。如果字典序最小的道路无限长或者s到t的道路不存在,则输出-1.题解:倍增思路还比较好想,但是实现起来细节比较多。比如求s到t的道路,那么先dfs出所有可以到达t的节点。如果s不在其中,输出-1.然后先用给定的边把st数组初始化一下(用

2017-09-26 23:40:03 1524

原创 Codeforces 864C Round#436 C :果然还是模拟最难

题意:有一个小车,在[ 0 , a ]范围内做周期运动。运动轨迹是 0->a->0->a->0->a……,走一趟定义为0->a或者a->0。中间有个加油站,在p的位置。然后小车的油箱容量是b,走一单位的距离就消耗一单位的油。小车路过加油站可以选择不加油,也可以选择把油加满。请问要走k趟,最少需要加几次油。题解:模拟吧 模拟吧。。。。不说了。。。心塞了。。。atleft记录小车现在是不是

2017-09-26 00:27:46 385

原创 Codeforces 864D Round#436D :全排列乱搞

题意:给出一个序列,其中每个数字都在[ 1 , n ]范围内,现在可以进行若干操作:每次操作就是 选择一个数字,然后把他赋值成一个新数字,使得这个序列成为一个n的排列。首先求出最小操作次数,然后求出在操作次数最小的前提下,字典序最小的那个排列是什么。题解:我们先看最小操作次数:首先统计出有多少种数字出现过,然后答案就是n-种数。因为出现过的数字我们只保留一个,然后剩下的所有数字依次都赋

2017-09-26 00:14:41 424

原创 Codeforces 864E Round#436E :记录转移的DP

题意:题目说的不清不楚,艰难读题…………意思是:房子着火了,有一堆古董要抢救。每个股东有三个值:t(抢救这个古董的耗时),d(古董抢救完成的时间必须严格小于d这个古董才算被抢救成功,也就是d以及d之后的时刻,这个古董就给给了),p(抢救成功这个古董带来的价值)。n题解:就是一个傻逼DP,附带上路径记录,比赛的时候被C把心态搞崩了。完全没看到这个题。果然模拟是最难的。这个DP

2017-09-26 00:06:47 297

原创 HDU 4641 至少出现K次本质不同子串数:后缀自动机

题意:先给出一个串,然后有若干操作。操作1:在结尾续上一个新字符。操作2:查询至少出现了K次的,本质不同的子串个数。题解:SAM裸题,插入一个新的字符之后,就暴力在parent上转移++,但是也不能那么暴力,我们知道parent链上的num是单调增的,当遇到一个num>=k的点就不需要再继续走了,因为前边的肯定统计到答案里边了。Code:#includeusing

2017-09-22 00:19:37 1120

原创 HDU 4622 本质不同的子串个数:后缀自动机

题意:给出一个串,每次求一个子串[ l , r ]。问这个串中,本质不同的子串个数,多组询问,数据小。题解:记住SAM是ON的。所以直接对每个[ l , r ]建SAM,然后建完就出答案。时间足够用。模板题为什么要写博客呢。。。。因为复用自动机的话。。要清空呀。。。。Code:#includeusing namespace std;const int maxn

2017-09-21 23:41:56 2977

原创 SPOJ 7258 字典序第K小的子串:后缀自动机

题意:给出一个串,求出所有子串,去重,然后求字典序第K小的串,总共Q组询问。题解:对串创建SAM,然后,拓扑一下,算出每个状态,如果继续往后边走,能够生成多少种不同的字符串。然后每次查询的时候,就按照字典顺序来看,比如到达某个点S,先看'a'儿子能造出多少个字符,如果很少,那么我们下一个字符肯定不走‘a’,那么我们继续看'b',看一下'a'和‘b’共能造出多少个字符,如果多了,那就选‘

2017-09-21 20:50:54 1585

原创 SPOJ 1812 多模式LCS

题意: 给出多个串,求所有串的LCS。题解:对第一个串创建SAM,其他串在上边跑,然后吧每个点更新出,模式串和匹配串在这一点向前最长匹配长度,那么所有船匹配完成之后,每个点取min,就得到了所有串在这一点的公共部分有多长,然后所有点取max得到答案。注意:要更新处parent链上所有的点。考虑样例:acbbcacbc自动机为:

2017-09-21 15:22:45 428

原创 POJ 1509 后缀自动机

题意:给出一个圆圈,圆圈上顺时针有一些字符,现在要从某个字符前边断开,得到一个以这个字符开头的字符串,使得得到的字符串字典序最小。如果多解,输出最小的断点。题解:把字符串copy一次,放到原串后边,使得长度*2,然后放到SAM中,从Root开始按照字典序走贪心len步(如果不能走就提前break) 搞定。Code:#include#includeusing na

2017-09-19 22:49:41 379

原创 BZOJ 4516 后缀自动机

题意:统计本质不同的子串数量。题解:模板题,后缀自动机。在每一个节点处,统计一下他能代表多少个 以他为终点的串。然后动态创建SAM,同时每加一次都输出一次就行了。唯一的不同是,这个题是int,而不是传统的字符串,那么把nxt数组换成map,复杂度多一个log(sizeof[nxt]),实际上非常小。Code:#includeusing namespace std;

2017-09-19 20:54:00 477

原创 POJ 3261 二分+后缀数组

题意:求一个串的最长的出现不少于K次的子串长度。题解:后缀自动机可以统计一个子串出现多少次。如果这个子串出现不少于K次。那么h数组必定有连续的k-1个不少于K。嗯。。。再来一个二分答案。。。就这么玩就行了Code:#include#include#include#includeusing namespace std;#define rank rkcons

2017-09-15 23:27:58 235

原创 HDU3948:后缀数组+马拉车(本质不同回文子串统计)

题意:给出一个字符串,求其 本质不同的 回文子串的个数。如果有小伙伴WA了无数次,请尝试模拟一下aabaa这个串,答案应该是5。(本菜鸡就WA了一晚上)题解:回文子串可以考虑先来个O(n)的马拉车预处理,这样每个回文子串长度必然是计数,那么我们可以统计本质不同的(正中间的字符+右半边串)回文子串个数。然后可以考虑用后缀自动机统计答案。这道题的关键的关键在于去重的处理。去重要

2017-09-15 04:08:49 2193 1

原创 POJ 1743:后缀数组求 不重叠最长重复子串

题意:给出一个数列,每个数字在[ 1 , 88 ]之间,每个数字对应钢琴的一个按键。定义相同的旋律为:[ i , i+len-1 ]区间 和 [ j , j+len-1 ]区间对应位置每个字符,差值恒定相等,且这两个区间不想交。就是说第一个区间每个数字加上一个delta,会变成第二个区间。求最长的旋律长度,如果小于5,输出0.否则输出最长的相同旋律的长度。题解:考虑查分数列。两段旋律相

2017-09-13 23:21:18 451

空空如也

空空如也

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

TA关注的人

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