- 博客(14)
- 收藏
- 关注
原创 广二集训总结
二十五、A、50分很好想:讨论一下每个点的贡献,用树状数组维护一下答案100pts:预处理建出点分树,每个节点开一个树状数组维护信息,在每一层中都维护每个节点的儿子中有几个是白色的,其余的分类讨论。B、问题可以转化成每个点的期望和。数形结合求一下就行了。C、首先将图转成对偶图。一个点被经过当且仅当以它为右端点的最长的线段在对偶图上对应的边被割。这样就变成了“如果割了某一条边,那么另...
2020-09-16 17:01:16
143
原创 【模板】小根堆
https://www.luogu.com.cn/problem/P3378#include<bits/stdc++.h>using namespace std;int n, op, x; priority_queue<int>que;int main() { cin >> n; while(n--) { cin >> op; if(op == 1) { cin >> x; que.push(-x); }
2020-09-16 17:00:54
132
原创 集训小结
D1:模拟赛:T2并没有拿到暴力分,RE了,原因是没有判一些特殊情况(比如除以0), 以后应该注意。课程:今天是图论专题,我一直觉得图论是我的弱项,不过讲的题已经听过一遍了,但感觉以前学的还是不扎实。最短路:主要要攻克拆点、把一些其他题转化成图论这两类题。 D2:模拟赛:就写了两题,还被卡常。以后写题在做完后一定要注意常数的优化,这会帮我们拿到更多分。还有,每个题都要尽...
2018-12-24 15:35:02
468
原创 bzoj2115
dfs出任意一条到n的异或和,以及所有环的异或和,线性基求最大值。#include<bits/stdc++.h>using namespace std;typedef long long ll;int n, m, tl, hed[200005], tot;ll huan[200005], d[200005], p[100];bool vis[200005];struc...
2018-12-09 21:45:23
243
原创 bzoj2460 线性基模板
#include<bits/stdc++.h>using namespace std;typedef long long ll;int n;ll ans;ll p[1005];struct node { ll id, w;}e[1005];bool cmp(node x, node y) { return x.w > y.w;}ll pd(ll x) {...
2018-12-09 21:19:09
152
原创 求每个前缀有多少种本质不同的回文串
回文字动机每次新建点就相当于增加了一种回文串。#include<bits/stdc++.h>using namespace std;int n, tot, las, fil[100005], nx[100005][30], len[100005];int rt, now, sum;char s[100005];int newnode(int l) { len[tot]...
2018-12-09 20:48:55
473
原创 bzoj3676
回文字动机模板#include<bits/stdc++.h>using namespace std;typedef long long ll;char s[300005];int n, las, fil[300005], nx[300005][35], len[300005], tot, rt, now, cnt[300005];ll ans;int newnode(...
2018-12-09 20:47:10
155
原创 bzoj4405
将每个框拆成三个点。球向三个点连边,框内连两个边(都连和连两个效果是一样的)。若拆点后有两点连了则说明小于等于1,贡献为1,减去每个球的贡献就是答案。#include<bits/stdc++.h>using namespace std;int n, m, tl, hed[5005], mp[5005], cnt, f[5005], jb[5005], pre[5005...
2018-12-08 17:16:10
157
原创 带花树
#include<bits/stdc++.h>using namespace std;int n, m, tl, hed[505], mp[505], cnt, f[505], jb[505], pre[505];int inx, vis[505];struct node { int v, nxt;}e[500005];void add(int u, int v) {...
2018-12-08 15:46:03
154
原创 bzoj3732
//先求最小生成树,顺便维护max,再求lca取max就行。 //唯一奇怪的是这份代码e数组(记录最原始的图)中nxt根本没用上,但去掉以后就会wa,加上就ac,至今没搞明白为啥。。。求懂的
2018-02-01 23:36:56
298
原创 bzoj1433(匈牙利水题)
上周模拟赛由于二分图不熟白白将这个题拱手送出。。。今天来一雪前耻。说下建图:把最终在校的学生连向和他关系好的人的床和自己的床,然后做二分图匹配即可。二分图细节:if(!mapp[i]||xiongyali(mapp[i])) { mapp[i]=x; return true;}①注意if语句中的顺序,递归在后②注意xiongyali()里是mapp[i]而不是i,这
2018-01-26 23:58:09
219
原创 并查集专题
这篇博客来谈谈我目前对并查集的主要应用(随着学习的深入会不断补充):1、最基本的当然就是在同一个集合里的东西2、在一个图里联通的两个点3.一条线上连续区间的端点(bzoj1202,bzoj2054)4、不在同一个集合的点,建立补集,合并f[i]与f[j+n](noip2010,bzoj1370)5、带权并查集:维护并查集的同时维护另一个信息(bzoj1202)
2018-01-26 22:00:50
284
原创 bzoj1202(第一篇博客,大家快来捧场吧)
1、一般碰到连续区间的题,可以用并查集,把他的祖先记为能到达的最长区间的端点(通常为右端点);2、求两个区间的差不一定要硬生生地求,如果有一种比较优的算法能记录这两个区间加上另一个重复的区间,那么减的时候可以抵消掉重复区间,对答案没影响。3、该题中,f[x]代表以x+1为左端点所在最长区间最右端点,l[x]代表以x+1为左端点所在最长区间的权值(注意是x+1)。记录时做这两步:①若祖先
2018-01-25 23:05:38
319
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人