
蓝桥杯
巴扎嘿呀
学习知识图谱中~欢迎交流
展开
-
网络分析(带边权并查集)
#include<bits/stdc++.h>using namespace std;const int N=1e5+100;int n,m;int fa[N];int value[N];int d[N];int find(int x){ if(fa[x]==x) return x; int root=find(fa[x]); d[x]+=d[fa[x]]; return fa[x]=root;}int main(){ scanf("%d%d",&n,&am.原创 2020-11-12 15:38:10 · 194 阅读 · 0 评论 -
估计人数(最小路径可重复点覆盖)
#include<bits/stdc++.h>using namespace std;const int N=30;char g[N][N];int cnt;int match[N*N];bool st[N*N];int num[N][N];/*int h[N*N],e[2*N*N],ne[2*N*N],idx;void add(int a,int b){ e[idx]=b,ne[idx]=h[a],h[a]=idx++;}*/bool h[N*N][N*N];boo.原创 2020-11-11 15:33:04 · 534 阅读 · 0 评论 -
大胖子走迷宫(bfs)
不用循环队列会T#include<bits/stdc++.h>using namespace std;const int N=1000;const int M=1e6+100;char g[N][N];struct P{ int x,y,t;};int dx[4]={0,0,1,-1};int dy[4]={1,-1,0,0};int n,k;bool st[N][N];P q[M];int hh,tt;bool check(int x,int y,int s.原创 2020-11-10 15:45:05 · 480 阅读 · 0 评论 -
约瑟夫环问题
令f[i]表示i个人玩游戏报m退出,最后胜利者的编号,最后的答案是f[n]。f[i-1] 的序号0在f[i]中为(0+m)%if[i-1]的序号1在f[i]中为(1+m)%i...知道答案在f[i-1]的序号,则能知道f[i]中的答案序号以此类推,我们知道f[1]中的答案序号,则能推出f[n]中的答案序号#include<iostream>using namespace std;int main(){ int n,m; cin>>n; cin原创 2020-11-05 21:05:04 · 94 阅读 · 0 评论 -
历届试题 发现环(并查集+dfs)
#include<bits/stdc++.h>using namespace std;const int N=1e5+100;int h[N],ne[2*N],e[2*N],idx;int a[N];int p[N];int u;vector<int> v;int find(int x){ if(p[x]!=x) p[x]=find(p[x]); return p[x];}void add(int a,int b){ e[idx]=b,ne[idx]=h[.原创 2020-10-16 17:34:09 · 252 阅读 · 0 评论 -
历届试题 青蛙跳杯子(bfs枚举情况)
#include<bits/stdc++.h>using namespace std;const int INF=0x3f3f3f3f;string s1,s2;int n;int ans=INF;int d[6]={-3,-2,-1,1,2,3};int step;map<string,int> mp;struct P{ string x; int k;};int bfs(int u,string s){ queue<P> q; P t=.原创 2020-10-16 10:06:45 · 140 阅读 · 0 评论 -
历届试题 拉马车(模拟)
#include<bits/stdc++.h>using namespace std;string s1,s2;bool check(){ if(s1.length()!=0&&s2.length()!=0) return true; return false;}int main(){ cin>>s1>>s2; string s=""; int num=1; //cout<<s.size()<<endl; .原创 2020-10-16 09:18:40 · 155 阅读 · 0 评论 -
历届试题 Excel地址(进制转换+进位)
#include<bits/stdc++.h>#define ll long longusing namespace std;vector<int> v;int main(){ ll n;scanf("%lld",&n); ll t; ll g; while(n>=1){ t=n%26; n/=26; if(t==0){ n-=1; v.push_back(25); } else{ v.push_back(t-1).原创 2020-10-16 08:37:56 · 124 阅读 · 0 评论 -
历届试题 最大子阵(最大子矩阵和)
#include<bits/stdc++.h>using namespace std;const int INF=0x3f3f3f3f;const int N=550;int a[N][N];int main(){ int n,m;scanf("%d%d",&n,&m); for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ int x;scanf("%d",&x); a[i][j]=a[i.原创 2020-10-16 08:27:38 · 192 阅读 · 0 评论 -
历届试题 国王的烦恼(并查集)
#include<bits/stdc++.h>using namespace std;const int N=1e4+10;const int M=1e5+100;int p[N];int n,m;struct P{ int x,y,time;}a[M];bool cmp(P w,P e){ return w.time>e.time;}int find(int u){ if(p[u]!=u) p[u]=find(p[u]); return p[u];}bo.原创 2020-10-15 23:54:02 · 268 阅读 · 0 评论 -
历届试题 小数第n位(快速幂)
#include<bits/stdc++.h>#define ll long longusing namespace std;ll qmi(ll a,ll b,ll m){ ll ans=1; while(b){ if(b&1) ans=ans*a%m; a=a*a%m; b>>=1; } return ans%m;}int main(){ ll a,b,n;scanf("%lld%lld%lld",&a,&b,&n).原创 2020-10-15 23:33:53 · 93 阅读 · 0 评论 -
历届试题 合根植物(bfs)
#include<bits/stdc++.h>using namespace std;const int N=1e3+100;const int M=1e6+10;vector<int> v[M];//bool g[M][M];int a[N][N];bool st[N][N];int n,m;int dx[5]={0,0,1,-1};int dy[5]={1,-1,0,0};struct P{ int x,y;};bool check(int x,in.原创 2020-10-15 21:45:27 · 126 阅读 · 0 评论 -
历届试题 分考场(dfs好题)
#include<bits/stdc++.h>using namespace std;const int INF=0x3f3f3f3f;const int N=110;int n,m;int len;vector<int> v[N];int a[N];bool g[N][N];int mn=INF;void dfs(int u){ //cout<<"sd"<<endl; //printf("%d\n",mn); if(len>.原创 2020-10-15 19:40:42 · 131 阅读 · 0 评论 -
历届试题 九宫幻方(搜索)
#include<bits/stdc++.h>using namespace std;const int N=5;struct P{ int x,y;};int a[N][N];int b[N][N];bool st[15];int num;int f;vector<P> v;bool check(){ int t=0; for(int i=1;i<=3;i++){ t+=a[1][i]; } for(int i=1;i<=3;i++.原创 2020-10-15 16:11:56 · 274 阅读 · 0 评论 -
历届试题 k倍区间(前缀和+思维)
#include<bits/stdc++.h>#define ll long longusing namespace std;const int N=1e5+100;int a[N];int sum[N];int mp[N];int main(){ ll ans=0; int n,k;scanf("%d%d",&n,&k); mp[0]++; for(int i=1;i<=n;i++){ scanf("%d",&a[i]); // if.原创 2020-10-15 15:27:27 · 113 阅读 · 0 评论 -
历届试题 日期问题(模拟,闰年)
#include<bits/stdc++.h>using namespace std;int a[5];vector<int> v1;vector<int> v;int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};bool run(int x){ if((x%4==0&&x%100!=0)||x%400==0) return true; return false;}bool chec.原创 2020-10-15 13:47:39 · 115 阅读 · 0 评论 -
历届试题 包子凑数(dp)
#include<bits/stdc++.h>using namespace std;const int N=1e4+10;int a[110];int dp[N];int main(){ bool f=true; int n;scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&a[i]); dp[a[i]]=1; } if(n==1&&a[0]!=1) f=false; for.原创 2020-10-15 12:49:35 · 140 阅读 · 0 评论 -
历届试题 兰顿蚂蚁(模拟)
#include<bits/stdc++.h>using namespace std;const int N=110;int x,y,k;char c;int g[N][N];int fang;void get(){ if(c=='L') fang=0; if(c=='U') fang=1; if(c=='R') fang=2; if(c=='D') fang=3;}int main(){ int n,m;scanf("%d%d",&n,&m); .原创 2020-10-15 12:23:07 · 153 阅读 · 0 评论 -
历届试题 分糖果(模拟)
#include<bits/stdc++.h>using namespace std;const int N=110;int a[N];int n;bool check(){ if(a[0]!=a[n-1]) return false; for(int i=1;i<n;i++){ if(a[i]!=a[i-1]) return false; } return true;}int main(){ scanf("%d",&n); for(int i=0.原创 2020-10-15 10:55:02 · 150 阅读 · 0 评论 -
历届试题 小朋友排队(树状数组)
#include<bits/stdc++.h>#define ll long longusing namespace std;const int N=1e5+100;int n;int a[N],b[N],c[N],d[N];ll ans;int len;int lisan(int x){ int t=lower_bound(b,b+n,x)-b; return t+1;}int lowbit(int x){ return x&(-x);}void upd.原创 2020-10-14 22:50:17 · 118 阅读 · 0 评论 -
历届试题 蚂蚁感冒(思维)
#include<bits/stdc++.h>using namespace std;const int N=55;struct P{ int num; int f;}a[N];int main(){ int n;scanf("%d",&n); for(int i=0;i<n;i++){ int x;scanf("%d",&x); a[i].num=abs(x); if(x<0) a[i].f=0; else a[i].f=1; .原创 2020-10-14 20:23:32 · 83 阅读 · 0 评论 -
历届试题 数字游戏(数学)
#include<bits/stdc++.h>#define ll long longusing namespace std;const int N=1e6+100;int a[N];int cnt=0;int main(){ ll n,k,T;scanf("%lld%lld%lld",&n,&k,&T); ll ans=0; ll sum=(1+n)*n/2; sum=sum%k; ll t=1; while(cnt<T){ t=t%.原创 2020-10-14 19:25:14 · 222 阅读 · 0 评论 -
历届试题 回文数字(水题)
#include<bits/stdc++.h>using namespace std;vector<int> v;vector<int> v1;vector<int> v2; int get(int x){ int sum=0; while(x!=0){ int t=x%10; sum+=t; x/=10; } return sum;}bool hui(int x){ v1.clear(); v2.clear(); w.原创 2020-10-14 19:02:42 · 88 阅读 · 0 评论 -
历届试题 网络寻路(搜索)
#include<bits/stdc++.h>using namespace std;const int N=1e4+100;const int M=1e5+100;int h[N],e[M],ne[M],idx=1;bool st[N];int ans=0;int start;void add(int a,int b){ e[idx]=b,ne[idx]=h[a],h[a]=idx++;}void dfs(int s,int u,int t){ for(int i=h.原创 2020-10-14 17:08:35 · 141 阅读 · 0 评论 -
历届试题 危险系数(连通性)
#include<bits/stdc++.h>using namespace std;const int N=1010;int h[N],e[2*N],ne[2*N],idx;bool st[N];int t;bool f;int x,y;void add(int a,int b){ e[idx]=b,ne[idx]=h[a],h[a]=idx++;}void dfs(int u){ if(f) return ; st[u]=true; for(int i=h[u].原创 2020-10-14 16:31:49 · 105 阅读 · 0 评论 -
历届试题 幸运数(递归模拟)
#include<bits/stdc++.h>using namespace std;const int N=1e6+10;int a[N];int cnt=0;int m,n;void f(int s){ int t=a[s]; int k=s; for(int i=s+1;i<=cnt;i++){ if(i%t) a[++k]=a[i]; } cnt=k; if(t>=n) return; f(s+1);}int main(){ scanf.原创 2020-10-14 16:03:13 · 168 阅读 · 0 评论 -
历届试题 大臣的旅费(树的直径)
#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int h[N],e[2*N],ne[2*N],w[2*N],idx;int n;int d[N];void add(int a,int b,int v){ e[idx]=b,ne[idx]=h[a],w[idx]=v,h[a]=idx++;}void dfs(int u,int fa,int dis){ d[u]=dis; for(int i=h[.原创 2020-10-14 15:29:32 · 97 阅读 · 0 评论 -
历届试题 打印十字图(模拟)
#include<bits/stdc++.h>using namespace std;const int N=200;char c[N][N];int main(){ int n;scanf("%d",&n); int k=n; n=4*n+5; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ c[i][j]='.'; // cout<<c[i][j]<<endl; } .原创 2020-10-14 15:11:12 · 123 阅读 · 0 评论 -
历届试题 格子刷油漆(dp)
#include<bits/stdc++.h>#define ll long longusing namespace std;const ll mod=1000000007;const int N=1010;ll a[N];ll b[N];int main(){ int n;scanf("%d",&n); if(n==1){ printf("%d\n",2); return 0; } b[0]=1; a[1]=1; a[2]=6; for(int i.原创 2020-10-14 09:36:07 · 228 阅读 · 0 评论 -
历届试题 买不到的数目(dp)
#include<bits/stdc++.h>using namespace std;const int N=1e6+10;int dp[N];int main(){ int a,b;scanf("%d%d",&a,&b); dp[a]=1; dp[b]=1; for(int i=1;i<=N;i++){ if(i>a) dp[i]=dp[i]|dp[i-a]; if(i>b) dp[i]=dp[i]|dp[i-b]; //if(d.原创 2020-10-13 23:33:10 · 123 阅读 · 0 评论 -
历届试题 连号区间数(思维)
#include<bits/stdc++.h>using namespace std;const int INF=0x3f3f3f3f;const int N=5e4+100;int a[N];int main(){ int num=0; int n;scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=n;i++){ int mx=0,mn=INF; .原创 2020-10-13 23:32:35 · 107 阅读 · 0 评论 -
历届试题 翻硬币(贪心)
#include<bits/stdc++.h>using namespace std;const int INF=0x3f3f3f3f;const int N=5e4+100;int a[N];int main(){ int num=0; string s1,s2;cin>>s1>>s2; int len=s1.length(); for(int i=0;i<len;i++){ if(s1[i]!=s2[i]){ s1[i+1]=(s1.原创 2020-10-13 23:32:02 · 97 阅读 · 0 评论 -
历届试题 错误票据(排序)
#include<bits/stdc++.h>using namespace std;const int N=100010;map<int,int> mp;map<int,int>::iterator it;int main(){ int T;scanf("%d",&T); char c; int x; int ans1,ans2; while(T--){ while(1){ scanf("%d",&x); c=get.原创 2020-10-13 23:29:44 · 118 阅读 · 0 评论 -
历届试题 剪格子(搜索)
#include<bits/stdc++.h>using namespace std;const int N=15;int g[N][N];int n,m;int sum;int num;int mn=0x3f3f3f3f;int dx[4]={0,0,1,-1};int dy[4]={1,-1,0,0};bool st[N][N];bool f=false;void dfs(int x,int y,int s){ if(s==sum){ f=true; mn.原创 2020-10-13 23:29:03 · 127 阅读 · 0 评论 -
历届试题 带分数(搜索)
#include<bits/stdc++.h>using namespace std;const int N=15;int a[N];bool st[N];int num=0;int n;int getnum(int x,int y){ int sum=0; for(int i=x;i<=y;i++){ sum=sum*10+a[i]; } return sum;}void dfs(int u){ if(u==10){ for(int i=1;i<.原创 2020-10-13 23:28:01 · 152 阅读 · 0 评论 -
历届试题 核桃的数量(最小公倍数)
#include<bits/stdc++.h>using namespace std;int main(){ int a,b,c; scanf("%d%d%d",&a,&b,&c); for(int i=a;;i+=a){ if(i%b==0){ if(i%c==0){ printf("%d\n",i); break; } } } return 0;}原创 2020-10-13 23:27:20 · 87 阅读 · 0 评论