- 博客(22)
- 资源 (1)
- 收藏
- 关注
原创 Jzoj4348 打击目标
又是被水题坑了。。。一直想不出来看题解说要什么主席树,于是开始打离线算法结果打到一半发现要强制在线。。No!!!发现直接AC自动机似乎可做?树剖之后在AC自动机上跑的时候判断一下不就好了吗!连线段树都不要让后快乐切掉,速度还可以(废话,人家N^2暴力都跑得飞快)#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#in
2017-12-30 21:32:38 369
原创 Jzoj3155 最短路
N 个结点、M 个含K 个结点的完全子图构成一个奇怪的图,问从结点1 走到结点N 最少需要经过多少个结点。非常经典的套路了,当时做2sat也讲过了建立中转站让后直接bfs,最后距离/2就好
2017-12-30 21:26:05 335
原创 Jzoj3154 删数字
给你一个N 个数组成的序列V,要你删除其中K 个数,M 表示剩下的数字中任意两个数的差值的最大值,m 表示最小差值,要你计算删除K 个数后,M+m的最小值。一看便知道先排序,那么答案必然是一段连续的区间,直接上单调队列就好#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#include#include#includ
2017-12-30 21:21:20 276
原创 Vijos1984 随机树
题目传送门突然听说要去THUAC让我很虚于是进入赛季恢复期发现自己已经不如退役选手了。。。。No!好的开始讲题第一问:显然线性可加乱搞啊,f[i]表示n=i时候的答案那么每加入2个节点在减掉原来那个就好了,f[i]=(f[i-1]*(i-1)+(f[i-1]+1)*2-f[i-1]考虑第二问,这一问看了正解才发现自己已经退役了一直在考虑如何记录关于新加入那两个节点的信息
2017-12-23 11:22:14 371 1
原创 Jzoj3020 最多的约数
WZK是个数学狂热爱好者。最近他又想出了一道题目来考大家。题目很简单,给定一个正整数n,对于所有不超过n的正整数,找到包含约数最多的一个数。如果有多个这样的数,那么回答最小的那个。直接dfs即可,注意两个地方要优化:1.按照素数表的顺序递增枚举 2.每个数的幂次递减,按照贪心原则就可以知道#include#define L long longint w[500000],t;boo
2017-12-21 17:16:05 433
原创 Jzoj3625 旅行(travel)
非常好的树剖模板题了,直接C颗线段树上去就好了,动态开点一次写对~#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#include#include#include#define N 100010#define mid (l+r>>1)using namespace std;struct edge{ int v,nt;
2017-12-13 20:29:24 388
原创 Jzoj1020 逆序对统计 ≈ Bzoj3295 动态逆序对
Jzoj1020:Dramatic是在太菜了。最近,他学习了有关逆序对的知识,并且掌握了计算一个序列逆序对个数的高效算法,因此,他兴冲冲的跑去向YY牛炫耀。YY牛对此不屑一顾,并打击Dramatic说:“这是在太小儿科了!”Dramatic很不甘心,于是在他的强烈要求下,YY牛给他出了一道跟逆序对有关的“难题”(显然,对于YY牛来说是简单题)。题目是这样的:YY牛首先给Dramatic一个长
2017-12-11 21:08:08 612
原创 Jzoj4384 Hashit
你有一个字符串S,最开始为空,要求支持两种操作在S后面加入字符c删除S最后一个字符每次操作询问S有多少个两两不同子串应该本来应该用SAM+Trie离线做的,然而为了练一下后缀平衡树就写了其实也很好写,用哈希比较一下就好了,可以用set实现,开一个数组存每个后缀对应的节点就好求height也可以用哈希#pragma GCC opitmize("O3")#pragma
2017-12-10 13:15:51 490
原创 Jzoj1950 拉拉队排练
艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了。拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛。所以作为拉拉队队长的楚雨荨同学知道,帮助篮球队训练好拉拉队有多么的重要。 拉拉队的选拔工作已经结束,在雨荨和校长的挑选下,n位集优秀的身材、舞技于一体的美女从众多报名的女生中脱颖而出。这些女生将随着篮球队的小伙子们一起,和对手抗衡,为艾利斯顿篮球队加油助威。
2017-12-08 17:09:45 378
原创 Jzoj2682 最长双回文串
顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。 输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。PAM模(mu)板题当然也可以manacher+DP,跑的快#include#include#include#define
2017-12-07 22:01:39 266
原创 Jzoj3648 【GDOI2014】beyond
当年还是too naive了啊,这么简单的题居然没做出来,太弱啦(讲真我那年还没上初中呢。。。)要是明年遇上这种题目就好了,嘻嘻嘻很显然的,最大的答案一定在两个串中出现过,那么我们来考虑如何找出这个串枚举一个x,我们用二分+hash求出a[x]和b[1]的lcp,设为len,让后再看a[1..x-1]和b[len+1,x+len+1]是否相等就好了因为哈希常数非常小jzoj跑得快,
2017-12-05 19:06:58 439
原创 Jzoj4061 字符串树
给一个树,每条边上面有一个字符串,每次询问两个节点路径上的字符串中有多少以给定的一个字符串为前缀显然是一个十分简单的题目,当时想多了打了树剖+Trie合并后来才意识到可以用差分+可持久化trie,过于愚蠢了。。。。。其实solution给了另一种解法,将所有字符串排序,哈希求lcp,让后存在一个数组里面,让后就可以用主席树了反正这题比较简单#pragma GCC opitm
2017-12-04 20:42:04 310
原创 Jzoj3756 【NOI2014】动物园
下课前,园长提出了一个问题:“KMP 算法只能求出 next 数组。我现在希望求出一个更强大 num 数组——对于字符串 S 的前 i 个字符构成的子串,既是它的后缀同时又是它的前缀,并且该后缀与该前缀不重叠,将这种字符串的数量记作num[i]。例如 S 为 aaaaa,则 num[4] = 2。这是因为 S 的前 4 个字符为 aaaa,其中a 和 aa 都满足性质‘既是后缀又是前缀’,同时保证
2017-12-04 20:35:14 414
原创 Bzoj5088 HDU 6000 Wash
题目传送门呃这个不应该是一个简单的二分答案+贪心吗(似乎以前做过但是因为long long 卡了好久)我们考虑只洗衣服的情况,显然就是一个非常愚蠢的二分让后再来单独考虑烘干的情况,和上面一样也是一个二分最后考虑如何将两者的时间合并,显然,我们可以将所有衣服送出机器的时间存下来排序按照贪心原则,让最大值尽可能小,所以用最大的和最小的相加,依次类推。。。复杂度O(L+n lg
2017-12-03 22:02:33 325
原创 Jzoj3486 道路改建
人称不死将军的林登·万,与他的兄弟林登·图两人的足迹踏遍了地球的每一寸土地。他们曾将战火燃遍了世界。即使是lifei888这样的强悍人物也从来没有将他彻底击败。这一次,林登·万在N个城市做好了暴动的策划。然而,在起事的前一天,将军得知计划已经泄漏,决定更改计划,集中力量掌握一部分城市。具体来说,有M条单向边连接着这N座城市。对于两座城市A,B,如果它们能够通过单向边直接或间接的互相到达,那
2017-12-03 20:32:02 277
原创 Jzoj3542 冒泡排序
下面是一段实现冒泡排序算法的C++代码:for (int i=1;i for (int j=1;jif (a[j]>a[j+1]) swap(a[j],a[j+1]);其中待排序的a数组是一个1~n的排列,swap函数将交换数组中对应位置的值。对于给定的数组a以及给定的非负整数k,使用这段代码执行了正好k次swap操作之后数组a中元素的值会是什么样的呢?是一个模
2017-12-02 22:54:10 353
原创 Jzoj3555 树的直径
科学家在观测一棵大树,这棵树在不断地生长,科学家给这棵树的每个节点编了号。开始的时候,这棵树很小只有4个节点,一号点为根,其他三个节点挂在上面。在接下来的M次观察中,科学家每次都能看见这棵树从叶子处长出新的两个节点来。如果当前这棵树有N个节点,那么这棵树的新的两个节点的编号分别为N+1,N+2。科学家记录下了这棵树生长的过程,需要你帮着计算这棵树实时的直径。树的直径就是这棵树最远的两个节点
2017-12-02 21:19:00 358
原创 51Nod1022 石子归并V2
题目传送门四边形不等式第一题,口胡一下我们原来的方程式:f[i][j]=sum[i][j]+max(f[i][k]+f[k+1][j]){i那么,如果我们将最优的那个k记录下来,记为g[i][j],那么必然会有g[i][j-1]当然这个东西成立是需要条件的,就是f[i][j']+f[i'][j]f[i][j]+f[i'][j'] (i博主太弱上面两个都不会证明(只会证明sum[
2017-12-02 16:37:42 241
原创 Bzoj3998 弦论
物理题目传送门求第k大的子串?SAM模板题啊CLJ的论文都讲了怎么做啊,把自动机看成一个后缀Trie求出size让后像多叉平衡树那样乱搞就好了~比前两个哈希的题好多了~ (顺便,hdu高亮好好看啊)#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#include#include#include#define N
2017-12-01 20:48:26 249
原创 Bzoj1014 外星人Prefix
题目传送门和上一篇题目几乎一样,不过还是这道题良心!bzoj好!poj慢到出*splay大法好! 两次AC不卡常!#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#include#include#include#define N 400010#define LL long long#define son(x) (
2017-12-01 20:38:25 230
原创 Poj2758 Checking the Text
题目传送门经典的数据结构维护字符串哈希这里用了很慢很慢的splay各种T(也可能是死循环)不过没办法因为会写splay的能力还是要有的#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#include#include#include#define N 100010#define LL long long#def
2017-12-01 19:06:27 370
E文本加密器
2018-08-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人