- 博客(38)
- 收藏
- 关注
原创 Lucas定理模板
FZU2020,求C(n,m)%p#include <cstdio>#include <iostream>using namespace std;typedef long long ll;const int maxn=1e5+10;ll n,m,p;ll Qpow(ll a,ll b){ ll ans=1; a%=p; wh...
2018-08-31 13:46:31 169
原创 单调队列模板
#include <bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3f#define PI acos(-1.0)typedef long long ll;typedef long double ld;const int maxn=1e7+10;ll que[maxn];ll a[maxn];int ...
2018-08-31 13:34:24 245
原创 线段树模板
单点更新,区间查询查询区间最大值#include <bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3f#define PI acos(-1.0)typedef long long ll;typedef long double ld;const int maxn=2e5+10;int maxv[max...
2018-08-31 13:32:40 122
原创 矩阵快速幂模板
斐波那契递推式:F(n)=(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}HDU 3117 求斐波那契的前四位和后四位#include <bits/stdc++.h>using namespace std;typedef long long ll;const int MOD=10000;int f[41]={0,1};struct Mat...
2018-08-04 23:59:05 113
原创 树状数组模板
POJ 2352 一维树状数组#include <cstring>#include <cstdio>#include <iostream>#include <algorithm>#include <string>using namespace std;#define inf 0x3f3f3f3f#define PI a...
2018-08-04 23:50:35 90
原创 splay,treap模板
bzoj 3224 普通的平衡树操作splay树#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define inf 0x3f3f3f3f#define PI acos(-1.0)ty...
2018-08-03 14:55:22 175
原创 莫队 曼哈顿最小生成树
HYSBZ - 2038莫队模板题#include <bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3f#define PI acos(-1.0)typedef long long ll;typedef long double ld;const int maxn=5e4+10;int n,m,q;...
2018-07-23 11:24:48 204
原创 二分图最大匹配 匈牙利算法
bool Findpath(int u){ for(int i=0;i<ny;i++) { if(line[u][i]&&!vis[i]) { vis[i]=true; if(cy[i]==0||findpath(cy[i])) { ...
2018-05-11 16:31:51 89
原创 Tarjan 模板
求割点void Tarjan(int u,int fa){ dfn[u]=low[u]=++index; int child=0; for(int i=0;i<mp[u].size();i++) { int v=mp[u][i]; if(!dfn[v]) { Tarjan(v,u); ...
2018-05-11 16:30:19 178
原创 最小树形图模板
POJ 3146 建图求有向图的最小树形图#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <cmath>using namespace std;#define inf 0x3f3f3f3f#define PI...
2018-05-11 16:15:00 158
原创 组合数取模模板
FZU2020#include #include using namespace std;typedef long long ll;const int maxn=1e5+10;ll n,m,p;ll Qpow(ll a,ll b){ ll ans=1; a%=p; while(b) { if(b&1)
2018-03-14 18:06:07 332
原创 次小生成树模板
ural 1416 求最小生成树和次小生成树#include using namespace std;#define inf 0x3f3f3f3f#define PI acos(-1.0)typedef long long ll;const int maxn=505;int mp[maxn][maxn],cost[maxn],n,m,pre[maxn],maxe[maxn][ma
2018-03-08 20:36:18 165
原创 HDU 6129
dp[i][j]表示第j轮第i个数,dp[i][j]=dp[i-1][j]^dp[i][j-1],推两次,变成dp[i-2][j]^dp[i][j-2],再推两次,可以发现为dp[i-2^k][j]^dp[i][j-2^k]#include using namespace std;#define inf 0x3f3f3f3f#define PI acos(-1.0)typedef l
2017-08-16 10:19:27 532 1
原创 HDU 6103
枚举中心点,一个往前面推,一个往后面推,不符合则一个一个删除过去#include using namespace std;#define inf 0x3f3f3f3f#define PI acos(-1.0)typedef long long ll;const int maxn=5010;char s[maxn];int main(){ int t; sca
2017-08-10 19:45:22 172
原创 HDU 6069 素数筛+分解质因子
给一个起点为l终点为r的区间,求这个区间内的数的k次方的全部因子有多少个。设 n=p1^c1*p2^c2...,则d(n^k)=(k*c1+1)(k*c2+1)...,r-l>=1e6先筛出10^6内的素数,再分解出[l,r]里面的质因子,大于1e6的质数直接为(k+1)个因子。#include using namespace std;#define inf 0x3f3f3f3f
2017-08-03 19:56:28 250
原创 FZU 1074 数位dp+二分
给m,n,问含有m个0的第k个数,是几位数,最高位是多少#include #include #include #include #include #include using namespace std;#define inf 0x3f3f3f3f#define PI acos(-1.0)typedef __int64 ll;const int maxn=30;ll d
2017-07-31 11:55:09 251
原创 AtCoder Regular Contest 079 C D E
C 问是否能两步从1到达n开两个数组存是否能一步到达1和n#include using namespace std;#define inf 0x3f3f3f3f#define PI acos(-1.0)typedef long long ll;const int maxn=2e5+5;int vis1[maxn],vis2[maxn];int main(){
2017-07-31 11:16:40 287
原创 Codeforces Round #426 (Div. 2) A B C
A 给两个字符a和b,问a经过逆时针或者顺时针旋转n次之后是否会得到b小模拟#include using namespace std;#define inf 0x3f3f3f3f#define PI acos(-1.0)typedef long long ll;const int maxn=1e5+10;int main(){ char a,b; c
2017-07-31 10:58:35 218
原创 分组背包
HDU 1712#include using namespace std;typedef long long ll;const int maxn=1e5+10;int dp[maxn],n,m,a[110][110];int main(){ while(scanf("%d%d",&n,&m)!=EOF) { if(n==0&&m==0)
2017-07-24 16:48:21 553
原创 多重背包
实际上是01背包和完全背包的结合体,但在进行01背包时使用了二进制的思想来进行优化。void zero_one_pack(int w1,int v1){ for(int j=res;j>=w1;j--) dp[j]=max(dp[j],dp[j-w1]+v1);}void complete_pack(int w1,int v1){ for(int j=
2017-07-22 21:19:49 284
原创 完全背包
与01背包很相似,只是物品无限次,要正序枚举。UVA 674整数划分,用记忆化搜索的话会更快。 #include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e4+10;int dp[maxn],c[5]={1,5,10,25,50},n;int main...
2017-07-22 21:06:48 171
原创 01背包
滚动数组:dp[j]=max(dp[j],dp[j-w]+v);POJ 2184将数组扩大100000,负数变为正数来处理#include #include #include #include using namespace std;#define inf 0x3f3f3f3ftypedef long long ll;const int maxn=2e5+10;i
2017-07-22 20:52:18 158
原创 CodeForces - 549H
一道浮点数二分答案的模板题#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define inf 0x3f3f3f3f#define PI
2017-05-25 22:16:10 264
原创 Codeforecs 715A
一道构造题。构造出ai%i=0和ai+1%i=0,所以为i*(i+1);#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define i
2017-05-25 22:12:39 229
原创 Codeforces #409div2 C
http://codeforces.com/contest/801/problem/C有一个充电器和n个手机,手机剩余电量b[i],消耗电量速度a[i]每秒,p为充电器每秒可以充的电量。只要充电器充的电量+剩余的电量>=消耗的电量就可以使用,二分。#include #include #include #include #include #include #include
2017-04-19 22:07:36 229
原创 poj 2796
单调栈经典题目#include #include #include #include #include #include using namespace std;typedef long long ll;const int maxn=1e5+10;int le[maxn],stack[maxn],top,l,r,n,a[maxn];ll sum[maxn],t,ans;
2017-04-12 09:02:57 190
原创 lcs 模板
输出多条路径#include #include #include #include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f#define PI acos((double)-1)using namespace s
2017-04-02 20:56:36 217
原创 mst模板题
hdu1233 prim模板#include #include #include #include #include #include #define inf 0x3f3f3f3fusing namespace std;const int maxn=110;int map[maxn][maxn],cost[maxn],ad[maxn],n,we[maxn];void
2017-03-27 09:10:14 355
原创 KMP&&manacher模板题
hdu1686 kmp模板#include #include #include #include #include using namespace std;char w[10005],t[1000005];int next[10005],wsize,tsize,cnt;void getnext(){ int i=0,j=-1; next[0]=-1; while(i<
2017-03-27 09:06:42 235
原创 最短路四种基础算法模板题
poj2387 dijsktra模板题#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f#define PI acos((double)-1)using namespace std;typedef long lo
2017-03-27 08:55:31 381
原创 poj1426
原题:点击打开链接一道暴力搜索的题目,同时可以使用同余定理。bfs:#include #include #include #include #include #include using namespace std;typedef long long ll;int n;ll m;void bfs(){ queue q; q.push(1
2017-03-14 19:25:24 178
原创 HDU 1237
原题:点击打开链接一个模拟题目,主要熟悉一下逆波兰式。#include #include #include #include #include #include using namespace std;char s[300],ss[1000];int len;void fun(){ stack st; int i=0,j=0; whi
2017-03-13 21:49:02 301
原创 poj 2240
原题:点击打开链接题意:给你一些货币,问你是否可以在兑换中获得利润。跟poj1860很像,题目链接:点击打开链接刚开始用的数组邻接表建图,无限t,后来改成map才A掉。#include #include #include #include #include #include #include using namespace std;const int maxn
2017-03-10 19:04:02 310
转载 spfa && poj1860
原文:点击打开链接poj1860:点击打开链接bellman#include #include #include #include #include using namespace std;const int maxn=110;const int maxm=220;double dist[maxn],v,c[maxm][2];int cnt,n,m,d[m
2017-03-09 13:14:08 197
转载 数组邻接表
原文链接:点击打开链接有向图:#include #include #include #include #include #include using namespace std;const int maxn=1e5+5;vector s[maxn],w[maxn],c[maxn];int n,sum,num[maxn],vis[maxn],viss[maxn],
2017-03-08 22:22:47 162
原创 cf 682C
原题:点击打开链接给你一棵树,1为该树的根只要有任意一条到i的路径是大于num[i],就要将该点和该点子树删掉。从1开始搜索路径,取一到任意点的最大路径,若最大路径大于num[i],则可以将该点与子树删除。当路径为负数时要清零。#include #include #include #include #include #include using namespace
2017-03-08 20:23:24 1242
原创 cf 681C
有一个堆,给你一些操作,分别是往这个堆加数,移除最小值和查询最小值,让你按照这些操作做,并且要最少次操作,输出这些操作记录。注意查询最小值x时记得判断当前堆的最小值是否为x,若大于x则插入x,小于则要移除最小值。当堆为空时,必须先插入一个数才能移除最小值。一道模拟题,用了multiset按照降序来存储堆里面的数值。#include #include #include #i
2017-03-08 19:15:12 476
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人