自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 牛客暑期多校训练1

更新ing

2022-09-26 19:59:18 131

原创 模拟练习合集

一些模拟练习题

2022-07-07 10:32:11 102

原创 动态规划合集

一些动态规划的题目

2022-07-05 15:02:07 375

原创 偷钻石(网络流)

传送门#include<bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3fconst int maxn=205;int n,m,g[maxn][maxn],flow[maxn],pre[maxn];bool bfs(int s,int t,int v){//搜索增广路,源点,汇点,顶点数 memset(pre,-1,sizeof(pre)); memset(flow,inf,sizeof(flow)); queue

2021-09-23 20:13:11 75

原创 最小割(最大流)

传送门#include<bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3fconst int maxn=205;int n,m,g[maxn][maxn],pre[maxn],flow[maxn];bool bfs(int s,int t,int v){ memset(pre,-1,sizeof pre); memset(flow,inf,sizeof flow); queue<int> q; q.pu

2021-09-23 19:55:58 68

原创 网络流 分房间(最大流)

传送门#include<bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3fconst int maxn=205;int n,m,g[maxn][maxn],pre[maxn],flow[maxn];bool bfs(int s,int t,int v){ memset(pre,-1,sizeof pre); memset(flow,inf,sizeof flow); queue<int> q; q.pu

2021-09-23 19:33:19 89

原创 hdu1532网络流(模板)

传送门//从汇点到源点遍历路径,更新残留网络 #include<bits/stdc++.h>using namespace std;const int inf=0x3f3f3f3f;const int maxn=205;int n,m,g[maxn][maxn],pre[maxn],f[maxn];//pre[]记录路径(前驱节点),f[]记录最小剩余容量 bool bfs(int s,int t,int v){//搜索增广路,源点,汇点,顶点数 memset(pre,-1,s

2021-09-16 20:51:12 53

原创 铺地砖(状压dp)

传送门#include<bits/stdc++.h>using namespace std;typedef long long ll;const int mode=1e9+7;const int maxn=(1<<17)+5;ll dp[maxn<<1],*pre,*cur;//分别从前往后,从后往前int t,n,m;int main(){ int s; cin>>t; while(t--){ cin>>n>&g

2021-09-07 20:36:04 228

原创 集合划分(状压dp)

#include<bits/stdc++.h>using namespace std;const int maxn=(1<<16)+5;int n,a[20],dp[maxn],sum[maxn]={0};//dp[s]表示出现s集合,可行划分的总数 int c[maxn],ispri[1700]={1,1};int main(){ int t,s; scanf("%d",&t); for(int i=0;i<16;i++) c[1<<i]

2021-09-07 19:14:45 100

原创 hdu5418(同5691)

传送门#include<bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3fconst int maxn=(1<<16)+5;int n,m,dp[maxn][20],g[20][20],c[maxn];int main(){ int t,S,u,v,w; for(int i=0;i<16;i++) c[1<<i]=i+1; scanf("%d",&t); while(t--)

2021-09-03 19:37:25 55

原创 hdu5691状压dp

传送门状态转移 dp[s|(1<<(j-1))][j]=max(dp[s|(1<<(j-1))][j],dp[s][i]+ai*aj)有虚假态#include<bits/stdc++.h>using namespace std;#define inf 0x80000000int dp[1<<20][20];//dp[i][j],i为最大1<<n的二进制数,表示这n个数的当前选择方案,j表示第j个数为结尾 int a[20],p[2

2021-09-03 11:56:35 65

原创 hdu7101滑动窗口(双指针)

传送门#include<bits/stdc++.h>using namespace std;#define pos(x,y) s[x%y][x/y%len[x%y]]-'a' //求第x个加入的字符转换为二进制后在哪一位 typedef long long ll;int len[101],cnt[26];char s[101][13];int t,n;int main(){ int f1,f2;//标记出现的所有字符 int ml,mg;//ml标记字符串最大长度,mg

2021-09-02 17:34:53 112

原创 hdu6287可持久线段树+线性筛

传送门#include<bits/stdc++.h>using namespace std;const int maxn=1e5+5;int n,m;int pri[maxn],vis[maxn],pos[maxn],c=0;//质数表,最大质因子及其序号 int tot=-1,ver[maxn];struct st{ int l,r,s;//s为质因子出现次数 }tre[maxn<<8];void init(){//线性筛 memset(pri,0,size

2021-09-02 17:12:05 58

原创 hdu7108哈希

添加链接描述#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e5+5;int t,n;char ch[maxn];ll s;map<pair<int,int>,int> pos;int main(){ ll x,y; scanf("%d",&t); while(t--){ x=y=0; s=0; while(!pos

2021-09-01 15:59:41 101

原创 洛谷2617 动态可持久线段树

添加链接描述#include<bits/stdc++.h>using namespace std;const int maxn=2e5+5;struct st{ int l,r,sum;}tre[maxn<<9];struct op{ char s[2]; int x,y,z;}q[maxn];int a[maxn],b[maxn];int tot,ver[maxn];int n,m,c;int ndl[maxn],ndr[maxn],cntl,cntr;

2021-08-31 21:04:29 65

原创 主席树(mex)

添加链接描述#include<bits/stdc++.h>using namespace std;int n,m,t;const int maxn=2e5+5;struct st{ int l,r,mi;}tre[maxn<<5];int tot,ver[maxn];void pushup(int root){ st &rt=tre[root]; st &l1=tre[rt.l ]; st &r1=tre[rt.r ]; rt.mi

2021-08-31 14:59:47 98

原创 可持久线段树(主席树)模板

#include<bits/stdc++.h>using namespace std;const int maxn=1e5+5;int t,n,m;int tot;int ver[maxn];struct st{ int l,r,sum;}tre[maxn<<5];int build(int l,int r){ int root=++tot; tre[root].l =root; tre[root].r =root; tre[root].sum =0; r

2021-08-29 20:26:44 142

原创 洛谷3834主席树+离散化

添加链接描述#include<bits/stdc++.h>using namespace std;const int maxn=2e5+5;int ver[maxn];int tot,n,m;struct st{ int l,r,sum;}tre[maxn<<5];int lsh[maxn],a[maxn];int build(int l,int r){ int root=++tot; tre[root].l =root; tre[root].r =root

2021-08-29 20:25:42 87

原创 hdu1269强连通分量(kosaraju算法)

添加链接描述#include<bits/stdc++.h>using namespace std;const int maxn=1e4+5;int a[maxn],b[maxn];vector<int> p[maxn],q[maxn];//原图,反向图 int vis[maxn];int k;void dfs1(int x){ vis[x]=1; for(int i=0;i<p[x].size();i++){ if(vis[p[x][i]]==0) df

2021-08-19 15:50:13 89

原创 hdu4745

添加链接描述#include<bits/stdc++.h>using namespace std;const int maxn=2005;int a[maxn];int dp[maxn][maxn];int main(){ int n; while(scanf("%d",&n)!=EOF){ if(n==0) break; for(int i=1;i<=n;i++){ scanf("%d",&a[i]); a[i+n]=a[i];

2021-08-17 19:27:07 56

原创 hdu4283

添加链接描述#include<bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3fint d[105],sum[105];int dp[105][105];int main(){ int t; cin>>t; int c=1; while(t--){ int n; cin>>n; for(int i=1;i<=n;i++) cin>>d[i]; sum[1]

2021-08-17 16:13:10 56

原创 hdu5115

添加链接描述#include<bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3fint a[205],b[205];int dp[205][205];int main(){ int t; cin>>t; int c=1; while(t--){ int n; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; for(int

2021-08-17 14:51:15 84

原创 zjhu1040石子合并,区间dp(迭代+记忆化dfs)

添加链接描述法一:迭代#include<bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3fint dp[105][105];int w[105][105],a[105];int n;int main(){ int t; cin>>t; while(t--){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } m

2021-08-17 10:17:36 74

原创 hdu3336

添加链接描述#include<bits/stdc++.h>using namespace std;const int mode=10007;const int maxn=200005;char x[maxn];int nexts[maxn];int n;void getnext(char* x){ nexts[1]=0; int k=0; for(int i=2;i<=n;i++){ while(k!=0&&x[k+1]!=x[i]) k=next

2021-08-16 14:56:02 40

原创 hdu2549

添加链接描述#include<bits/stdc++.h>using namespace std;int main(){ char x[10],c; int n,t; cin>>t; while(t--){ int ans; while((c=getchar())!='.') ans=0; while((c=getchar())!=' ') x[ans++]=c; cin>>n; if(n>ans) cout<<"0"

2021-08-15 20:23:20 136

原创 hdu2087kmp

#include<bits/stdc++.h>using namespace std;int p[1001];char c1[1001],c2[1001];int len1,len2;void pre(){ p[0]=0; p[1]=0; for(int i=1;i<len2;i++){ int j=p[i]; while(j>0&&c2[j+1]!=c2[i+1]) j=p[j]; if(c2[j+1]==c2[i+1]) p[i+1]=

2021-08-15 16:19:11 60

原创 hdu1043康托展开+bfs

添加链接描述#include<bits/stdc++.h>using namespace std;const int inf=0x3f3f3f3f;const int maxn=4e5+1;int f[10];int vis[maxn],path[maxn],path2[maxn];void init(){ f[0]=1; for(int i=1;i<=9;i++) f[i]=f[i-1]*i;}int kt(string s){//康托 int res=0;

2021-08-11 19:49:53 90

原创 hdu1496

添加链接描述#include<bits/stdc++.h>using namespace std;const int maxn=5e4+5;int f[maxn],g[maxn];int hashs(int k){ int t=k%maxn; if(t<0) t+=maxn; while(f[t]&&g[t]!=k) t=(t+1)%maxn; return t;}int main(){ int sum,a,b,c,d; int t[101];

2021-08-11 15:33:48 94

原创 hdu1425哈希(桶排序)

添加链接描述#include<bits/stdc++.h>using namespace std;const int maxn=1e6+5;const int mm=5e5;int a[maxn],b[maxn];int main(){ int n,m; while(scanf("%d%d",&n,&m)!=EOF){ memset(b,0,sizeof(b)); int k; for(int i=1;i<=n;i++){ scanf("

2021-08-10 15:38:34 80

原创 hdu2202求最大三角形面积(凸包)

添加链接描述#include<bits/stdc++.h>using namespace std;const int maxn=5e4+5;struct node{ double x,y;}p[maxn],s[maxn];double dis(node a,node b){ return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));}double X(node p1,node p2,node p3){ return (p2.x

2021-08-10 14:39:08 77

原创 hdu1392求凸包周长

添加链接描述#include<bits/stdc++.h>using namespace std;struct node{ double x,y;}p[101],s[101];double dis(node a,node b){//求距离 node t; t.x=a.x-b.x; t.y=a.y-b.y; return sqrt(t.x*t.x+t.y*t.y);}double X(node p1,node p2,node p3){//叉乘 return (p2.x-p

2021-08-10 11:11:09 63

原创 hdu2036计算多边形面积

添加链接描述#include<bits/stdc++.h>using namespace std;int x[1000],y[1000];int sum(int p1,int p2){ double s1=0; s1=x[p1]*y[p2]-x[p2]*y[p1]; return s1;}int main(){ int n; while(scanf("%d",&n)!=EOF){ if(n==0) break; for(int i=0;i<n;i++

2021-08-09 15:36:16 125

原创 hdu2108计算几何(判断凹凸)

添加链接描述#include<bits/stdc++.h>using namespace std;int n;int x[1000],y[1000];int find(int p1,int p2,int p3){ return (x[p1]-x[p2])*(y[p1]-y[p3])-(x[p1]-x[p3])*(y[p1]-y[p2]);}int main(){ while(scanf("%d",&n)!=EOF){ if(n==0) break; for(i

2021-08-09 15:14:56 71

原创 hdu2793

#include<bits/stdc++.h>#define mode 1000000007using namespace std;typedef long long ll;ll a,b;struct mm{ ll a[4][4];}ori,res;mm init(){ mm E; for(int i=0;i<4;i++){ for(int j=0;j<4;j++){ if(i==j) E.a[i][j]=1; else E.a[i][j]=0;

2021-08-09 10:34:09 94

原创 hdu6470

添加链接描述#include<bits/stdc++.h>#define mode 123456789using namespace std;typedef long long ll;ll n,t;struct mm{ ll a[6][6];}ori,res;mm init(){ mm E; for(int i=0;i<6;i++){ for(int j=0;j<6;j++){ if(i==j) E.a[i][j]=1; else E.a[i]

2021-08-03 10:56:39 168

原创 hdu1757

添加链接描述#include<bits/stdc++.h>using namespace std;typedef long long ll;ll k,m;struct mm{ ll a[11][11];}aa,bb;mm init(){ mm E; for(int i=0;i<10;i++){ for(int j=0;j<10;j++){ if(i==j) E.a[i][i]=1; else E.a[i][j]=0; } } return

2021-08-02 14:03:39 50

原创 hdu1575矩阵快速幂

添加链接描述#include<bits/stdc++.h>#define mode(x) x%9973using namespace std;typedef long long ll;ll n,k;struct maps{ ll g[11][11];}aa;maps init(){ maps E; for(ll i=0;i<n;i++){ for(ll j=0;j<n;j++){ if(i==j) E.g[i][j]=1; else E.g[i]

2021-08-02 09:37:28 52

原创 hdu1698

添加链接描述#include <bits/stdc++.h>using namespace std;const int maxn=1e5+5;int a[maxn];struct node{ int val; int lazy;}st[maxn<<2];void pushup(int rt){ st[rt].val =st[rt<<1].val +st[rt<<1|1].val ;}void build(int l,int r,int

2021-08-01 14:55:36 69

原创 hdu3308

添加链接描述#include <bits/stdc++.h>using namespace std;const int maxn=1e5+5;int a[maxn];int n,m,t;struct segtree{ int maxs; int lmax,rmax;}st[maxn<<2];void pushup(int rt,int l,int r){ st[rt].lmax =st[rt<<1].lmax ; st[rt

2021-08-01 10:33:47 38

原创 hdu1754线段树

添加链接描述#include<bits/stdc++.h>using namespace std;int n,m;const int maxn=2e5+5;int a[maxn];struct segtree{ int val;}st[maxn<<2];void pushup(int rt){ st[rt].val =max(st[rt<<1].val ,st[rt<<1|1].val );}void build(int l,int r

2021-07-30 16:19:21 55

空空如也

空空如也

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

TA关注的人

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