排序:
默认
按更新时间
按访问量
RSS订阅

数位dp模板

数位dp其实就是记忆化dfs也没什么好说的 现在看一个题,让你求出所有l到r的圆数,圆数就是这个数字转化成2进制后0的个数比1的个数多 开始写错了,就是没注意前导0的问题 dfs一般要传4个参数,一个是第几位,一个是状态,一个是需不需要上界,一个是有没有前导0 #include #inc...

2017-10-24 15:28:30

阅读数 202

评论数 0

Lis模板

#include #include #include #define maxn 1000 using namespace std; int ans[maxn],a[maxn],len; int Search(int data){//我们要找到的是最小的那个>=mid的ans的位...

2017-10-24 14:19:30

阅读数 164

评论数 0

差分约束模板

差分约束一般是用来求最大值最小值问题的 那么就分为两个问题 求最小值,把所有不等式化为>=然后求最长路 求最大值,把所有不等式化为 如果碰到 然后就是单纯的图论题了 现在来看poj1716 Description An ...

2017-10-24 12:55:52

阅读数 136

评论数 0

莫队算法模板

codeforces 617E 题意:给你n个数,有m个询问,问[l,r]之间有多少对i和j满足a[i]^a[i+1]^...^a[j]=k; 这个题目就是我先求出前缀异或和 然后i到j的异或和就是a[j]^a[i-1] 假设我们已知st到en的答案(ans),然后我们开一个Map数组,M...

2017-10-23 20:33:49

阅读数 165

评论数 0

线段树模板

#include #include #include #include #define maxn 1000 #define inf 1000000 using namespace std; class segtree { public: int val,addmark; }; ...

2017-10-22 12:54:39

阅读数 106

评论数 0

再看区间dp

区间dp就是我知道区间长度为len-1的所有状态,然后我可以通过小于len的的状态转移到区间长度为len的状态 一般是在外层循环遍历len,内层循环遍历起点来做的 但是这次做了一个很特别的题目 题目描述:   在x轴上有n个客人叫外卖,每个顾客因为追的番更新进度不同,所以在等外买的时间里每秒...

2017-10-17 15:27:56

阅读数 197

评论数 0

凸包的判定及将凸包中的点逆时针存在数组中

数据结构: struct Point { double x; double y; Point(double a = 0, double b = 0) : x(a), y(b) {} friend bool operator < (const P...

2017-10-15 18:57:44

阅读数 125

评论数 0

再看斜率优化打牌

emmmm,马上要比赛了,最近正在复习打牌 又看了遍斜率优化dp,感觉对他的理解上了一个新的高度呐 斜率优化dp可以优化掉一个n 一般来说,如果要求一个状态时要遍历前面已经求过的所有状态的话,就可以考虑使用斜率优化 再求第k个状态时对于前面的所有状态如果k2比k1更优就有 Y(k2)-Y(k1...

2017-10-10 20:26:41

阅读数 235

评论数 0

KMP模板

本来想直接copy匡斌的模板来着的 但是匡斌的模板会RE,next的原因,现在就稍微改了改拿过来了 #include #include using namespace std; const int N = 1000002; int Next[N]; char S[N], T[N]; in...

2017-10-02 09:47:35

阅读数 200

评论数 0

最小费用最大流模板

#include using namespace std; #define INF 0x3f3f3f3f typedef long long LL; const int M=2010;//边数注意啦,我们这东西是有逆向边的,所以边数要×2哦 const int N=510;//点数 stru...

2017-09-30 20:37:15

阅读数 97

评论数 0

Tarjan强连通分量模板

#include #include #include #include #include #define maxn 100100 #define maxm 500100 #define inf 0x3f3f3f3f using namespace std; struct Edge {...

2017-09-27 20:46:59

阅读数 176

评论数 0

单纯最大流(两个给定节点的最小割)问题的最优解法

运用了各种不明所以的优化 反正我们会板子就行啦 然后再说几点最大流的用处 点i和点j的最大流其实是等于把点i和点j分开的最小割的 你想啊,从i到j有那么多流量对吧 如果我想要让i一滴水都留不到j 那么我至少要割掉最大流那么多的流量吧,具体证明。。。。我忘了,反正我等弱鸡队伍用个板子就行 还...

2017-09-20 18:50:30

阅读数 160

评论数 0

动态建线段树,hdu6183,参考杰少的博客

我的代码不知为什么t掉了,这个等杰少回来再去问问他 先把我t掉的代码放在这里,主要是学一下动态建树的思想 这个是非常省空间的 这题目主要思路就是对每个颜色建一颗线段树,保存其y1,y2,范围内的点到y轴的最小距离 #include #include #include #include #d...

2017-09-02 18:09:05

阅读数 349

评论数 0

主席树静态查找区间第k小模板(并没有杰少详细)即讲解

#include #include #include #include #include #include #define maxn 400100 using namespace std; struct Data { int val,id; }; struct Tree ...

2017-08-29 14:55:00

阅读数 232

评论数 0

数位dp 求l-r(10进制) 在k进制中有多少个回文数的模板

#include #include #include #include using namespace std; #define LL long long LL l, r; int a[66]; LL dp[66][66][40]; LL dfs(int len, int l, int r...

2017-08-20 14:43:01

阅读数 581

评论数 0

并查集算法回顾

并查集就是有关集合的合并和查找算法 对于每个集合来说我们都有一个标志 这个集合中的所有元素都指向这个标志 我们可以定义a的标志为Set【a】 我们就可以利用这些标志来进行集合的合并和查找 在最开始的时候要memset(Set,-1,sizeof(Set)); 至于为什么后面可以自己体会 现在...

2017-03-07 19:46:16

阅读数 228

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭