AtCoder Beginner Contest 177总结
生活随笔
收集整理的這篇文章主要介紹了
AtCoder Beginner Contest 177总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
回學校第一次打AtCoder,感覺晚上在寢室打不在狀態~~
A - Don’t be late
數學題簽到
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #include<iostream> #include<algorithm> using namespace std; typedef long long ll; const int N=100010; ll a[N]; int n; int main() {IO;int d,t,s;cin>>d>>t>>s;int x=(d+s-1)/s;if(t>=x) cout<<"Yes"<<endl;else cout<<"No"<<endl;return 0; }B - Substring
直接暴力即可
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #include<string> #include<cstring> #include<iostream> #include<algorithm> #define mkp(a,b) make_pair(a,b) using namespace std; typedef long long ll; typedef pair<int,int> pii; int main() {IO;string s,t;cin>>s>>t;int res=1e9;for(int i=0;i+t.size()<=s.size();i++){int cnt=0;for(int j=0;j<t.size();j++) if(s[j+i]!=t[j]) cnt++;res=min(cnt,res);}cout<<res<<endl;return 0; }C - Sum of product of pairs
預處理前綴和即可
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #include<iostream> #include<algorithm> using namespace std; typedef long long ll; const int N=200010,mod=1e9+7; ll a[N],s[N]; int n; int main() {IO;cin>>n;for(int i=1;i<=n;i++) {cin>>a[i];s[i]=s[i-1]+a[i];}ll res=0;for(int i=1;i<=n;i++)res=(res+(s[n]-s[i])%mod*a[i]%mod)%mod;cout<<res<<endl;return 0; }D - Friends
并查集維護sz[]找個最大的即可
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #include<cstring> #include<iostream> #include<algorithm> using namespace std; typedef long long ll; typedef pair<int,int> pii; const int N=200010,mod=1e9+7; int p[N],sz[N]; int n,m; int find(int x) {if(x!=p[x]) p[x]=find(p[x]);return p[x]; } int main() {IO;cin>>n>>m;for(int i=1;i<=n;i++) p[i]=i,sz[i]=1;while(m--){int a,b;cin>>a>>b;int pa=find(a),pb=find(b);if(pa!=pb){p[pa]=pb;sz[pb]+=sz[pa];}}int res=0;for(int i=1;i<=n;i++) if(i==p[i]) res=max(res,sz[i]);cout<<res<<endl;return 0; }E - Coprime
太久沒做過數論題目了,篩法啥的都忘完了,回頭刷kuangbin復習復習吧
方法一
如果兩個數最大公約數不為1,那么對兩個數進行分解質因數后一定有相同的質因子。——O(nai)O(n\sqrt{a_i})O(nai??) 1040ms
方法二
方法一反著做,將原數分解質因數,方法二是正著做,考慮兩個數最大公約數是d那么兩個數一定是d的倍數,直接暴力篩原數組中一個數的倍數的個數。如果個數大于1就不是pairwise coprime——O(NlogN)O(NlogN)O(NlogN) 248ms
F - I hate Shortest Path Problem
線段樹 留個坑回來補一下?
要加油哦~
總結
以上是生活随笔為你收集整理的AtCoder Beginner Contest 177总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Educational Codeforc
- 下一篇: Codeforces Round #66