这场比赛打完,我自闭了。感觉跟我们学校的校赛是完全不同的风格。我校校赛的特点是繁,代码量大lzh大毒瘤。而贵校的校赛题思维难度很大,做着做着就自闭了。
A 拯救咕咕咕之史莱姆
这题是思维题,稍微绕了点弯,其实是签到题。不过蒟蒻还是没考虑清楚,WA了一发。赛场上,我看了看样例输入,猜了一个的分界线,居然AC了,可见数据弱。不过签到题问题不大。
#include<bits/stdc++.h> using namespace std; typedef long long ll; int main() { ll n; while(cin>>n&&n){ if(n<=75)puts("AOLIGEI!"); else puts("DAAAAAMN!"); } return 0; }
E 无敌阿姨
模拟题意,码量不大。不过我被第行的判断条件坑了一把,因为一旦上了顶楼,就没有再爬楼梯的必要。
#include<bits/stdc++.h> using namespace std; int main() { int t; cin>>t; while(t--){ int n,m,k; cin>>n>>m>>k; int a[1000500]; for(int i=1;i<=n;++i){ cin>>a[i]; } int cnt=0,hp=m; for(int i=1;i<=n;){ if(a[i]>hp){ ++cnt; a[i]-=hp; hp=m; }else{ hp-=a[i++]; if(i!=n+1&&hp<k){ ++cnt; hp=m; }else{ hp-=k; } } //cout<<hp<<endl; } cout<<cnt+(a[n]!=0)<<endl; } return 0; }
G 校车
官方题解的思想是离散化。这里可以用map
离散化坐标,上车就,下车就
。
#include<bits/stdc++.h> using namespace std; int main() { int t; cin>>t; while(t--){ int n; cin>>n; map<int,int> mp; while(n--){ int a,b; cin>>a>>b; ++mp[a]; --mp[b]; } int ans=0,sum=0; for(auto i:mp)sum+=i.second,ans=max(ans,sum); cout<<mp.size()<<' '<<ans<<endl; } return 0; }