- 博客(14)
- 收藏
- 关注
原创 扩欧模板
#pragma GCC optimize(3)#include<bits/stdc++.h>#define mst(a,b) memset(a,b,sizeof(a))#define For(i, k, j) for(int i = (k); i <= (j); i++)#define INF 2147483647/3#define ll long longusin...
2018-12-23 10:46:20
434
原创 树状数组单点修改模板
#pragma GCC optimize(3)#include<bits/stdc++.h>#define mst(a,b) memset(a,b,sizeof(a))#define For(i, k, j) for(int i = (k); i <= (j); i++)#define INF 2147483647/3#define ll long longusin...
2018-11-26 18:58:59
240
原创 搜集钻石(树形DP例题)
搜集钻石Description 蒜国有 n 座城市,编号从 1 到 n,城市间有 n−1 条道路,且保证任意两座城市之间是连通的。每一座城市有一定数量的钻石。蒜头君想在蒜国搜集钻石。他从城市 1 出发,每天他可以通过城市之间道路开车到另外的城市。当蒜头第一次到一个城市的时候,他可以搜集完这个城市的所有钻石,如果他后面再来到这个城市,就没有砖石可以收集了。蒜头君只有 K 天时间,...
2018-11-26 15:36:15
614
原创 购物
DP.f[i][j]表示花费为i, 买了j个物品的价值#pragma GCC optimize(3)#include<bits/stdc++.h>#define For(i, j, k) for(int i=(j);i<=(k);i++)#define INF (2147483647>>1)#define Pair pair<int,int...
2018-11-04 17:52:02
260
原创 卖铅笔
此题很水,sort一遍即可。千万别忘记开long long注意n,m不要读入反,博主就咕在了这里,Time Limit Exceeded 10 / 10#pragma GCC optimize(3)#include<bits/stdc++.h>#define For(i, j, k) for(int i=(j);i<=(k);i++)#define INF...
2018-11-04 17:27:31
314
原创 高精度类模板
struct bigint{ static const int MAXN = 1005; int d[MAXN], len; void clean() { while(len > 1 && !d[len-1]) len--; } bigint() { memset(d, 0, sizeof(d)); len = 1; } bigint(int n...
2018-10-29 20:25:30
266
原创 洛谷P1036 选数
题目链接:https://www.luogu.org/problemnew/show/1036题目描述:已知 n 个整数 x1,x2,…,xn,以及一个整数 k(k<n)。从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为:3+7+12=223+7+19=297+12+19=3...
2018-10-25 22:02:01
562
转载 费用流详解
转自https://blog.youkuaiyun.com/ripped/article/details/70669955费用流,也叫作最小费用最大流,是指在普通的网络流图中,每条边的流量都有一个单价,求出一组可行解,使得在满足它是最大流的情况下,总的费用最小。 (最大费用最大流同理,费用改成负的就行) 做法一般都是简单地SPFA(也就是和EK算法类似),时间复杂度比较高,所以一般规模都挺小的。 1、找到一条...
2018-07-14 16:21:24
1725
原创 最大流
EK:#include<bits/stdc++.h>#define mst(a,b) memset(a,b,sizeof(a))#define For(i, k, j) for(register int i = (k); i <= (j); i++)#define INF 2147483647using namespace std;inline int read(){...
2018-07-04 17:36:26
213
原创 线段树板子
#include<bits/stdc++.h>#define mst(a, b) memset(a, b, sizeof(a))#define ls(k) (k<<1)#define rs(k) (k<<1|1)using namespace std;struct tree { int l, r; long long sum; long long...
2018-07-04 17:35:03
265
原创 超神的质数判断
速度很快,嗯。#include<bits/stdc++.h>#define mst(a,b) memset(a,b,sizeof(a))#define For(i, k, j) for(register int i = (k); i <= (j); i++)#define INF 2147483647using namespace std;inline int read...
2018-06-24 14:30:04
247
原创 割点浅谈
题目:洛谷P3388模板割点if(边 u -> v 是树边(父子边)) low[u] = min( low[u], low[v] );else low[u] = min( low[u], dfn[v] );关键在于:为什么回边的情况下,为什么不是low[u] = min( low[u], low[v] );,而是low[u] = min( low[u], dfn[v] );...
2018-06-05 21:20:01
423
原创 最长上升子序列 nlogn
nlogn LIS:开一个栈,每次取栈顶元素top和读到的元素temp做比较,如果temp > top 则将temp入栈;如果temp < top则二分查找栈中的比temp大的第1个数,并用temp替换它。 最长序列长度即为栈的大小top。这也是很好理解的,对于x和y,如果x < y且Stack[y] < Stack[x],用Stack[x]替换Stack[y],此时的最长...
2018-06-04 17:50:52
567
转载 codeforce 462DIV2 C题
转自 https://www.cnblogs.com/LQLlulu/p/8825115.html题意 给出一个只含有1和2的序列,有n个元素,可以选择一段区间进行翻转操作,求再反转后的最大非递减子序列的长度分析 太菜了只想出了N^2的做法。序列只有1和2,那么每个非递减子序列都会有一个分界点,在分界点前是1以后是2。观察可以发现,只有当翻转的区间包含这个分界点的时候,这个分界点的非递减子序列的...
2018-05-31 17:46:11
287
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人