9-25模拟赛 By cellur925
1.相遇
(railway.cpp/c/pas)
时间限制:1s
内存限制:256MB
【问题描述】
已知我国有 n 座城市,这些城市通过 n-1 条高铁相连。且任意两个城市联通。
小 A 想从 x1 号城市出发,到 y1 号城市,小 B 想从 x2 号城市出发,到 y2 号
城市,问他们是否可能在路途中相遇(出现在同一城市)
你需要回答 m 次这样的问题。
【输入】
输入文件名为 railway.in。
第一行一个数 T(<=10),表示数据组数
对于每一组数据:
第一行两个数 n,m(1<=n,m<=100,000)
第 2~n 行,每行两个数 x,y 表示有一条铁路连接城市 x 和 y
接下来 m 行每行四个数,分别表示 x1,y1,x2,y2,表示一次询问
【输出】
输出文件名为 railway.out。
对于每次询问输出 YES 或 NO
【输入输出样例】
railway.in | railway.out |
1 4 2 1 2 2 3 3 4 1 2 3 4 1 4 2 3 |
NO YES |
【数据说明】
对于 30%的数据,n,m<=100
对于 60%的数据,n,m<=1000
对于 100%的数据,n,m<=100,000
太没意思了,树上路径求交,这已经是我近三个月做的第三次了==上次计蒜客刚考过==
考察:LCA+ 分类情况讨论
预计得分:100分
实际得分:100分
1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 #include<queue> 5 #include<cmath> 6 #define maxn 100090 7 8 using namespace std; 9 10 int n,m,T,tot,t; 11 int d[maxn],head[maxn],f[maxn][20]; 12 struct node{ 13 int to,next; 14 }edge[maxn*2]; 15 16 void add(int x,int y) 17 { 18 edge[++tot].to=y; 19 edge[tot].next=head[x]; 20 head[x]=tot; 21 } 22 23 void init() 24 { 25 queue<int>q; 26 q.push(1);d[1]=1; 27 while(!q.empty()) 28 { 29 int u=q.front();q.pop(); 30 for(int i=head[u];i;i=edge[i].next) 31 { 32 int v=edge[i].to; 33 if(d[v]) continue; 34 d[v]=d[u]+1; 35 f[v][0]=u; 36 for(int j=1;j<=t;j++) 37 f[v][j]=f[f[v][j-1]][j-1]; 38 q.push(v); 39 } 40 } 41 } 42 43 int lca(int x,int y) 44 { 45 if(d[x]>d[y]) swap(x,y); 46 for(int i=t;i>=0;i--) 47 if(d[f[y][i]]>=d[x]) y=f[y][i]; 48 if(x==y) return x; 49 for(int i=t;i>=0;i--) 50 if(f[x][i]!=f[y][i]) x=f[x][i],y=f[y][i]; 51 return f[x][0]; 52 } 53 54 void Clear() 55 { 56 tot=0; 57 memset(head,0,sizeof(head)); 58 memset(d,0,sizeof(d)); 59 memset(f,0,sizeof(f)); 60 } 61 62 int main() 63 { 64 freopen("railway.in","r",stdin); 65 freopen("railway.out","w",stdout); 66 scanf("%d",&T); 67 while(T--) 68 { 69 scanf("%d%d",&n,&m); 70 t=log2(n)+1; 71 for(int i=1;i<=n-1;i++) 72 { 73 int x=0,y=0; 74 scanf("%d%d",&x,&y); 75 add(x,y),add(y,x); 76 } 77 init(); 78 for(int i=1;i<=m;i++) 79 { 80 int a=0,b=0,c=0,e=0; 81 scanf("%d%d%d%d",&a,&b,&c,&e); 82 int p=lca(a,b); 83 int q=lca(c,e); 84 if(p==q) {printf("YES\n");continue;} 85 else if(d[p]>d[q]) 86 { 87 if(lca(p,c)==p||lca(p,e)==p) printf("YES\n"); 88 else printf("NO\n"); 89 } 90 else 91 { 92 if(lca(q,a)==q||lca(q,b)==q) printf("YES\n"); 93 else printf("NO\n"); 94 } 95 } 96 Clear(); 97 } 98 return 0; 99 }
AC--railway
2. 计数
(count.cpp/c/pas)
时间限制: 1s
内存限制: 256MB
【问题描述】
小 A 是一名热衷于优化各种算法的 OIER,有一天他给了你一个随机生成的 1~n 的排列, 并定
义区间[l,r]的价值为:
他想请你告诉他, 所有区间的价值的总和为多少
【输入】
输入文件名为 count.in。
第一行一个数 T(<=10), 表示数据组数
对于每一组数据:
第一行一个数 n(1<=n,m<=100,000)
第二行 n 个数 a1...an, 表示一个 1~n 的随机的排列
【输出】
输出文件名为 count.out。
对于每组数据输出一个数, 表示答案
【输入输出样例】
count.in | count.out |
1 4 3 2 4 1 |
14 |
【数据范围】
对于 60%的数据: n<=1000
对于 100%的数据, n<=100,000
考场上想草草n²枚举区间,然后随便找个数据结构维护下区间最值。开始是想用ST表的,但是因为不会打了,所以就只能用线段树了。
预计得分:60分
实际得分:30分
考后发现我的线段树被卡了呜呜,线段树每次查询是logn的,预处理nlogn,所以总复杂度约为O(n²logn)。理论上是可以苟过60分的,但是.......但是......听巨佬们说线段树常数巨大,于是我就被成功卡常了==考后照着写了一遍ST表,就60分了。因为ST表的预处理复杂度同样是nlogn,但是查询是O(1)的。线段树没有修改操作的时候最好不要用的...这个故事告诉我们,多掌握一些知识总是好的==。
Scape:你就是数据结构学傻了。
1 #include<cstdio> 2 #include<algorithm> 3 #define M 100090 4 5 using namespace std; 6 typedef long long ll; 7 8 int T,n; 9 int seq[M]; 10 ll ans; 11 struct SegmentTree{ 12 int l,r; 13 int maxn,minn; 14 }t[M*4]; 15 16 void build(int p,int l,int r) 17 { 18 t[p].l=l,t[p].r=r; 19 if(l==r) 20 { 21 t[p].maxn=seq[l]; 22 t[p].minn=seq[l]; 23 return ; 24 } 25 int mid=(l+r)>>1; 26 build(p*2,l,mid); 27 build(p*2+1,mid+1,r); 28 t[p].maxn=max(t[p*2].maxn,t[p*2+1].maxn); 29 t[p].minn=min(t[p*2].minn,t[p*2+1].minn); 30 } 31 32 int ask1(int p,int l,int r) 33 { 34 if(t[p].l==l&&t[p].r==r) return t[p].maxn; 35 int mid=(t[p].l+t[p].r)>>1; 36 if(l>mid) return ask1(p*2+1,l,r); 37 else if(r<=mid) return ask1(p*2,l,r); 38 else return max(ask1(p*2,l,mid),ask1(p*2+1,mid+1,r)); 39 } 40 41 int ask2(int p,int l,int r) 42 { 43 if(t[p].l==l&&t[p].r==r) return t[p].minn; 44 int mid=(t[p].l+t[p].r)>>1; 45 if(l>mid) return ask2(p*2+1,l,r); 46 else if(r<=mid) return ask2(p*2,l,r); 47 else return min(ask2(p*2,l,mid),ask2(p*2+1,mid+1,r)); 48 } 49 50 int main() 51 { 52 freopen("count.in","r",stdin); 53 freopen("count.out","w",stdout); 54 scanf("%d",&T); 55 while(T--) 56 { 57 scanf("%d",&n); 58 for(int i=1;i<=n;i++) scanf("%d",&seq[i]); 59 build(1,1,n); 60 for(int i=1;i<=n;i++) 61 for(int j=i;j<=n;j++) 62 { 63 if(i==j) continue; 64 int qwq=ask1(1,i,j); 65 int orz=ask2(1,i,j); 66 ans+=qwq-orz; 67 //printf("i:=%d j:=%d %d %d\n",i,j,qwq,orz); 68 } 69 printf("%lld\n",ans); 70 ans=0; 71 //需不需要清空呢233好慌啊233 72 } 73 return 0; 74 }
考前--30pts count
1 #include<cstdio> 2 #include<algorithm> 3 #include<cmath> 4 5 using namespace std; 6 typedef long long ll; 7 8 int T,n; 9 ll ans; 10 int fa[200000][20],fb[200000][20]; 11 12 int sta(int l,int r) 13 { 14 int k=log2(r-l+1); 15 return max(fa[l][k],fa[r-(1<<k)+1][k]); 16 } 17 18 int stb(int l,int r) 19 { 20 int k=log2(r-l+1); 21 return min(fb[l][k],fb[r-(1<<k)+1][k]); 22 } 23 24 int main() 25 { 26 freopen("count.in","r",stdin); 27 freopen("count.out","w",stdout); 28 scanf("%d",&T); 29 while(T--) 30 { 31 scanf("%d",&n); 32 for(int i=1;i<=n;i++) 33 scanf("%d",&fa[i][0]),fb[i][0]=fa[i][0]; 34 for(int j=1;j<=30;j++) 35 for(int i=1;i+(1<<j)-1<=n;i++) 36 fa[i][j]=max(fa[i][j-1],fa[i+(1<<(j-1))][j-1]); 37 for(int j=1;j<=30;j++) 38 for(int i=1;i+(1<<j)-1<=n;i++) 39 fb[i][j]=min(fb[i][j-1],fb[i+(1<<(j-1))][j-1]); 40 for(int i=1;i<=n;i++) 41 for(int j=i+1;j<=n;j++) 42 ans+=sta(i,j)-stb(i,j); 43 printf("%lld\n",ans); 44 ans=0; 45 } 46 return 0; 47 }
考后--60pts count
正解1(By Chemist):分治
我们考虑题目中给出的式子:
我们可以转化为求所有区间中的最大值,将他们相加;再求出所有区间的最小值,把答案减去他们。
我们考虑找到一个区间中最大值的位置,然后以这个位置为界把区间分成两部分。那么这部分这个最大值作为区间最大值的区间个数就是这个值左边的元素个数x右边的元素个数(可能有点绕qwq)
最小值同理。
之后我们递归求解 ,就能完美地覆盖所有的区间。
枚举区间的最坏复杂度可达到O(n)(据算法作者所述),但是开始Chemist用的是O(n)找区间最值,优化可用st表降低复杂度,但是st表优化的情况只适用于给出的序列互异的情况(是一个排列),因为st表是不能记录位置的,我们需要另开一个数组来映射每个唯一元素的唯一位置。
1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const int M=1e5+10; 5 int n,T,fa[M][30],fb[M][30],pos[M]; 6 ll ans; 7 int sta(int l,int r) 8 { 9 int k=log2(r-l+1); 10 return max(fa[l][k],fa[r-(1<<k)+1][k]); 11 } 12 13 int stb(int l,int r) 14 { 15 int k=log2(r-l+1); 16 return min(fb[l][k],fb[r-(1<<k)+1][k]); 17 } 18 19 void divide1(int l,int r) 20 { 21 if(l>r)return; 22 int mx=0,p=0; 23 mx=sta(l,r); 24 p=pos[mx]; 25 ans+=(ll)mx*(p-l+1)*(r-p+1); 26 divide1(l,p-1); 27 divide1(p+1,r); 28 } 29 void divide2(int l,int r) 30 { 31 if(l>r)return; 32 int mn=1e9,p=0; 33 mn=stb(l,r); 34 p=pos[mn]; 35 ans-=(ll)mn*(p-l+1)*(r-p+1); 36 divide2(l,p-1); 37 divide2(p+1,r); 38 } 39 int main() 40 { 41 freopen("count.in","r",stdin); 42 freopen("count.out","w",stdout); 43 scanf("%d",&T); 44 while(T--) 45 { 46 scanf("%d",&n); 47 for(int i=1;i<=n;i++) 48 scanf("%d",&fa[i][0]),fb[i][0]=fa[i][0],pos[fa[i][0]]=i; 49 for(int j=1;j<=30;j++) 50 for(int i=1;i+(1<<j)-1<=n;i++) 51 fa[i][j]=max(fa[i][j-1],fa[i+(1<<(j-1))][j-1]); 52 for(int j=1;j<=30;j++) 53 for(int i=1;i+(1<<j)-1<=n;i++) 54 fb[i][j]=min(fb[i][j-1],fb[i+(1<<(j-1))][j-1]); 55 divide1(1,n); 56 divide2(1,n); 57 printf("%lld\n",ans); 58 ans=0; 59 memset(fa,0,sizeof(fa)); 60 memset(fb,0,sizeof(fb)); 61 } 62 return 0; 63 }
Chemist--AC count
正解2(By miku_sama):单调栈
先%一手炸鲨鱼
维护两个栈:一个保存单调递增的,一个保存单调递减的,大体思路同Chemist.我们每加入一个数,就证明当前的栈顶作最大值的日子到头了==。所以我们加上他所作出的贡献。
结构体里的权值要用longlong,很玄学。
1 #include<cstdio> 2 #include<algorithm> 3 #define maxn 100090 4 5 using namespace std; 6 typedef long long ll; 7 8 int T,n; 9 int a[100090]; 10 ll rmax,rmin; 11 struct sta{ 12 int pos;ll val; 13 }mx[maxn],mi[maxn]; 14 15 int main() 16 { 17 freopen("count.in","r",stdin); 18 freopen("count.out","w",stdout); 19 scanf("%d",&T); 20 while(T--) 21 { 22 scanf("%d",&n); 23 for(int i=1;i<=n;i++) scanf("%d",&a[i]); 24 int maxhead=0,minhead=0; 25 mx[maxhead].pos=0,mx[maxhead].val=1e9; 26 mi[minhead].pos=0,mi[minhead].val=-1; 27 for(int i=1;i<=n;i++) 28 { 29 while(mx[maxhead].val<a[i]) rmax+=mx[maxhead].val*(i-mx[maxhead].pos)*(mx[maxhead].pos-mx[maxhead-1].pos),maxhead--; 30 mx[++maxhead]=(sta){i,a[i]}; 31 while(mi[minhead].val>a[i]) rmin+=mi[minhead].val*(i-mi[minhead].pos)*(mi[minhead].pos-mi[minhead-1].pos),minhead--; 32 mi[++minhead]=(sta){i,a[i]}; 33 } 34 while(maxhead) 35 { 36 rmax+=mx[maxhead].val*(n+1-mx[maxhead].pos)*(mx[maxhead].pos-mx[maxhead-1].pos); 37 maxhead--; 38 } 39 while(minhead) 40 { 41 rmin+=mi[minhead].val*(n+1-mi[minhead].pos)*(mi[minhead].pos-mi[minhead-1].pos); 42 minhead--; 43 } 44 printf("%lld\n",rmax-rmin); 45 rmax=0,rmin=0; 46 } 47 return 0; 48 }
View Code
***Update:大佬语:神奇之处就在于不是暴力的去找每个区间的最大和最小值,而是逆向统计有多少区间以某个数作为最大和最小值。
3.树上统计
(treecnt.c/cpp/pas)
时间限制: 1s
内存限制: 256MB
【题目描述】
给定一棵n个点的树树。
定义Tree[L,R]表示为了使得L~R号点两两连通, 最少需要选择的边的数量。
求
【输入格式】
第一行一个数, n表示点数(n<=100000)
接下来n-1行每行两个数, x和y, 表示一条连接x号点和y号点的边(x,y<=n)
【输出格式】
输出一个数表示答案
【输入输出样例】
treecnt.in | treecnt.out |
4 1 4 1 3 2 4 |
16 |
【数据范围】
对于20%的数据: n<=10
对于40%的数据: n<=300
对于60%的数据: n<=3000
对于另外20%的数据: 树呈一条链
对于100%的数据: n<=100000
心路历程:
如图,开始想用80分算法的,后来发现60分时枚举区间就需要n²,果断放弃想40分算法,枚举区间用去了n²,那么每次操作就要O(n)内完成。后来想了一想,可以求出这个区间所有点的LCA,然后枚举这个区间的所有点,暴力向上跳,借助求LCA的遗产f数组可以到他的父亲,就还可以dfs一遍记录树上这个节点的前驱编号。(考试时想出了无向边记录一次的方法,感觉很资瓷)。这就O(n)了。区间内所有点的LCA可以预处理求出来,复杂度有保障了。
敲完距考试结束还有大概15分钟的样子,去想链的做法。还是比较好想的,只不过不知道如何判是不是链的情况,根据阅读理解数据范围描述,猜测应该n在3000左右。链时就把它处理成序列,这个节点本应在以它编号作为下标的位置上,现在不是了,用数组记录一下,然后暴力找到一条链的端点(用度数判,暴力获得每个点的相对位置),再用线段树(?)维护下最值(找区间蔓延的最远地方)。
后来开空间时有些晕了,好像会MLE的样子,不管了到时间了,20分(应该)能拿到吧....
预计得分:60分
实际得分:40分
cena上链的情况栈溢出了,luogu上是MLE了,可怜我198行代码了qwq。不过暴力打成这样就海星了。
1 #include<cstdio> 2 #include<algorithm> 3 #include<queue> 4 #include<cstring> 5 #include<cmath> 6 #define maxnn 100090 7 8 using namespace std; 9 typedef long long ll; 10 11 int n,tot,lim,root; 12 ll ans; 13 int head[500],pre[500]; 14 int f[500][20],d[maxnn],lca[500][500]; 15 int du[maxnn]; 16 bool vis[maxnn]; 17 struct node{ 18 int to,next; 19 }edge[maxnn*2];// 改一下范围 迁就一下链的情况 20 struct SegmentTree{ 21 int l,r; 22 int maxn,minn; 23 }t[maxnn*4]; 24 25 void add(int x,int y) 26 { 27 edge[++tot].to=y; 28 edge[tot].next=head[x]; 29 head[x]=tot; 30 } 31 32 void dfs(int u,int fa) 33 { 34 for(int i=head[u];i;i=edge[i].next) 35 { 36 int v=edge[i].to; 37 if(v==fa) continue; 38 pre[v]=i; 39 dfs(v,u); 40 } 41 } 42 43 void init() 44 { 45 queue<int>q; 46 q.push(1),d[1]=1; 47 while(!q.empty()) 48 { 49 int u=q.front();q.pop(); 50 for(int i=head[u];i;i=edge[i].next) 51 { 52 int v=edge[i].to; 53 if(d[v]) continue; 54 d[v]=d[u]+1; 55 f[v][0]=u; 56 for(int j=1;j<=lim;j++) 57 f[v][j]=f[f[v][j-1]][j-1]; 58 q.push(v); 59 } 60 } 61 } 62 63 int Lca(int x,int y) 64 { 65 if(d[x]>d[y]) swap(x,y); 66 for(int i=lim;i>=0;i--) 67 if(d[f[y][i]]>=d[x]) y=f[y][i]; 68 if(x==y) return x; 69 for(int i=lim;i>=0;i--) 70 if(f[y][0]!=f[x][0]) y=f[y][0],x=f[x][0]; 71 return f[x][0]; 72 } 73 74 void pre_lca() 75 { 76 for(int i=1;i<=n;i++) 77 for(int j=i+1;j<=n;j++) 78 { 79 if(j==i+1) lca[i][j]=Lca(i,j); 80 else lca[i][j]=Lca(lca[i][j-1],j); 81 } 82 } 83 84 void work(int l,int r) 85 { 86 int fa=lca[l][r]; 87 ll tmp=0; 88 memset(vis,0,sizeof(vis)); 89 for(int i=l;i<=r;i++) 90 { 91 int orz=i; 92 while(orz!=fa) 93 { 94 if(!vis[pre[orz]]) tmp++,vis[pre[orz]]=1; 95 orz=f[orz][0]; 96 } 97 } 98 ans+=tmp; 99 } 100 101 void dfs_lace(int u) 102 { 103 vis[u]=1; 104 for(int i=head[u];i;i=edge[i].next) 105 { 106 int v=edge[i].to; 107 if(vis[v]) continue; 108 d[v]=d[u]+1; 109 dfs_lace(v); 110 } 111 } 112 113 void build(int p,int l,int r) 114 { 115 t[p].l=l,t[p].r=r; 116 if(l==r) 117 { 118 t[p].maxn=d[l]; 119 t[p].minn=d[l]; 120 return ; 121 } 122 int mid=(l+r)>>1; 123 build(p*2,l,mid); 124 build(p*2+1,mid+1,r); 125 t[p].maxn=max(t[p*2].maxn,t[p*2+1].maxn); 126 t[p].minn=min(t[p*2].minn,t[p*2+1].minn); 127 } 128 129 int ask1(int p,int l,int r) 130 { 131 if(t[p].l==l&&t[p].r==r) return t[p].maxn; 132 int mid=(t[p].l+t[p].r)>>1; 133 if(l>mid) return ask1(p*2+1,l,r); 134 else if(r<=mid) return ask1(p*2,l,r); 135 else return max(ask1(p*2,l,mid),ask1(p*2+1,mid+1,r)); 136 } 137 138 int ask2(int p,int l,int r) 139 { 140 if(t[p].l==l&&t[p].r==r) return t[p].minn; 141 int mid=(t[p].l+t[p].r)>>1; 142 if(l>mid) return ask2(p*2+1,l,r); 143 else if(r<=mid) return ask2(p*2,l,r); 144 else return min(ask2(p*2,l,mid),ask2(p*2+1,mid+1,r)); 145 } 146 147 int main() 148 { 149 freopen("treecnt.in","r",stdin); 150 freopen("treecnt.out","w",stdout); 151 scanf("%d",&n); 152 if(n>3000) 153 { 154 for(int i=1;i<=n-1;i++) 155 { 156 int x=0,y=0; 157 scanf("%d%d",&x,&y); 158 add(x,y),add(y,x); 159 du[x]++;du[y]++; 160 } 161 for(int i=1;i<=n;i++) 162 if(du[i]==1) 163 { 164 root=i; 165 break; 166 } 167 d[root]=1; 168 dfs_lace(root); 169 build(1,1,n); 170 for(int i=1;i<=n;i++) 171 for(int j=i+1;j<=n;j++) 172 { 173 int qwq=ask1(1,i,j); 174 int orz=ask2(1,i,j); 175 ans+=qwq-orz; 176 } 177 printf("%lld",ans); 178 return 0; 179 } 180 lim=log2(n)+1; 181 for(int i=1;i<=n-1;i++) 182 { 183 int x=0,y=0; 184 scanf("%d%d",&x,&y); 185 add(x,y),add(y,x); 186 } 187 dfs(1,0); 188 for(int i=1;i<=n;i++) 189 pre[i]=(pre[i]+1)>>1; 190 init(); 191 pre_lca(); 192 // 开始乱搞n^3logn 193 for(int i=1;i<=n;i++) 194 for(int j=i+1;j<=n;j++) 195 work(i,j); 196 printf("%lld\n",ans); 197 return 0; 198 }
考场--40pts treecnt
正解:鸽了qwq。
今天补上
期望得分:100+60+60=220
实际得分:100+30+40=170
暴力分打的比以前多了,但还是比期望少了很多,出现了很多意料外的问题...
小结:今天的题目感觉比较简单的样子,感觉暴力分好打而且分多==没想到是Day2的难度,T1就考树不资瓷,然后三道题都可能用的倍增 ,这样真的好么qwq。没有我最不擅长的dp就很资瓷,因为我连普及组的dp水平都达不到。而且出了两道树上的问题,我还是比较擅长的,很资瓷。否则我绝对拿不到人生中第一个也是最后一个rank1(大概是因为有Dalao挂题了以及今天获得了生日buff)然后吐槽一下题解,就会说暴力枚举判断,不能说详细一些嘛(逃)。
另:不会明天考dp吧qwq。
转载于:https://www.cnblogs.com/nopartyfoucaodong/p/9700497.html
9-25模拟赛 By cellur925相关推荐
- 2020年蓝桥杯模拟赛2020.3.25直播笔记
2020年蓝桥杯模拟赛解题报告(CPP版本) 第八题 长草的bfs写法[我想暴力模拟O kmn] 深搜会爆 bfs像投到水里的涟漪 问题: const int dx[] = {1, 0, -1, 0} ...
- 2021年 第12届 蓝桥杯 第4次模拟赛真题详解及小结【Java版】
蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...
- 2021年 第12届 蓝桥杯 第3次模拟赛真题详解及小结【Java版】
蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...
- 2020年 第11届 蓝桥杯 第2次模拟赛真题详解及小结【Java版】
蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...
- 10.30 NFLS-NOIP模拟赛 解题报告
总结:今天去了NOIP模拟赛,其实是几道USACO的经典的题目,第一题和最后一题都有思路,第二题是我一开始写了个spfa,写了一半中途发现应该是矩阵乘法,然后没做完,然后就没有然后了!第二题的暴力都没 ...
- 蓝桥杯省内模拟赛解题过程
今天参加了一场蓝桥杯模拟赛,做的咋样还不知道,本博客的题解只是我提交的代码,并不代表真正的题解,大家参考着看看吧. 题目一 问题描述 将LANQIAO中的字母重新排列,可以得到不同的单词,如LANQI ...
- 省选模拟赛记录(越往下越新哦~~~)
LOG 模拟赛 第一次见尼玛这么给数据范围的-- 开考有点困,迷迷糊糊看完了三道题,真的是像老吕说的那样,一道都不会-- 思考T1,感觉有点感觉,但是太困了,就先码了暴力,发现打表可以50分,于是就大 ...
- c++判断奇偶_第十一届(今年)蓝桥杯省模拟赛 试题+源码 C/C++详解
后台回复开发工具,免费获取C语言常用编译器 本文章来源:CSDN|亓官劼 本文是第十一届蓝桥杯省模拟赛的试题和部分题解,博主参加的是4.13日的下午场,也就是本次模拟赛的第一天了吧,不知道有没有上午场 ...
- 5.4QBXT 模拟赛 (Rank1 机械键盘 蛤蛤)
NOIP2016提高组模拟赛 --By wangyurzee7 中文题目名称 纸牌 杯具 辣鸡 英文题目与子目录名 cards cups spicychicken 可执行文件名 cards cups ...
最新文章
- 独家 | 使用深度神经网络在Oculus Quest上进行准确的手部追踪
- MySQL8.0 - 新特性 - 临时表改进
- HashMap 的设置值,取值,遍历等
- python矩阵相加_【python矩阵相加怎么做,这可是证明python功能的大好机会】- 环球网校...
- 【MyBatis笔记】01-MyBatis入门程序
- 智慧新泰时空大数据与云平台_《智慧城市时空大数据与云平台建设技术大纲》(2017版)正式发布...
- 虚假信息成物联网“毒瘤”
- 计算机网络应用层1练习题
- 【BZOJ2286】【SDOI2011】消耗战 LCA单调性(构建虚树)+树形DP
- Discuz 模板目录
- c4d安装完 只有语言英文的,为何我将显示语言设置成英文后开始菜单分类还依然显示为中文?...
- Window下,C++ 操作 Mysql、Url、utf-8文件 编码问题(读取和写入)
- 炫酷进度条:Android 仿应用宝下载进度条
- 【图像去噪】基于自适应小波阙值算法实现图像去噪附matlab代码
- Android 短信验证码输入框
- LAYOUT BGA布线规则
- 如何避免「三分钟热度」,找到人生的「热爱」
- 搭建属于自己的数字IC EDA环境(五):搭建FPGA自动化环境(Linux下vivado Tcl脚本自动化开发),业余IC设计流程与通路
- three.js渲染带动画的glb文件(内附源码,保姆级)
- Ripple(瑞波)之交易清算