斜率DP模板

斜率dp 线性裸题 3507 #include<stdio.h> #define N 500010 int dp[N]; int q[N]; int head,tail; int sum[N]; int a[N]; int n,m; int getDP...

2018-10-03 15:54:57

阅读数 41

评论数 0

关于lower_bound( )和upper_bound( )的常见用法

lower_bound( )和upper_bound( )都是利用二分查找的方法在一个排好序的数组中进行查找的。在从小到大的排序数组中,lower_bound( begin...

2018-08-12 15:58:00

阅读数 150

评论数 0

CF1005E

题意n个数字,问m是多少个区间的中位数?偶数个数字的区间中位数认为是中间靠左的那个数字,比如(1,3,7,8)中位数为3。E1:这n个数字是1~n的一个排列E2:n个数字,...

2018-08-12 14:51:21

阅读数 31

评论数 0

组合数学

#define mod 998244353 #define ll long long using namespace std; ll fac[maxn],inv[maxn],dp[maxn];int a[maxn]; void Init() { fac[0]=inv[0]=inv[1]=...

2018-08-07 15:46:46

阅读数 298

评论数 0

数组随机化

random_shuffle(a, a+n);

2018-08-06 19:09:35

阅读数 47

评论数 0

CF988

先总结一下,这场打的sb了,被hack两题,难受啊!减成呆头鹅A.给定n个数,要选出m个互不相同的数。模拟B.给定n个串,问能否把它们排列成满足前一个是后一个的子串的序列?模拟C.给定n个数列,问是否存在两个数列各取掉一个数字,使得两数列和相等map标记一下就好了#include&...

2018-06-04 22:14:49

阅读数 108

评论数 0

CF987

A.字面意思,就模拟一下就好#include <bits/stdc++.h> using namespace std; char s[100]; int vis[100]; int main() { int n; scanf(&...

2018-05-30 16:56:36

阅读数 218

评论数 0

cf985

题目链接:http://codeforces.com/contest/985A:暴力题吧,只需要在把黑色和白色的值都算一遍,最后取两种情况的min就可以了。B:模拟题,只需要每次枚举那个开关不动即可。C:只需要sort一下,想一下如何选取即可。举个栗子吧:其中划竖线的地方就是临界点(刚好满足题意)...

2018-05-26 21:17:03

阅读数 313

评论数 0

树剖模板

void dfs1(int u,int pre,int step) { dep[u]=step; fa[u]=pre; num[u]=1; for(int i=head[u];i!=-1;i=edge[i].next) { int v=edg...

2017-09-28 20:00:48

阅读数 109

评论数 0

UVA 11990 bit + cdq 分治

题意:动态逆序对 做法:对于删除操作可以当做逆向的添加操作 , 所以对于每个数字都有三个属性 (T,ID,Num)  所以这道题其实就是一个三维偏序问题 。 对于一个数 只需要 左边比它大的数 和右边比它小的数 ,我们可以用一个bit logn 进行操作。 三位偏序 可以用CDQ 减去一维 ,...

2017-08-25 22:32:53

阅读数 123

评论数 0

HDU 1892 二维树状数组 模板题

假设每个格子代表一个数A[i][j],i是横坐标,j是纵坐标,左上角的坐标为(1,1)我们要求红色区域元素之和,设sum(i,j)表示以i,j坐标为右下角坐标,以0,0为左上角坐标矩形内的元素之和, sum(c,d):绿色+黄色+红色+蓝色 sum(c,b-1):绿色+蓝色 sum(a-1,...

2017-08-25 22:20:36

阅读数 117

评论数 0

复习艾教

Day 1  乱搞 Day 2  状压DP + 状压 BFS Day 3  线性DP + 区间DP Day 4  素数筛 + 最大公约数 + 分解质因数 + 同余运算 + 快速幂 + 中国剩余定理 + 费马小定理 + 积性函数             miller-rabin 函数 + p...

2017-08-13 22:17:00

阅读数 98

评论数 0

2017 暑假艾教集训 day12 网络流(最大流 最小割)!

模板 using namespace std; int n,m; const int maxn=1005; struct node { int to,next,cap; }edge[maxn<<2]; int head[maxn],cnt; void add(int u,in...

2017-08-13 00:01:26

阅读数 121

评论数 0

2017 暑假艾教集训 day11 线段树!

BZOJ 2212 做法:线段树的合并,从下往上进行合并,顺便判断兄弟节点是否交换,如果不交换逆序对为左子树的+右子树的+左子树大于mid * 右子树小于mid。如果交换加的就是左子树小于mid*右子树大于mid的。 合并操作很神奇,还有 动态开点删点也有多注意!!! 先递归较大的子树(收点收...

2017-08-11 23:27:12

阅读数 99

评论数 0

2017 暑假艾教集训 day10 AC自动机+马拉车+后缀数组 +kmp

https://vjudge.net/contest/177933#overview H HDU3068 做法:马拉车模板 #include using namespace std; const int maxn= 110015; char s[maxn]; char str[maxn*2...

2017-08-10 23:16:18

阅读数 207

评论数 0

2017 暑假艾教集训 day10 (补zoj2112带修改的第k大)整体二分

ZOJ   2112 带修改的区间第k小只用比静态的多加一个删除操作即可 #include using namespace std; const int inf=1e9+7; const int maxn=220000; struct node { int l,r,k,val,cur...

2017-08-10 22:49:41

阅读数 102

评论数 0

2017 暑假艾教集训 day8 (补一道思维题,

HDU 2615 做法:好好读题!!!。当时晚上做的,完全不知道在写什么。 首先第一刀切任何地方都有可能, 所以先暴力枚举第一刀。 而第二刀就不同了,这里第二个人是有智慧的,会切一刀使他得到的最大,只需要在第一重循环下开一个maxtwo变量即可,同时当答案相同时,第三个人取最小答案。 wa...

2017-08-10 00:49:15

阅读数 118

评论数 0

2017 暑假艾教集训 day9(整体二分 + cdq分治 cdq真是我女神!!!)

POJ 2104 求第k小 做法:整体二分加树状数组。 离线把询问和插入做整体二分,每次把s,t扫一般 如果是插入就在线段树上相应的位置插入(val,1)。 对于每个询问查询在l,r 中 用多少个数 如果加上累加的数 小于k那么 答案应该在右区域把该询问扔到右区域 并把查询的结果累加(左...

2017-08-10 00:42:41

阅读数 173

评论数 0

2017 暑假艾教集训 day8 (树链剖分+树上点分治)

POJ 2763 树链剖分 边权化点权问题(只需要把边的权值给深度大的节点转换为点权值问题即可) #include #include #include #include #include using namespace std; const int maxn=100100; int ...

2017-08-09 02:08:04

阅读数 112

评论数 0

2017 暑假艾教集训 day7 (树链剖分模板)

HDU 3966 树链剖分模板题#include using namespace std; const int maxn= 50010; int n,m,q; int c[maxn]; int head[maxn],cnt=0; struct node { int to,next; }...

2017-08-08 09:05:49

阅读数 158

评论数 0

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