摘要:
设dp[u][L]为当前在结点u,再走L步合法的概率。 如果当前结点不是单词结点,并不能判定该结点一定合法,还应该沿着失配边往回走,因为可能失配边往回走的过程中出现了不合法的,不过这里不需要专门往回走,只要看last就可以知道往回走的过程中是否有单词结点了。 都发现了这一点了,居然还是WA了。。。本
阅读全文
posted @ 2016-03-09 23:54
__560
阅读(261)
推荐(0)
摘要:
手写了下AC自动机,真正理解了kmp之后手写AC自动机还是很简单的。。。 #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<queue> #defi
阅读全文
posted @ 2016-03-09 22:09
__560
阅读(339)
推荐(0)
摘要:
不算很难的一个dp,一个错误的认识是只有DAG才能dp,当然只有DAG才能dp,但是这里的图有环,它却是DAG,因为有了其它维度(比如时间),那么不同时间的同一个点其实是两个不同的点。 #include<iostream> #include<cstdio> #include<cstring> #in
阅读全文
posted @ 2016-03-09 19:39
__560
阅读(249)
推荐(0)
摘要:
并不是很难的一个构造,我在比赛的时候把题目读错了,补题的时候想得比较粗糙,迟迟没过这题,之后想法慢慢细致起来,还是将这题过了。 #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<algor
阅读全文
posted @ 2016-03-09 19:30
__560
阅读(230)
推荐(0)
摘要:
D题:直接滑窗,枚举转折点,滑动结束点。水题啊水题。。。。 #include<bits/stdc++.h> #define REP(i,a,b) for(int i=a;i<=b;i++) #define MS0(a) memset(a,0,sizeof(a)) #define PII pair<i
阅读全文
posted @ 2016-03-08 23:43
__560
阅读(303)
推荐(0)
posted @ 2016-03-07 21:23
__560
阅读(223)
推荐(0)
摘要:
Beautiful Soup Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1912 Accepted Submission(s): 391 P
阅读全文
posted @ 2016-03-07 15:19
__560
阅读(455)
推荐(0)
摘要:
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<algorithm> #define REP(i,a,b) for(int i=a;i<=b;i++) #define MS0(a) me
阅读全文
posted @ 2016-03-07 12:16
__560
阅读(317)
推荐(0)
摘要:
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=108456#rank 这学期第一次集体的训练赛,打得非常不好,也暴露了很多问题。 主要还是自己过于犹豫,急躁,在队伍卡题的时候不能即时站出来,作为主代码手竟然会把思路清晰的题实现起来也不算麻
阅读全文
posted @ 2016-03-07 01:56
__560
阅读(229)
推荐(0)
摘要:
上一道题正解是cdq分治,想用动态开点的二维线段树(线段树套线段树+动态开点)水过去但是没成功,但我还是不死心。。。于是我去看了道树套树的题目。。。 题目是bzoj1901(zoj2112),题意是这样的,给一个数列,单点修改和查询区间第k大。。。 如果不带修改的话,显然直接主席树就可以了。。。但是
阅读全文
posted @ 2016-03-06 02:27
__560
阅读(479)
推荐(0)
摘要:
想用动态开点的二维线段树水一下,然而TLE了。。。有人线段树套平衡树都过了。。。可能线段树套线段树再加动态开点常数确实大。。。 留着等刷完第三章习题后再搞树套树,和cdq分治一起搞,等学完cdq分治我一定会回来用正解过这题的,今天没过的代码先留着。 #include<iostream> #inclu
阅读全文
posted @ 2016-03-06 01:34
__560
阅读(225)
推荐(0)
摘要:
如果写二维线段树区间RMQ,不能单点更新的话,那么和咸鱼有什么区别。 所以弄了一个下午,终于把更新弄出来了。。。 这个是这样的,既然是单点更新,一定会更新到最底层,因此先更新到第一维的最底层,在到第二维一直更新到那个点,然后由那个点一直分两个方向更新上来。 这样的话就不要把第二维弄成结构体了,因为要
阅读全文
posted @ 2016-03-05 18:30
__560
阅读(327)
推荐(0)
摘要:
不带修改的二维求RMQ,二维线段树。 #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #define REP(i,a,b) for(int i=a;i<=b;i++
阅读全文
posted @ 2016-03-05 15:43
__560
阅读(231)
推荐(0)
摘要:
二维线段树区间更新和单点查询,由于二维线段树不能传递标记,所以区间更新和一维不太一样,需要用到被更新的值以及更新操作的一些性质,还有要注意对query的影响。 这里操作是翻转,而且是单点查询,所以就直接在矩形块内更新,不把标记传递下去,查询的时候做一下微调,把所有经过的路径的标记都判断一遍,看是否需
阅读全文
posted @ 2016-03-05 14:50
__560
阅读(391)
推荐(0)
摘要:
二维线段树就是树套树,线段树套线段树。。。 #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #define REP(i,a,b) for(int i=a;i<=b;
阅读全文
posted @ 2016-03-04 21:56
__560
阅读(249)
推荐(0)
摘要:
splay已经学完了,LCT也告一段落了,treap也手写过了。 这周的计划就是先把训练指南第三章还不会的知识点学会,然后把开刷第三章的习题。 等弄完第三章就去搞cdq分治,莫队,树分治等一些零散的知识点,然后接着搞计算几何。 大概就是这样,所以这周的任务就是 二维线段树 -> AC自动机 -> 习
阅读全文
posted @ 2016-03-04 19:11
__560
阅读(309)
推荐(0)
摘要:
D. Messenger time limit per test 2 seconds memory limit per test 512 megabytes input standard input output standard output Each employee of the "Blake
阅读全文
posted @ 2016-03-04 17:46
__560
阅读(388)
推荐(0)
摘要:
#include<bits/stdc++.h> #define REP(i,a,b) for(int i=a;i<=b;i++) #define MS0(a) memset(a,0,sizeof(a)) #define rep(i,a,b) for(int i=a;i>=b;i--) #define
阅读全文
posted @ 2016-03-04 17:39
__560
阅读(272)
推荐(0)
摘要:
如果是小数的话不要用EPS,直接循环上1000次。。。 这里是整数,需要注意三分的过程是取不到端点值的,所以需要一开始特判端点,而一开始特判端点又会在l>r时出错,所以也需要特判l>r的情况。 ll bin3(int l,int r) { if(l>r) return -INF; ll res=ma
阅读全文
posted @ 2016-03-04 17:34
__560
阅读(960)
推荐(1)
摘要:
E. Product Sum time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Blake is the boss of Kris,
阅读全文
posted @ 2016-03-04 17:30
__560
阅读(308)
推荐(0)
摘要:
之前用splay一直超时。。。这次改用treap过的也不轻松,调了一晚上。。。主要是移除操作,一个是该up的时候没up,另外一个是up的时候子结点可能不存在没判断RE了。。毕竟指针版。。。还有就是delete的时候把不该删的也删了。。。 都是比较低级的细节错误。。。 但是再让我写一遍这种题我觉得还是
阅读全文
posted @ 2016-03-03 20:51
__560
阅读(250)
推荐(0)
摘要:
原来treap这么简单。。。比splay简单多了。。。。 #include<bits/stdc++.h> #define REP(i,a,b) for(int i=a;i<=b;i++) #define MS0(a) memset(a,0,sizeof(a)) using namespace std
阅读全文
posted @ 2016-03-03 13:29
__560
阅读(293)
推荐(0)
摘要:
又是不小心打错一个字符调了一晚上。。。 #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #define REP(i,a,b) for(int i=a;i<=b;i+
阅读全文
posted @ 2016-03-02 21:23
__560
阅读(212)
推荐(0)
摘要:
LCT维护边权势把每条边都当成一个点赋予点权,原来的点当然也保留,如果求和点权赋为0,求max点权赋为-INF,如果都要求,那就弄两三个点权。 需要注意的是,LCT的link操作必须换根,如果不把x设为根而直接pre[x]=y的话,结果并不是连接x和y而是连接x的splay的根和y。在弹飞绵羊的题中
阅读全文
posted @ 2016-03-02 13:31
__560
阅读(298)
推荐(0)
摘要:
2002: [Hnoi2010]Bounce 弹飞绵羊 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 6706 Solved: 3522[Submit][Status][Discuss] Description 某天,Lostmonkey发明了一种超级
阅读全文
posted @ 2016-03-01 17:52
__560
阅读(411)
推荐(0)
摘要:
2049: [Sdoi2008]Cave 洞穴勘测 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 5728 Solved: 2607[Submit][Status][Discuss] Description 辉辉热衷于洞穴勘测。某天,他按照地图来到了一
阅读全文
posted @ 2016-03-01 17:08
__560
阅读(254)
推荐(0)
摘要:
这题什么情况。。。。。直接暴力加标记,复杂度o(n)啊。。。明显能过啊。。。明显是除了签到最简单的一道。。。。居然过这么少人。。。估计很多人看到merge和split以为是什么数据结构。。 #include<iostream> #include<cstdio> #include<cstring> #
阅读全文
posted @ 2016-02-24 00:09
__560
阅读(225)
推荐(0)
摘要:
题目真不难。。。 按高度从小到大加到线段树统计下次数求第k大就可以了,由于要字典序最小,所以每次把当前的尽量往前加,有k个人比它高,就两个位置,k+1和n-k,贪心取最靠前的就行了。 水题! #include<iostream> #include<cstdio> #include<cstring>
阅读全文
posted @ 2016-02-23 23:07
__560
阅读(228)
推荐(0)
摘要:
现在看这题居然直接秒了。。。去年看的时候还以为神题。。 设以第i项为结尾的lis前缀为f[i],以第j项为结尾的lis后缀为g[i],如果求出f[i]和g[j],然后枚举i,快速找到最大的满足a[j]>a[i]的g[j]就可以了。注意到如果将f[i]从后往前枚举,那么只要添加g[j]而不用删除操作了
阅读全文
posted @ 2016-02-23 20:41
__560
阅读(229)
推荐(0)
摘要:
这是去年合肥的另一道签到。。。题目其实很简单。。。仔细想想范围就能推出来了,第一二维存位置,但显然不够,所以开第三维,由于空间限制只能在和以及平方和二选一,由于平方和太大,所以只能存和。然后dp的值如果存为方差*n的话,显然还需要一维存平方和,但仔细看看式子,如果和以及平方和知道了,也就知道方差了,
阅读全文
posted @ 2016-02-23 19:54
__560
阅读(294)
推荐(0)
摘要:
补了下去年网络赛的题。。。很无语的感觉。。。。 这道签到去年做了4个小时,WA了十次。。。。后来还是队友过的,赛后由于网络赛打得太惨,也没敢去补题。。。 现在再来看这题,,,好简单。。。。 #include<iostream> #include<cstdio> #include<cstring> #
阅读全文
posted @ 2016-02-23 19:47
__560
阅读(302)
推荐(0)
摘要:
重写了一遍,从TLE进不到WA了。。。我实在找不出错误在哪了。。。先放着,等过段时间刷顺利指南的时候再来看这题。。 #include<bits/stdc++.h> #define REP(i,a,b) for(int i=a;i<=b;i++) #define MS0(a) memset(a,0,s
阅读全文
posted @ 2016-02-23 17:24
__560
阅读(358)
推荐(0)
摘要:
1500: [NOI2005]维修数列 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 10482 Solved: 3234[Submit][Status][Discuss] Description Input 输入的第1 行包含两个数N 和M(M ≤20
阅读全文
posted @ 2016-02-22 18:14
__560
阅读(278)
推荐(0)
摘要:
C. Famil Door and Brackets time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output As Famil Door
阅读全文
posted @ 2016-02-22 16:38
__560
阅读(308)
推荐(0)
摘要:
虽然刷了4章usaco,但跟没有刷一样,唯一有印象的就是判大素数模版,反着做背包的dp,反着做数位dp(逆向思维),对lis统计的判重,还有连通分量有了一点大概的印象,还有更加坚信了构造就是找规律,然后提高了一下代码能力,没了。 这个寒假最失败的一点就是把白天和夜晚倒过来过,白天睡觉,晚上刷题,这样
阅读全文
posted @ 2016-02-22 00:09
__560
阅读(220)
推荐(0)
摘要:
dp+线段树优化,水题 有几个要注意的地方,首先是注意到Pi可以提出来,所以不用double,降低进度误差;接着考虑提出来后会不会爆longlong,最大情况n*a[i]=n*r*r*h=1e5*1e4*1e4*1e4=1e17,显然不会,于是就可以愉快地用longlong了。。 被自己蠢哭了。。。
阅读全文
posted @ 2016-02-21 22:52
__560
阅读(247)
推荐(0)
摘要:
直接搞棵splay就行了,不要把光标弄到树中而是把光标当成询问或操作区间的端点标志这样会简单很多。 7点40分写到9点20分,包括调试总共花了一个小时40分钟,这次是自己独立调出来的,总算对splay有一定的了解。 设计操作:区间翻转,区间删除和插入,取第k个数。 这里的区间插入不是一个一个插,那样
阅读全文
posted @ 2016-02-20 09:26
__560
阅读(244)
推荐(0)
摘要:
先预处理编个顺序,然后用splay搞了。 涉及的操作:区间翻转,区间最小值查询。 //#include<bits/stdc++.h> #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<al
阅读全文
posted @ 2016-02-20 03:03
__560
阅读(265)
推荐(0)
摘要:
看清楚题意后居然一A了,这么长的代码一A对我来说还真是少见。 突然弄懂了数组版splay的内存池的原理,还是很简单的。。。 #include<bits/stdc++.h> #define REP(i,a,b) for(int i=a;i<=b;i++) #define MS0(a) memset(a
阅读全文
posted @ 2016-02-19 08:30
__560
阅读(226)
推荐(0)
摘要:
线段树的题目,拿来练第一道splay维护区间。 像这种基本的操作修改查询,我现在应该能在20分钟手写好splay再用10分钟调试,基本上不靠模版30分钟应该能出。 //#include<bits/stdc++.h> #include<iostream> #include<cstdio> #inclu
阅读全文
posted @ 2016-02-19 04:41
__560
阅读(441)
推荐(0)