【LGR-154-Div.4】洛谷入门赛 #15
【LGR-154-Div.4】洛谷入门赛 #15
\(A\) luoguB3813 [语言月赛 202308]四个人的排名加起来没有小粉兔高 AC
- 水题。
#include<bits/stdc++.h> using namespace std; #define ll long long #define sort stable_sort #define endl '\n' int main() { int a,b,c,d; cin>>a>>b>>c>>d; if(a+b+c+d<51) { cout<<"Rabbit wins"; } else { cout<<"Rabbit lose"; } return 0; }
\(B\) luoguB3814 [语言月赛 202308]小粉兔喜欢下象棋吗 AC
- 时间复杂度 \(O(8^3)\) ,枚举即可。
#include<bits/stdc++.h> using namespace std; #define ll long long #define sort stable_sort #define endl '\n' int dix[10]={-2,-2,-1,-1,1,1,2,2},diy[10]={1,-1,2,-2,2,-2,1,-1}; int main() { int sx,sy,cx,cy,mx,my,i,j,k; cin>>sx>>sy>>cx>>cy>>mx>>my; for(i=0;i<=7;i++) { for(j=0;j<=7;j++) { for(k=0;k<=7;k++) { if(mx+dix[i]+dix[j]==sx&&my+diy[i]+diy[j]==sy&&mx+dix[i]+dix[k]==cx&&my+diy[i]+diy[k]==cy) { cout<<"Yes"<<endl; return 0; } } } } cout<<"No"<<endl; return 0; }
\(C\) luoguB3815 [语言月赛 202308]小粉兔的挂科与压力 AC
- \(switch\) 大法好。
#include<bits/stdc++.h> using namespace std; #define ll long long #define sort stable_sort #define endl '\n' int main() { int n,i,p,ans=0,sum=1+2+3+4+5+6; cin>>n; for(i=1;i<=n-1;i++) { cin>>p; switch(p) { case 1: ans+=sum-2-1; break; case 2: ans+=sum-1-2; break; case 3: ans+=sum-4-3; break; case 4: ans+=sum-3-4; break; case 5: ans+=sum-6-5; break; case 6: ans+=sum-5-6; break; } } cin>>p; switch(p) { case 1: ans+=sum-2; break; case 2: ans+=sum-1; break; case 3: ans+=sum-4; break; case 4: ans+=sum-3; break; case 5: ans+=sum-6; break; case 6: ans+=sum-5; break; } cout<<ans; return 0; }
\(D\) luoguB3816 [语言月赛 202308]小粉兔做麻辣兔头 AC
- 水题。
#include<bits/stdc++.h> using namespace std; #define ll long long #define sort stable_sort #define endl '\n' int main() { ll n,c,i,a,ans,maxx=0,k; cin>>n>>c; ans=n*c; k=0; for(i=1;i<=n;i++) { cin>>a; maxx=max(maxx,a); if(maxx+c*(n-i)<ans) { ans=maxx+c*(n-i); k=i; } } cout<<k<<" "<<ans; return 0; }
\(E\) luoguB3817 [语言月赛 202308]小粉兔还会忘记考试吗 AC
- \(STL\) 大法好,练习使用 \(map\) 。
- 没有注意到只要有成绩就不算缺考,调了 \(10min+\) 。
#include<bits/stdc++.h> using namespace std; #define ll long long #define sort stable_sort #define endl '\n' ll e[50001]; map<ll,ll>s; int main() { ll n,m,i,ans1=0,ans2=0,p,ls; cin>>n>>m; for(i=1;i<=n;i++) { cin>>e[i]; } for(i=1;i<=m;i++) { cin>>p>>ls; s[p]=ls+1; } for(i=1;i<=n;i++) { if(s[e[i]]==0) { ans1++; } if(s[e[i]]-1<60) { ans2++; } } cout<<ans1<<endl; cout<<ans2<<endl; return 0; }
\(F\) luoguB3818 [语言月赛 202308]电脑中了满屏粉兔病毒
- \(N^3\) 暴力枚举即可。
```cpp
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define sort stable_sort
#define endl '\n'
char c[501][501];
int main()
{
int n,m,sum1,sum2,i,j,k,sum,flag,ans=0;;
cin>>n>>m>>sum1>>sum2;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
cin>>c[i][j];
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(c[i][j]=='F')
{
sum=flag=0;
for(k=1;k<=i-1;k++)
{
if(c[k][j]=='M')
{
flag=1;
break;
}
}
if(flag==0)
{
sum++;
}
flag=0;
for(k=1;k<=j-1;k++)
{
if(c[i][k]=='M')
{
flag=1;
break;
}
}
if(flag==0)
{
sum++;
}
flag=0;
for(k=i+1;k<=n;k++)
{
if(c[k][j]=='M')
{
flag=1;
break;
}
}
if(flag==0)
{
sum++;
}
flag=0;
for(k=j+1;k<=m;k++)
{
if(c[i][k]=='M')
{
flag=1;
break;
}
}
if(flag==0)
{
sum++;
}
if(sum>=3)
{
ans++;
}
}
if(c[i][j]=='M')
{
sum=flag=0;
for(k=1;k<=i-1;k++)
{
if(c[k][j]=='F')
{
flag=1;
break;
}
}
if(flag==0)
{
sum++;
}
flag=0;
for(k=1;k<=j-1;k++)
{
if(c[i][k]=='F')
{
flag=1;
break;
}
}
if(flag==0)
{
sum++;
}
flag=0;
for(k=i+1;k<=n;k++)
{
if(c[k][j]=='F')
{
flag=1;
break;
}
}
if(flag==0)
{
sum++;
}
flag=0;
for(k=j+1;k<=m;k++)
{
if(c[i][k]=='F')
{
flag=1;
break;
}
}
if(flag==0)
{
sum++;
}
if(sum>=3)
{
ans++;
}
}
}
}
cout<<ans<<endl;
return 0;
}
```
\(G\) luoguB3819 [语言月赛 202308]小粉兔处理题解审核志愿者轮换 AC
- \(STL\) 大法好,练习使用 \(map\) 。
#include<bits/stdc++.h> using namespace std; #define ll long long #define sort stable_sort #define endl '\n' string pd; map<string,bool>e; map<string,bool>::iterator it; int main() { int n,m,l,i; cin>>n>>m>>l; for(i=1;i<=n;i++) { cin>>pd; e[pd]=true; } for(i=1;i<=m;i++) { cin>>pd; e[pd]=false; } for(i=1;i<=l;i++) { cin>>pd; e[pd]=true; } for(it=e.begin();it!=e.end();it++) { if(it->second==true) { cout<<it->first<<endl; } } return 0; }
\(H\) luoguB3820 [语言月赛 202308]小粉兔的元素反应
- 口胡:若在序列 \(a\) 中,存在一组 \(i,j\) 满足 \(a_i \times a_j \bmod 154=0\) 或 \(a_i \times a_j \bmod 147=0\) ,则一定有解。
- 部分分( \(80pts\) ):暴力枚举,复杂度 \(O(Tn^2)\) ,加些特判。
- 正解:
- 一个简单性质: \((a_i \times a_j) \bmod p=((a_i \bmod p) \times (a_j \bmod p)) \bmod p\)
- 当 \(k \le \sum\limits_{i=1}^{n} a_i\) ,输出
Yes
。 - 用 \(map\) 或直接枚举 \(a_i \bmod p\) 的值即可,复杂度为 \(O(TK+ \sum n)\) ,其中 \(K=154^2+147^2+15=45340\) 。
这数据有点弱啊,压着线过都正常,但是#8#9#10 300多ms过就不正常了。- 加强数据了@我。
#include<bits/stdc++.h> using namespace std; #define ll long long #define sort stable_sort #define endl '\n' char k[1000001]; ll a[1000001],sum1[155],sum2[148]; bool check(ll sum[],ll mod) { for(ll i=0;i<=mod-1;i++) { if(sum[i]!=0) { for(ll j=0;j<=mod-1;j++) { if(!(i==j&&sum[i]==1))//特判 { if(sum[j]!=0) { if((i*j)%mod==0) { return true; } } } } } } return false; } int main() { ll t,n,i,j,flag,sum,len,num; cin>>t; for(i=1;i<=t;i++) { cin>>n>>(k+1); memset(sum1,0,sizeof(sum1)); memset(sum2,0,sizeof(sum2)); flag=sum=num=0; for(j=1;j<=n;j++) { cin>>a[j]; sum1[a[j]%154]++; sum2[a[j]%147]++; sum+=a[j]; } len=strlen(k+1); for(j=1;j<=len;j++) { num=num*10+k[j]-'0'; if(num>sum) { flag=1; break; } } if(flag==1) { if(check(sum1,154)==true||check(sum2,147)==true) { cout<<"Yes"<<endl; } else { cout<<"No"<<endl; } } else { cout<<"Yes"<<endl; } } return 0; }
\(I\) luoguB3821 [语言月赛 202308]小粉兔 Failed System Test WA
- 问题1:卡 \(int\)
- 赛场上把 \(int\) 的范围记成了 \(2e10\) ,挂了 \(750pts\) 。
- 问题2:输出
ac
- 把判断特征误以为是数据规模,临结束才发现。
#include <iostream> using namespace std; int main() { int taskId; cin >> taskId; if (taskId == 1) { cout << "1000000000 999999999" <<endl; } else if (taskId == 2) { cout << "ac" << endl; } else { // 这个 else 不会被执行 cout << "Stupid Fusu!" << endl; } }
总结
- 本次开题顺序 \(ABCDEIGI\) ,要合理安排开题顺序。
- 先通读题面,防止漏读信息( \(E,I\) 因此被卡)。
- 记住各种类型所存储的范围
- 一亿是 \(1e8\) 。
- \(int\) : \((-2^{31}-1)\) ~ \((2^{31}-1)\)
- \(-2147483647\) ~ \(2147483647\)
- 不要在一道题上浪费太长时间( \(I\) 想了 \(1h\) ,导致 \(F,H\) 没写)。
- \(hack\) 题目首先考虑卡掉存储类型(eg: \(I\) 的问题一)。
本文来自博客园,作者:hzoi_Shadow,原文链接:https://www.cnblogs.com/The-Shadow-Dragon/p/17626865.html,未经允许严禁转载。
版权声明:本作品采用 「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0) 进行许可。