【LGR-196-Div.4】洛谷入门赛 #26
【LGR-196-Div.4】洛谷入门赛 #26
\(A\) luogu B4017 [语言月赛 202408] 相识于 2016 \(AC\)
-
顺序结构。
点击查看代码
int main() { int x,y; cin>>x>>y; if(x==2016) { cout<<y-7<<endl; } else { cout<<(x-2017)*12+5+y<<endl; } return 0; }
\(B\) luogu B4018 [语言月赛 202408] 游戏与共同语言 \(AC\)
-
选择结构。
点击查看代码
int main() { int wa,ca,ta,wb,cb,tb; cin>>wa>>ca>>ta>>wb>>cb>>tb; if(wa>wb) { cout<<"A"<<endl; } if(wa==wb) { if(ca>cb) { cout<<"A"<<endl; } if(ca==cb) { if(ta>tb) { cout<<"A"<<endl; } else { cout<<"B"<<endl; } } if(ca<cb) { cout<<"B"<<endl; } } if(wa<wb) { cout<<"B"<<endl; } return 0; }
\(C\) luogu B4019 [语言月赛 202408] 皆与生物有缘 \(AC\)
-
循环结构。
点击查看代码
ll a[200010],b[200010]; int main() { ll n,sum1=0,sum2=0,i; cin>>n; for(i=1;i<=n;i++) { cin>>a[i]; sum1+=a[i]; } for(i=1;i<=n;i++) { cin>>b[i]; sum2+=b[i]; } cout<<(sum1+sum2+1)/2<<endl; return 0; }
\(D\) luogu B4020 [语言月赛 202408] 两座城市的 543 千米 \(AC\)
- 循环结构。
点击查看代码
```cpp int main() { int n,m,ans=0,flag,l,x,a,b,i,j; cin>>n>>m>>a>>b; for(i=1;i<=m;i++) {相识于 2016 cin>>l; flag=0; for(j=1;j<=l;j++) { cin>>x; flag|=(x==a); if(flag==1&&x==b) { ans++; } } } cout<
\(E\) luogu B4021 [语言月赛 202408] 于抑郁中支持 \(AC\)
-
开个桶统计即可。
点击查看代码
int cnt[10010]; int main() { int n,t,p,x,ans=0,i; cin>>n>>t; p=pow(10,t); for(i=1;i<=n;i++) { cin>>x; cnt[x%p]++; ans+=(cnt[x%p]==1); } cout<<ans<<endl; return 0; }
\(F\) luogu B4022 [语言月赛 202408] 蓝色的网易云 \(AC\)
-
顺序输出每种种类的数。
点击查看代码
vector<int>c[1010]; int main() { int n,m,x,i,j; cin>>n>>m; for(i=1;i<=n;i++) { cin>>x; c[x].push_back(i); } for(i=0;i<n/m;i++) { for(j=1;j<=m;j++) { cout<<c[j][i]<<endl; } } return 0; }
\(G\) luogu B4023 [语言月赛 202408] 因友情而终结 \(AC\)
-
记录下每个
friend
的出现位置,尽可能用一个love
替换掉两个friend
。点击查看代码
int vis[1000010]; char s[1000010]; vector<int>pos; int main() { int n,ans=0,i; cin>>(s+1); n=strlen(s+1); for(i=1;i<=n;i++) { if(i+5<=n&&s[i]=='f'&&s[i+1]=='r'&&s[i+2]=='i'&&s[i+3]=='e'&&s[i+4]=='n'&&s[i+5]=='d') { pos.push_back(i); i+=5; } } for(i=0;i<pos.size();i++) { if(vis[i]==0) { if(i+1<pos.size()&&pos[i+1]-(pos[i]+5)<=3) { vis[i+1]=1; } vis[i]=1; ans++; } } cout<<ans<<endl; return 0; }
\(H\) luogu B4024 [语言月赛 202408] 保持连接的方式 \(AC\)
-
vector
的erase
来支持删除。点击查看代码
vector<int>c[110][110]; int main() { int n,m,k,t,a,x,y,minn,pos,i,j; cin>>n>>m>>k>>t; for(i=1;i<=t;i++) { cin>>a>>x>>y; if(c[x][y].size()==k) { minn=0x7f7f7f7f; pos=-1; for(j=0;j<k;j++) { if(c[x][y][j]<=minn) { minn=c[x][y][j]; pos=j; } } cout<<minn<<" "<<k-pos-1<<endl; c[x][y].erase(c[x][y].begin()+pos); } else { cout<<"-1"<<endl; } c[x][y].push_back(a); } return 0; }
总结
- 开题顺序: \(ABCFEDGH\) 。
- 看到 \(D\) 以为是什么逆天大模拟,写完 \(E,F\) 回来看了眼才发现只是小模拟。
- \(G,H\) 第一眼觉得不太可做,可能是因为没立刻看数据范围导致的吧(?)
- \(C\) 把
ceil((sum1+sum2)/2.0)
写成了ceil(sum1+sum2)/2.0
,吃了发罚时。 - \(E\) 数组少写了个 \(0\) ,吃了发罚时。
- \(G\) 第一、二发没考虑同时替换两个
friend
的情况,吃了两发罚时。
本文来自博客园,作者:hzoi_Shadow,原文链接:https://www.cnblogs.com/The-Shadow-Dragon/p/18366567,未经允许严禁转载。
版权声明:本作品采用 「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0) 进行许可。