- 博客(31)
- 收藏
- 关注
原创 |题目分类|BZOJ、Poj、Hdu题目分类
BZOJ:[数论]BZOJ 1477:裸的扩展欧几里得算法 [线段树]BZOJ 1593:经典线段树模型 [2-SAT]BZOJ 1823:2-SAT经典模型 [平衡树]BZOJ 2028:求大于x的最小值,set可以过 [树形DP]BZOJ 2060:经典树形DP模型 [2-SAT]BZOJ 2199:2-SAT经典模型 [树形DP, 缩点]BZOJ 2427:缩点后跑树上背包 [平
2017-02-07 15:27:58 2534
原创 |BZOJ 3211|树状数组|并查集|花神游历各国
BZOJ传送门 树状数组裸题,但是因为sqrt的速度很慢,所以我们在一个数为1或者为0就删掉它(用并查集维护) ps:交题时注意文件声明部分要注释掉!坑死了#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<iostream>#define ms(i,j) memset(i, j, si
2017-02-25 17:09:27 564
原创 |BZOJ 1452|树状数组|[JSOI2009]Count
BZOJ传送门 可以每一种颜色建一个二维树状数组,数据O(n2c)O(n^2c)的空间复杂度可以接受#include<cstdio>#include<cstring>#include<algorithm>#define ms(i,j) memset(i, j, sizeof i);using namespace std;int n,m,Q;int a[300 + 5][300 + 5]
2017-02-25 15:36:29 600
转载 欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-02-25 15:27:11 238
原创 |洛谷|树形DP|P1270 “访问”美术馆
Luogu传送门 树形DP,设f[i][j]f[i][j]为以ii为根花费jj时间的最优值。 转移方程见程序 注意:要在规定时间回到起点,警察到来之前就必须!注意是之前!#include<cstdio> #include<algorithm> #include<cstring> #include<vector>#define ms(i,j) memset(i,j, sizeof
2017-02-22 21:48:01 744 1
原创 |poj 3311|状压DP|Hie with the Pie
poj传送门 经典TSP问题,可以使用状态压缩完成。#include<cstdio> #include<algorithm> #include<cstring> #include<vector>#define ms(i,j) memset(i,j, sizeof i);using namespace std;const int MAXN = 10 + 5;const int Z
2017-02-12 21:19:20 540
原创 |算法讨论|状压DP/位运算 学习笔记
题目 [状压DP]poj 3311:经典TSP问题模板及讲解状态压缩动态规划就是用于某种时候DP的状态难以表示时,使用二进制进行存储状态的一种动态规划。通常会用位运算进行操作: 位运算: 1、对xx取反:~x 2、x+1(x为偶数)x+1(x为偶数):x|1 3、2x2^x:1<<x 4、2−x2^{-x}:1>>x 5、x的对应值x的对应值(例如00对11,22对33,88对99):
2017-02-12 16:27:20 1424
原创 |BZOJ 1012|线段树|[JSOI2008]最大数maxnumber
BZOJ传送门 水题一道,线段树维护即可。(省选题出模板?)#include<cstdio> #include<algorithm> #include<cstring> #include<vector>#define ms(i,j) memset(i,j, sizeof i);using namespace std;const int MAXM = 200000+5;int m
2017-02-11 22:03:27 540
原创 |BZOJ 2330|差分约束|[SCOI2011]糖果
BZOJ传送门 差分约束。 裸题不讲了。可以看我的差分约束学习笔记。 注意这题直接把所有点加进来做,否则TLE,还要开long long#include<cstdio> #include<algorithm> #include<cstring> #include<vector>#include<queue>#define ms(i,j) memset(i,j, sizeof i
2017-02-11 18:17:22 473
原创 |算法讨论|差分约束 学习笔记
题目 [差分约束]BZOJ 2330:用最短路算法求最长路求差分约束 [差分约束]poj 1201:用最短路算法求最长路求差分约束模板及讲解差分约束就是给出一些形如x−y≥cx-y \ge c的约束,问你是否有解,或求最大、最小解。该问题可以转化为图上最短路问题。1、求最大差 建立形如 A−B<=CA-B<=C 的不等式,在原图中添加边 B−>AB->A 边权为 CC 对建好的图跑最短路,如
2017-02-11 16:20:29 514
原创 |poj 1201|差分约束|Intervals
poj传送门 差分约束。 设dis[i]dis[i]为i−1i-1包含在ZZ集合内数的个数 由题意得,dis[b]−dis[a−1]≥cdis[b]-dis[a-1]\ge c, 由隐含条件每个数只出现一次或不出现,得0≤dis[i]−dis[i−1]≤10 \le dis[i]-dis[i-1] \le 1 整理后得, dis[b]−dis[a−1]≥cdis[i]−dis[i−1]≥
2017-02-11 16:06:54 369
原创 |Hdu 1828|线段树|Picture
Hdu传送门 线段树扫描线求周长并,看这篇好文学习: http://blog.csdn.net/tomorrowtodie/article/details/52048323#include<cstdio> #include<algorithm> #include<cstring> #include<vector>#define ms(i,j) memset(i,j, sizeof
2017-02-11 00:02:41 447
原创 |Hdu 1542|线段树|Atlantis
Hdu传送门 线段树离散化以后进行扫描线。 http://www.cnblogs.com/scau20110726/archive/2013/03/21/2972808.html 这篇文章讲得很好,详解看以上网站#include<cstdio> #include<algorithm> #include<cstring> #include<vector>#define ms(i,j
2017-02-10 18:06:20 460
原创 |poj 2528|线段树|Mayor's posters
poj传送门 线段树离散化区间后区间染色,注意染区间不是点#include<cstdio> #include<algorithm> #include<cstring> #include<vector>#define ms(i,j) memset(i,j, sizeof i);using namespace std;const int MAXN = 10000 + 5; cons
2017-02-09 23:46:55 361
原创 |poj 2723|2-SAT|二分|Get Luffy Out
poj传送门 二分枚举m,然后建2-SAT图即可。#include<cstdio> #include<algorithm> #include<cstring> #include<vector>#define ms(i,j) memset(i,j, sizeof i);using namespace std;const int MAXM = 2100, MAXN = 1100;s
2017-02-09 17:46:19 424
原创 |Hdu 2087|KMP|剪花布条
Hdu传送门 KMP即可。注意不可重叠,用一个lastlast记录上一个不重复匹配成功的位置,之后如果匹配成功,记当前位置为ii,如果i−last>模式串长度i-last>模式串长度,即匹配成功,更新lastlast#include<cstdio> #include<algorithm> #include<cstring> #define ms(i,j) memset(i,j, siz
2017-02-08 12:05:21 341
原创 |BZOJ 2427|树形DP|强连通分量|[HAOI2010]软件安装
BZOJ传送门 根据题目可以构造一幅图,可以得知这个图是一些森林和环,我们对图缩点,建立虚结点,使所有没有入度的强连通分量连接虚结点,再进行树上背包即可。#include<cstdio> #include<algorithm> #include<cstring> #include<vector>#include<stack> #define ms(i,j) memset
2017-02-07 18:09:21 523
原创 |算法讨论|AC自动机 学习笔记
题目 [AC自动机]Hdu 2222:裸的AC自动机模板及讲解在学习AC自动机之前需要熟练掌握WA自动机、RE自动机与TLE自动机//伪代码(仅主题部分)procedure find(char *s)begin //枚举匹配文本的每个字符 for i = 1 -> strlen(s) do j <- ch[j][c] //其中c是s[i]-'a'
2017-02-07 09:59:49 481
原创 |Hdu 2222|AC自动机|Keywords Search
Hdu传送门 AC自动机模板题,注意重复关键字的处理#include<cstdio> #include<algorithm> #include<cstring> #include<queue> #define ms(i,j) memset(i,j, sizeof i); using namespace std;const int MAXN = 10000 + 5
2017-02-07 09:55:46 420
原创 |BZOJ 1823|2-SAT|[JSOI2010]满汉全席
BZOJ传送门 经典2-SAT模型,注意输入#include<cstdio> #include<algorithm> #include<cstring> #include<vector> #define ms(i,j) memset(i,j, sizeof i); using namespace std;const int MAXN = 100 + 5;str
2017-02-06 17:09:15 587
原创 |poj 2406|KMP|Power Strings
poj传送门 可以知道,在一个字符串里的最短周期是ms=n−f[i]ms=n-f[i], 其中ff是kmp中的失配函数。 如果ms|nms|n, 那么输出n/ms, 否则输出1.#include<cstdio> #include<algorithm> #include<cstring> #define ms(i,j) memset(i,j, sizeof i);
2017-02-06 15:39:19 423
原创 |算法讨论|KMP 学习笔记
题目 [KMP]poj 2406:kmp求最短循环节(周期) [KMP]poj 3461:KMP模板题 [KMP]Hdu 2087:kmp模板题模板及讲解输入两个字符串s1和s2,输出s2在s1中出现的位置(位置从0开始) inputabcdefghidefdddeeeffdefeddefoutput3920实质上是MP算法#include<cstdio> #include<a
2017-02-06 13:51:35 962
原创 |BZOJ 2028|平衡树|[SHOI2009]会场预约
BZOJ传送门 luogu免权限地址 Set求大于x的最小值的模板题。注意set.lower_bound()如果找不到就会返回set.end()#include<cstdio> #include<algorithm> #include<cstring> #include<set> #define ms(i,j) memset(i,j, sizeof i);
2017-02-05 17:32:34 731
原创 |算法讨论|2-SAT 学习笔记
题目 [2-SAT]BZOJ 1823:2-SAT经典模型 [2-SAT]BZOJ 2199:2-SAT经典模型 [2-SAT, 二分]poj 2723:二分后建2-SAT图判断可行性模板及讲解2-SAT模板题:BZOJ 2199[Usaco2011 Jan]奶牛议会#include<cstdio> #include<algorithm> #include<cstring>
2017-02-04 23:22:46 444
原创 |BZOJ 2199|2-SAT|[Usaco2011 Jan]奶牛议会
BZOJ传送门 luogu免权限地址 2-SAT模板题,用2-SAT建图后,枚举每个议案能否通过#include<cstdio> #include<algorithm> #include<cstring> #include<vector> #define ms(i,j) memset(i,j, sizeof i); using namespace std;
2017-02-04 23:20:37 815
原创 |算法讨论|拓扑排序 学习笔记
题目 [拓扑排序]Hdu 1285:裸的拓扑排序模板及讲解hdu1285#include<cstdio> #include<algorithm> #include<cstring> #include<vector> #define ms(i,j) memset(i,j, sizeof i); using namespace std; const int M
2017-02-04 17:08:09 447
原创 |算法讨论|平衡树 学习笔记
题目 [平衡树]BZOJ 2028:求大于x的最小值,set可以过 [平衡树]BZOJ 3224:Treap、Splay实现名次树模板及讲解平衡树:Treap,Splay,SetTreap,Splay实现名次树:BZOJ 3224 普通平衡树#include<cstdio> #include<algorithm> #include<cstring> #include<v
2017-02-04 13:01:21 315
原创 |BZOJ 3224|平衡树|Tyvj 1728 普通平衡树
BZOJ传送门 平衡树模板题,注意相同元素的处理。 Treap:#include<cstdio> #include<algorithm> #include<cstring> #include<vector> #define ms(i,j) memset(i,j, sizeof i); using namespace std; struct node{
2017-02-04 12:53:52 645
原创 |poj 1006|中国剩余定理|Biorhythms
poj传送门 裸的中国剩余定理,注意一下负数的情况即可#include<cstdio> #include<algorithm> #include<cstring> #define ms(i,j) memset(i,j, sizeof i); #define ll long longusing namespace std;int p, e, i, d;int
2017-02-03 23:17:24 830
原创 |BZOJ 1477|扩展欧几里得算法|青蛙的约会
BZOJ传送门 luogu免权限地址 扩展欧几里得算法,由题可列(x+m∗t)≡(y+n∗t)(modL)(x+m*t)\equiv (y+n*t)\pmod L,其中tt为所求 由同余性质得:(x+m∗t)−(y+n∗t)=Lk(x+m*t)-(y+n*t)=Lk 变形得:(n−m)t+lk=x−y(n-m)t+lk=x-y,则转换为ax+by=cax+by=c的形式#include<cs
2017-02-02 22:08:09 781
原创 |算法讨论|数论数学 学习笔记
题目 [数论]BZOJ 1477:裸的扩展欧几里得算法 [数论]poj 1006:裸的中国剩余定理模板及讲解欧几里得算法求gcd(a, b),即a和b的最大公倍数 欧几里得算法: gcd(a,b)=gcd(b,a%b)gcd(a, b) = gcd(b, a \% b)int gcd(int a, int b){ if (b==0) return a; gcd(b, a%b
2017-02-01 12:11:35 581
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人