12 2016 档案

摘要:思路: 首先用manacher可以求出以i和i+1中间为对称轴,最长回文串能扩增的长度p[i]。然后4*(y-x)能更新答案,当且仅当y≤x+p[x]/2且y-p[y]≤x。按i-p[i]将所有点排序,依次插入set中,查询x+p[x]/2的前驱更新答案,时间复杂度O(n*logn... 阅读全文
posted @ 2016-12-28 15:28 SiriusRen 阅读(116) 评论(0) 推荐(0)
摘要:思路: i~n加到Trie树里 经过的边权+1 DFS一遍 搞定~//By SiriusRen#include #include #include using namespace std;#define N 3005int n,all;char a[N];struct Tri... 阅读全文
posted @ 2016-12-28 15:25 SiriusRen 阅读(95) 评论(0) 推荐(0)
摘要:求完网络流以后 tarjan一发 判一判//By SiriusRen#include #include #include #include #include using namespace std;#define N 122222int n,m,s,t;struct Node{in... 阅读全文
posted @ 2016-12-28 15:23 SiriusRen 阅读(255) 评论(0) 推荐(0)
摘要:思路: 求一遍网络流 在残余网络上DFS 从起点DFS 从终点把边反向DFS 一个边跟起点连通 跟终点反向的边连通 ans++注:此题不能用tarjan 因为有边权为0的边 //By SiriusRen#include #include #include #include ... 阅读全文
posted @ 2016-12-28 15:21 SiriusRen 阅读(267) 评论(0) 推荐(0)
摘要:思路:LCT的基本操作//By SiriusRen#include #include #include using namespace std;#define N 233333int n,m,xx,yy,rev[N];char op[11];struct Tree{int l,r,... 阅读全文
posted @ 2016-12-27 18:01 SiriusRen 阅读(122) 评论(0) 推荐(0)
摘要:水题,, 但是被卡了一会儿 woc一行内还能相互攻击啊。。。 竟然没想到,,,,,,//By SiriusRen#include #include #include using namespace std;#define int long longint f[11][111][... 阅读全文
posted @ 2016-12-27 18:00 SiriusRen 阅读(169) 评论(0) 推荐(0)
摘要:模拟退火的第一题~//By SiriusRen#include #include #include using namespace std;int cases,X,Y,M;struct Point{double x,y,dis;}point[1005],b[33],ans,t;do... 阅读全文
posted @ 2016-12-27 17:57 SiriusRen 阅读(266) 评论(0) 推荐(0)
摘要:思路: 退火就好了…… 1.强烈建议题目名称改为“吊打出题人” 2.这种题放oj上啥心态。。。—–hzwer二分TLE和WA 终于AC了……//By SiriusRen#include #include #include using namespace std;int n,XX... 阅读全文
posted @ 2016-12-27 17:55 SiriusRen 阅读(127) 评论(0) 推荐(0)
摘要:思路: 求凸包: 先按照x轴排个序 从左往右扫一遍 找到上凸壳 (用叉积) 再从右往左扫一遍 求下凸壳搞个旋转卡壳就好啦~嗯 我手懒 用的C++ Complex库 巨好用!//By SiriusRen#include #include #include using names... 阅读全文
posted @ 2016-12-27 11:24 SiriusRen 阅读(142) 评论(0) 推荐(0)
摘要:思路: 1.按照题意求最小割 转换成最大流用Dinic解 2. 转换成对偶图 求最短路 Dinic://By SiriusRen#include #include #include #include using namespace std;#define N 1100000int ... 阅读全文
posted @ 2016-12-26 08:55 SiriusRen 阅读(453) 评论(0) 推荐(0)
摘要:From lydrainbowcat//By SiriusRen#include #include #include #include using namespace std;#define N 2222#define M 999999#define mem(x,k) mems... 阅读全文
posted @ 2016-12-25 22:10 SiriusRen 阅读(103) 评论(0) 推荐(0)
摘要:思路: 源->1连费用0 流量2 其它的边 费用w 流量1 n->汇 费用0 流量2 最小费用流 搞定~//By SiriusRen#include #include #include #include using namespace std;#define N 2010#defi... 阅读全文
posted @ 2016-12-25 17:41 SiriusRen 阅读(154) 评论(0) 推荐(0)
摘要:思路: (from mhr)//By SiriusRen#include #include #include #include using namespace std;#define N 444#define M 2222int first[N],next[M],v[M],edg... 阅读全文
posted @ 2016-12-25 17:38 SiriusRen 阅读(149) 评论(0) 推荐(0)
摘要:题意: 题目描述:在公元3141年人类的足迹已经遍布银河系。为了穿越那巨大的距离,人类发明了一种名为超时空轨道的技术。超时空轨道是双向的,连接两个星系,穿越轨道需要一天的时间。然而这个轨道只能同时给一艘飞船使用,也就是说,每条轨道每天只能有一艘飞船穿越。现在IBM公司要把K(K≤5... 阅读全文
posted @ 2016-12-25 17:34 SiriusRen 阅读(220) 评论(0) 推荐(0)
摘要:思路: n^2枚举(必须要n^2枚举啊)+拆点特此嘲讽网上诸多垃圾题解,你们许多都是错的 —yyh//By SiriusRen#include #include #include #include using namespace std;#define N 5555int n,m... 阅读全文
posted @ 2016-12-22 22:57 SiriusRen 阅读(273) 评论(0) 推荐(0)
摘要:思路: 就是一个多重匹配 把每个防御塔拆成 拆成第j次 发射的导弹 跑个网络流//By SiriusRen#include #include #include #include #include using namespace std;#define N 555555int n,m... 阅读全文
posted @ 2016-12-22 17:08 SiriusRen 阅读(118) 评论(0) 推荐(0)
摘要:(我不会告诉你我是抄的黄学长的题解的……)//By SiriusRen#include #include #include #include using namespace std;#define int long long#define N 100050int n,m,a[N],... 阅读全文
posted @ 2016-12-20 21:55 SiriusRen 阅读(138) 评论(0) 推荐(0)
摘要:思路:不能再裸的裸题……//By SiriusRen#include #include #include using namespace std;#define N 55555int n,m,k,a[N],s[N],pos[N],ans;struct Ask{int l,r,ans... 阅读全文
posted @ 2016-12-20 21:54 SiriusRen 阅读(98) 评论(0) 推荐(0)
摘要:思路: 莫队+树状数组(据说此题卡常数)yzy写了一天(偷笑)复杂度有点儿爆炸 O(msqrt(n)logn)//By SiriusRen#include #include #include #include using namespace std;#define N 1005... 阅读全文
posted @ 2016-12-20 21:53 SiriusRen 阅读(181) 评论(0) 推荐(0)
摘要:思路: 用到了左偏树合并复杂度是logn的性质一开始先BFS一遍 打标记的左偏树//By SiriusRen#include #include #include using namespace std;#define N 600050#define int long longint... 阅读全文
posted @ 2016-12-20 16:58 SiriusRen 阅读(226) 评论(0) 推荐(0)
摘要:思路: 左偏树里面掺了一些并查集的应用这里放一份左偏树的代码模板 重点就是merge函数了……int merge(int k1,int k2){ if(!k1||!k2)return k1+k2; if(tr[k1].w#include #include using n... 阅读全文
posted @ 2016-12-20 14:57 SiriusRen 阅读(198) 评论(0) 推荐(0)
摘要:思路: 恶心的数据结构题……首先 我们 链剖 把树 变成序列 再 套一个 区间 第K大就好了…… 复杂度(n*log^4n)//By SiriusRen#include #include #include using namespace std;#define N... 阅读全文
posted @ 2016-12-12 10:46 SiriusRen 阅读(173) 评论(0) 推荐(0)
摘要:注意判断 三个条件都一样的…… (CDQ分治 其实并不是很难理解 只是想不到……)CDQ分治://By SiriusRen#include #include using namespace std;#define N 888888int n,k,tree[N],tot,ans... 阅读全文
posted @ 2016-12-11 15:43 SiriusRen 阅读(237) 评论(0) 推荐(0)
摘要:第一次写cdq分治 感谢hhd&lty 这20亿对CP的指导(逃)其实 就是 递归看左半部分对右半部分的贡献 (树状数组写挂了……临时改的线段树【大写的尴尬】)//By SiriusRen#include #include #include using namespace... 阅读全文
posted @ 2016-12-10 23:24 SiriusRen 阅读(175) 评论(0) 推荐(0)
摘要:思路: 建图我根本没有想到啊…….(我是不会告诉你我借鉴了一下题解的思路)把每个人拆成喜欢的和不喜欢的点男 喜欢 向 男 不喜欢 连 边权为k的边如果男喜欢女 那么 男喜欢向 女喜欢 连 1如果男 不喜欢女 那么 男不喜欢 向 女不喜欢 连1男 喜欢 向 男不喜欢 连k女... 阅读全文
posted @ 2016-12-10 11:58 SiriusRen 阅读(147) 评论(0) 推荐(0)
摘要:思路: 网络流 建边比较麻烦//By SiriusRen#include #include #include #include using namespace std;#define N 100050int r,c,d,n=66666,tmp;char a[105][105],b[... 阅读全文
posted @ 2016-12-09 20:59 SiriusRen 阅读(152) 评论(0) 推荐(0)
摘要:我只是想找个treap的练习题……每回找到lower_bound 就好啦//By SiriusRen#include #include #include using namespace std;#define int long longint n,m,a[200500],sum[... 阅读全文
posted @ 2016-12-09 16:34 SiriusRen 阅读(195) 评论(0) 推荐(0)
摘要:思路: 需要维护一个栈的AC自动机……. 要求出来 最后的栈顶是在自动机上的哪个节点。if(!ac.ch[st[tp-1]][a[i]-'a']) st[tp]=ac.ch[ac.f[st[tp-1]]][a[i]-'a'];else st[tp]=ac.ch[st[tp-1]]... 阅读全文
posted @ 2016-12-09 16:32 SiriusRen 阅读(213) 评论(0) 推荐(0)
摘要:思路: treap (算是基本操作吧…..) 加减的操作数很少 就暴力好啦 每回判断一下最小的数是不是比M小 如果是 就删,继续判断搞定。//By SiriusRen#include #include #include using namespace std;int n,M,... 阅读全文
posted @ 2016-12-09 16:25 SiriusRen 阅读(175) 评论(0) 推荐(0)
摘要:思路: AC自动机 不可以存下所有的字符串 怎么办呢 维护一个sum 使路径上所有经过的点 sum[x]++在求fail指针的时候 顺便搞了个BFS序吧 倒着(顺着fail指针)往回加一下sum 就好啦//By SiriusRen#include #include... 阅读全文
posted @ 2016-12-09 16:17 SiriusRen 阅读(132) 评论(0) 推荐(0)
摘要:思路: 我们先对所有读进来的T建一个AC自动机 因为走到一个禁忌串就需要回到根 所以呢 搞出来所有的结束点 或一下 fail指针指向的那个点然后我们就想转移 a[i][j]表示从i节点转移到j节点的概率 如果能够转移到 ans+=1÷alphabet 这里有一个trick ... 阅读全文
posted @ 2016-12-09 16:14 SiriusRen 阅读(198) 评论(0) 推荐(0)
摘要:BZOJ1901: 线段树套线段树做法: (外层线段树 里层动态开节点的权值线段树) 有一个小小的trick 可以省掉二分变成nlog^2n的 就是把查询的区间都取出来… logn个一起走… 2016.2.14Upd//By SiriusRen#include #include ... 阅读全文
posted @ 2016-12-05 18:51 SiriusRen 阅读(161) 评论(0) 推荐(0)
摘要:(代码无比丑陋)//By SiriusRen#include #include using namespace std;int n,m,L,R,xx,tx,t,root[3000050],size,ans,op,inf=0x3fffffff,a[500050];struct Tre... 阅读全文
posted @ 2016-12-05 00:34 SiriusRen 阅读(184) 评论(0) 推荐(0)
摘要:Treap://By SiriusRen#include #include using namespace std;int n,op,xx,ans,size,root;struct Treap{int ch[2],v,cnt,rnd,sz;}tr[300000];void Upd(... 阅读全文
posted @ 2016-12-04 21:36 SiriusRen 阅读(228) 评论(0) 推荐(0)