自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 收藏
  • 关注

原创 点分治

题目列表:P4178poj1741treeP2634bzoj2152聪聪可可P3806P4149P2664P4178树上距离小于等于k的路径数#include<bits/stdc++.h>using namespace std;#define ll long long#define MAXN 80005int n,k;int cnt,first[MAXN...

2019-10-23 20:05:44 170

原创 GCD类莫比乌斯反演模板

题目列表:洛谷P3455洛谷P2522洛谷 P1447洛谷 P2568洛谷 P1829洛谷 P3768洛谷https://www.luogu.org/problem/P2522对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数。前缀和容斥:Ans((1,b),(1,d))−A...

2019-09-28 14:48:32 226

原创 状压dp

位运算技巧: 去掉最后一位 x>>1 在最后加一个0 x<<1 在最后加一个1 x<<1|1 把最后一位变成1 x|1 把最后一位变成0 x|1-1 把最后一位取反 x^1 把右数第k位变成1 x|(1&l...

2019-09-15 19:42:22 283

原创 树形dp

题目列表:P1122P2016P1352P2015P2014P1273P1272P2458P1131P1270P3177P1122最大子树和#include<bits/stdc++.h>using namespace std;int n;int v[16005];vector<int> vec[16005];int mx=~0x3f...

2019-09-04 17:09:14 214

原创 自用数论板子

bool vis[MAXN];ll prime[MAXN],cnt;//素数个数;ll mu[MAXN],mus[MAXN];void getMus(){//线性筛求莫比乌斯函数1-N的函数值 int N=MAXN; //memset(mu,0,sizeof(mu)); memset(vis,0,sizeof(vis)); mu[1] = 1; c...

2019-09-03 20:45:15 180

原创 区间dp

题目列表:P1040hdu3506hdu4632hdu4745hdu2476 hdu4283poj2955poj1651P1040加分二叉树#include<bits/stdc++.h>using namespace std;#define ll long longint n;ll dp[30][30];int root[30][30];int fl...

2019-08-08 15:28:34 262

原创 网易2021校招笔试-C++开发工程师(提前批)

已知,如果教授 A 认可教授 B ,且教授 B 认可教授 C,那么即可视为教授 A 也认可教授 C。现在有n个物品,每一个物品都有一个价值,现在想将这些物品分给两个人,要求这两个人每一个人分到的物品的价值总和相同(个数可以不同,总价值相同即可),剩下的物品就需要扔掉,现在想知道最少需要扔多少价值的物品才能满足要求分给两个人。(“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串,“asds”就不是回文串。现在请你编写一个程序,程序要能计算出小易可以得到的最短回文串。

2023-03-18 18:38:19 534

原创 C++

中文C++11介绍,英文C++11介绍C++11 的 FAQhttp://www.open-std.org/jtc1/sc22/wg21/C++0x/C++11 Support in GCC:http://gcc.gnu.org/projects/cxx0x.htmlWhat is C++0x:https://www2.research.att.com/~bs/what-is-...

2020-03-10 15:57:25 192

原创 次小生成树

https://ac.nowcoder.com/acm/contest/1057/G/*严格次小生成树5 61 2 11 3 22 4 33 5 43 4 34 5 6第一行包含两个整数N 和M,表示无向图的点数与边数。 接下来 M行,每行 3个数x y z 表示,点 x 和点y之间有一条边,边的权值为z。算法详解:kruskal+LCA倍增1.用kruskal求出最小...

2019-10-31 17:37:57 205

原创 树上差分(LCA)

https://ac.nowcoder.com/acm/contest/1057/C#include<bits/stdc++.h>using namespace std;#define MAXN 100005int T;//最大深度 int n,m;int cnt,first[MAXN<<1],nxt[MAXN<<1];int u[MAX...

2019-10-26 21:05:14 491

原创 树网的核

找到任意一条直径,枚举直径上所有路径,找到每条路径上的偏心距,其中最小的偏心距就是答案,这条路径就是树网的核#include<bits/stdc++.h>using namespace std;#define MAXN 610int n,k;int cnt,first[MAXN],nxt[MAXN];int u[MAXN],v[MAXN],w[MAXN];voi...

2019-10-17 15:52:37 218

原创 树的直径模板

https://ac.nowcoder.com/acm/contest/1057/A#include<bits/stdc++.h>using namespace std;#define MAXN 200005int n,k;int v[MAXN],w[MAXN];int cnt,first[MAXN],nxt[MAXN];void add(int a,int b,...

2019-10-13 13:20:33 209

原创 区间不同数的个数(树状数组)

P1972#include<bits/stdc++.h>using namespace std;#define ll long long#define MAXN 1000005namespace IO { struct q_instream { template < typename classT > inline q_...

2019-10-08 20:46:50 706

原创 GCD线段树+差分+树状数组模板

https://ac.nowcoder.com/acm/contest/1033/B线段树维护原数组的差分数组,因为题目直接区间修改,用线段树维护原数组的gcd效率很低,区间gcd的值会发生改变根据更相减损术的原理,可将,推广得首位不变树状数组维护原数组,因为推广得到的式子需要用到原数组,需要区间修改 单点查询#include<bits/stdc++.h>using...

2019-10-08 18:52:44 303

原创 线段树维护区间最大连续子段和

https://ac.nowcoder.com/acm/contest/1033/A从最小的区间(单点),推广到大区间,最大连续子段只有三种情况:1.最左端 2.最右端 3.跨越端点左侧最右端+右侧最左端#include<bits/stdc++.h>using namespace std;#define MAX 100005#define ll long long#...

2019-10-07 15:41:51 355

原创 模拟退火模板(SA)

要取得[a,b)的随机整数,使用(rand() % (b-a))+ a;要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a;要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1;通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。要取得0~1之间的浮点数,可以使用rand() / double(RAND_MAX)。...

2019-09-21 13:18:52 368

原创 P2051 [AHOI2009]中国象棋(dp+分类讨论)

https://www.luogu.org/problem/P2051总共分为3种情况:1.放0个棋子: 直接转移2.放1个棋子: 将一颗棋子放在已含有0个棋子的列中 将一颗棋子放在已含有1个棋子的列中3.放2个棋子: 将两颗棋子放在...

2019-09-18 19:12:43 236

原创 异或线段树模板

https://ac.nowcoder.com/acm/contest/275/Chttp://codeforces.com/problemset/problem/242/E每个二进制位独占一棵线段树,很巧妙题意:给定一个长度为 n 的序列,有 m 次操作:操作有2种:1. 区间求和,即输入l,r,输出.2. 区间异或,即输入l,r,k,对于,将 a[i] 变为....

2019-09-10 19:45:10 514

原创 删除特定子序列(dp)

http://codeforces.com/problemset/problem/1096/Dchar c=" hard";dp[i][j]表示前i个字符不含有c[1]至c[j]子序列状态转移方程:如果s[i]不为特定字符,dp[i][j]=dp[i-1][j]。否则dp[i][j]=min(dp[i-1][j]+val[i],dp[i-1][j-1])。若为特定字符,为保证d...

2019-09-09 16:31:45 483

原创 杜教筛模板

洛谷https://www.luogu.org/problem/P3768#include<bits/stdc++.h>using namespace std;#define MAXN 10000005#define ll long longll mod;ll n;bool vis[MAXN];ll prime[MAXN],cnt;//素数个数;ll phi[M...

2019-08-31 11:06:14 271

原创 双向搜索模板

https://ac.nowcoder.com/acm/contest/889/D降低指数级数据的复杂度(本题从2^36降至2^18)#include <bits/stdc++.h>#define ll long longusing namespace std;ll num[40];set<ll> st;map<ll,ll> mp; in...

2019-08-15 18:11:35 779

原创 最大/最小表示法模板

https://ac.nowcoder.com/acm/contest/887/A用i = 0,j = 1,k = 0,表示从i开始k长度和从j开始k长度的字符串相同(i,j表示当前判断的位置)当我们str[i] == str[j]时,根据上面k的定义,需要进行k+1操作当str[i] > str[j]时,i位置比j位置上字典序要大,固不能使用i作为开头,又因为i开头和j开头的有...

2019-08-08 20:27:58 185

原创 离散化模板

https://ac.nowcoder.com/acm/contest/1001/A#include<bits/stdc++.h>using namespace std;#define MAXN 200005int a[MAXN],b[MAXN],c[MAXN];int cnt;int num[MAXN*3];int t[MAXN*3];void discret...

2019-08-06 15:55:19 129

原创 Upgrading Technology(st表+RMQ)

首先找到一个都能够达到的最小的j,将所有技能都达到一个大于等于j级的最大收益的等级。再减去一个收益最小的,以保证指示j等级的是该最小收益技能的j等级。st表+RMQ(824ms)#include<bits/stdc++.h>#define MAXN 1200#define ll long long#define inf 999999999999999using nam...

2019-08-05 09:54:51 197

原创 分组背包模板

cf-741B - Arpa's weak amphitheater and Mehrdad's valuable Hoses#include<bits/stdc++.h>using namespace std;#define MAXN 10050#define ll long longint n,p,m;int w[MAXN],v[MAXN];int dp[MAX...

2019-08-03 11:59:42 331

原创 最长上升子序列(LIS)模板

O(n*logn)二分优化#include<bits/stdc++.h>using namespace std;#define ll long long#define inf 0x3f3f3f3fint num[100005];int dp[100005];bool cmp(int a,int b){ if(a>b)return true; return...

2019-08-02 20:18:47 198

原创 最长公共子序列(LCS)模板

HDU-1503#include<bits/stdc++.h>using namespace std;int dp[105][105];int main(){ string s1,s2; while(cin>>s1>>s2){ memset(dp,0,sizeof(dp)); //构成dp表 for(int i=1;i&lt...

2019-08-02 17:31:17 237

原创 Buy the souvenirs(01背包)

HDU-2126#include<bits/stdc++.h>using namespace std;#define MAXN 505#define ll long longll w[MAXN],v[MAXN];ll dp[MAXN][MAXN];int main(){ int pa; cin>>pa; while(pa--){ memset(...

2019-08-01 19:38:41 207

原创 Proud Merchants

动态规划的过程中,较差的状态会被更优的状态覆盖。最大的价值,需要建立在最优的状态上,几个较优的物品组合在一起,才能出最优解,所以把优劣分开。先根据每个物品的代价排序(本题的代价为q-w),最差的物品,最先使用,便能被后面的物品覆盖状态,才能得到最优解。#include<bits/stdc++.h>using namespace std;#define MAXN 500...

2019-08-01 15:34:30 258

转载 杜教BM模板

矩阵快速幂+线性递推#include <bits/stdc++.h>using namespace std;#define rep(i,a,n) for (long long i=a;i<n;i++)#define per(i,a,n) for (long long i=n-1;i>=a;i--)#define pb push_back#define mp ...

2019-08-01 15:15:00 250

原创 01背包k-th决策模板

HDU-2639#include<bits/stdc++.h>using namespace std;#define MAXN 1005#define ll long longll w[MAXN],v[MAXN];ll dp[MAXN][MAXN];int main(){ int pa; cin>>pa; while(pa--)...

2019-08-01 09:53:03 140

原创 多重背包模板

HDU-2844二进制优化#include<bits/stdc++.h>using namespace std;#define MAXN 100500#define ll long long ll n,m;ll num[MAXN],v[MAXN],w[MAXN];ll dp[MAXN];void ZeroOnePack(ll w,ll v){ for...

2019-07-31 19:06:05 448

原创 FATE

HDU-2159 完全背包#include<bits/stdc++.h>using namespace std;#define MAXN 105#define inf 0x3f3f3f3fint dp[MAXN*150][MAXN];int main(){ int n,m,k,s; while(cin>>n>>m>>...

2019-07-30 19:53:47 114

原创 Find the answer

HDU-6609#include<bits/stdc++.h>using namespace std;#define MAXN 200005int n,m;int dp[MAXN];int main(){ int pa; cin>>pa; while(pa--){ memset(dp,0x3f,sizeof(dp)); dp[0]=0; ...

2019-07-30 10:38:09 391

原创 二叉树直径模板

POJ-1985 Cow Marathon#include<iostream>#include<vector>#include<cstdio>using namespace std;#define MAXN 100005struct node{ int x,y,z;}path[MAXN<<1];vector<int&gt...

2019-07-29 20:35:11 212

原创 大素数阶乘取模模板

hdu-6608 Fansblog#include<bits/stdc++.h>using namespace std;#define ll long longll p;ll mul_mod(ll a,ll b,ll mod){ //快乘法 基于快速幂的二分思想 ll ans=0; //由于考虑到取模数很大 快速幂会...

2019-07-29 20:01:18 946

原创 LRU management(模拟数据结构)

https://ac.nowcoder.com/acm/contest/883/JLRU,操作系统中的最近最常使用算法#include<bits/stdc++.h>#define MAXN 1000005#define ll long longusing namespace std; struct node{ int key; int pre; ...

2019-07-26 16:23:00 242

原创 网络流模板

Edmonds-Karp#include<bits/stdc++.h>using namespace std;int n,m,S,T;#define MAXN 10005#define MAXM 100005struct Path{ int x,y,c,f; Path(){}; Path(int tx,int ty,int tc,int tf):x(tx),y(...

2019-07-22 21:04:58 124

原创 连续区间和模板

链接:https://ac.nowcoder.com/acm/contest/949/D来源:牛客网题目描述水果店里有 nn个水果排成一列。店长要求顾客只能买一段连续的水果。小阳对每个水果都有一个喜爱程度 aiai,最终的满意度为他买到的水果的喜欢程度之和。如果和为正(不管是正多少,只要大于 0 即可),他就满意了。小阳想知道在他满意的条件下最多能买多少个水果。你能帮帮他吗?...

2019-07-14 19:51:25 399

原创 H. Subsequences (hard version)

Codeforces Round #570 (Div. 3)dp[i][j]表示使用前j个字符构成的长为i的distinct子串个数状态转移方程:dp[i][j]=dp[i-1][j-1]+dp[i][j-1]如果当前字符已经出现过,要减去最近此字符的之前的长度-1的distinct子串个数:dp[i-1][last-1]#include<bits/stdc++.h&g...

2019-07-10 20:37:14 628

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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