【LGR-203-Div.4】洛谷入门赛 #28
【LGR-203-Div.4】洛谷入门赛 #28
\(A\) luogu B4042 [语言月赛 202410] 顺序结构 \(AC\)
-
顺序结构。
点击查看代码
int main() { ll a; cin>>a; cout<<3*(5+a)<<" "<<3*a+5<<endl; return 0; }
\(B\) luogu B4043 [语言月赛 202410] 刻度尺 \(AC\)
-
模拟。
点击查看代码
int main() { ll n,a,b; cin>>n>>a>>b; if(a-b>=0||a+b<=n) { if(b==0) { cout<<a<<endl; } else { if(a-b>=0) { cout<<a-b<<" "; } if(a+b<=n) { cout<<a+b<<endl; } } } else { cout<<"No solution"<<endl; } return 0; }
\(C\) luogu B4044 [语言月赛 202410] 奇迹战神 \(AC\)
-
模拟。
点击查看代码
int main() { ll n,w,d,ans=0x7f7f7f7f,i; cin>>n; for(i=1;i<=n;i++) { cin>>w>>d; ans=min(ans,7*(d-1)+w+1); } cout<<ans<<endl; return 0; }
\(D\) luogu B4045 [语言月赛 202410] 同桌 \(AC\)
-
两人可以成为同桌当且仅当互相想要和对方做同桌。
点击查看代码
ll p[10010],vis[10010]; int main() { ll n,flag=1,i; cin>>n; for(i=1;i<=2*n;i++) { cin>>p[i]; } for(i=1;i<=2*n;i++) { if(p[i]==i||p[p[i]]!=i) { flag=0; break; } } if(flag==0) { cout<<"No"<<endl; } else { cout<<"Yes"<<endl; } return 0; }
\(E\) luogu B4046 [语言月赛 202410] 寻找质数 \(AC\)
-
筛法求素数板子。
点击查看代码
int prime[1000010],vis[1000010],len=0; void isprime(int n) { memset(vis,0,sizeof(vis)); for(int i=2;i<=n;i++) { if(vis[i]==0) { len++; prime[len]=i; } for(int j=1;j<=len&&i*prime[j]<=n;j++) { vis[i*prime[j]]=1; if(i%prime[j]==0) { break; } } } } int main() { int n,m,r,k,ans=-1,cnt=0,i; cin>>n>>m>>r>>k; isprime(n); for(i=len;i>=1;i--) { if(prime[i]%m==r) { cnt++; if(cnt==k) { ans=prime[i]; break; } } } cout<<ans<<endl; return 0; }
\(F\) luogu B4047 [语言月赛 202410] 校门外的施工 \(AC\)
-
做法同 luogu P1047 [NOIP2005 普及组] 校门外的树 ,如果你要写珂朵莉树的话我也不拦着你。
点击查看代码
int a[5010],b[5010]; int main() { int n,m,pd,l,r,ans1=0,ans2=0,i,j; cin>>m>>n; ans1=m; ans2=m-1; for(i=1;i<=n;i++) { cin>>pd>>l>>r; if(pd==1) { for(j=l+1;j<=r-1;j++) { a[j]=1; } for(j=l;j<=r-1;j++) { b[j]=1; } } else { for(j=l;j<=r;j++) { a[j]=1; } for(j=l;j<=r-1;j++) { b[j]=1; } } } for(i=1;i<=m;i++) { ans1-=a[i]; ans2-=b[i]; } cout<<ans1<<" "<<ans2<<endl; return 0; }
\(G\) luogu B4048 [语言月赛 202410] 断章取义 \(AC\)
-
如果没有统计剪辑轮数的话就是 luogu P4824 [USACO15FEB] Censoring S 了,因为 \(|s|\) 很小所以直接模拟即可。
点击查看代码
int vis[150]; char s[150],t[150]; int main() { int T,n,m,cnt=0,flag,i; cin>>T>>(s+1); n=strlen(s+1); while(1) { flag=0; memset(vis,0,sizeof(vis)); for(i=1;i<=n;i++) { t[i]=s[i]; } for(i=1;i<=n;i++) { if(t[i]=='n'&&t[i+1]=='o'&&t[i+2]=='t'&&i+2<=n) { flag=1; vis[i]=vis[i+1]=vis[i+2]=1; } } if(flag==0) { break; } else { cnt++; m=0; for(i=1;i<=n;i++) { if(vis[i]==0) { m++; s[m]=t[i]; } } n=m; } } for(i=1;i<=n;i++) { cout<<s[i]; } cout<<endl; cout<<cnt<<endl; return 0; }
\(H\) luogu B4049 [语言月赛 202410] 平均分计算 \(AC\)
-
模拟。
点击查看代码
struct node { ll id,sc; }e[110]; ll id[50][110],sc[50][110],w[50][110],p[50]; ll gcd(ll a,ll b) { return b?gcd(b,a%b):a; } bool cmp(node a,node b) { return a.sc>b.sc; } int main() { ll n,pos,i,j,k,ans=0,cnt=0,tmp,d; cin>>n; for(k=1;k<=n;k++) { cin>>p[k]; for(i=1;i<=p[k];i++) { cin>>id[k][i]; } for(i=1;i<=p[k];i++) { cin>>sc[k][i]; } for(i=1;i<=p[k];i++) { cin>>w[k][i]; } } cin>>pos; for(k=1;k<=n;k++) { sort(id[k]+1,id[k]+1+p[k]); for(i=1;i<=p[k];i++) { e[i].sc=sc[k][i]; e[i].id=id[k][i]; } sort(e+1,e+1+p[k],cmp); for(i=1;i<=p[k];i++) { if(e[i].id==pos) { cnt++; for(j=i;e[j].sc==e[i].sc&&j>=1;j--); ans+=w[k][j+1]; break; } } } if(ans%cnt==0) { cout<<ans/cnt<<endl; } else { tmp=ans/cnt; ans-=tmp*cnt; d=gcd(ans,cnt); ans/=d; cnt/=d; cout<<tmp<<"+"<<ans<<"/"<<cnt<<endl; } return 0; }
总结
- \(B\) 把
if
打成了else if
,吃了发罚时。 - \(F\) 数组开小了,吃了发罚时;短时间没适应过来 \(n\) 表示操作次数, \(m\) 表示长度。
- \(E,G\) 关于排名的定义一开始没有注意到。
- \(G\) 因为不会统计比它大的数的个函数,吃了两发罚时。
本文来自博客园,作者:hzoi_Shadow,原文链接:https://www.cnblogs.com/The-Shadow-Dragon/p/18475096,未经允许严禁转载。
版权声明:本作品采用 「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0) 进行许可。