日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

AtCoder Beginner Contest 177总结

發(fā)布時(shí)間:2023/12/3 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AtCoder Beginner Contest 177总结 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

回學(xué)校第一次打AtCoder,感覺(jué)晚上在寢室打不在狀態(tài)~~

A - Don’t be late

數(shù)學(xué)題簽到

#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

預(yù)處理前綴和即可

#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

并查集維護(hù)sz[]找個(gè)最大的即可

#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

太久沒(méi)做過(guò)數(shù)論題目了,篩法啥的都忘完了,回頭刷kuangbin復(fù)習(xí)復(fù)習(xí)吧
方法一
如果兩個(gè)數(shù)最大公約數(shù)不為1,那么對(duì)兩個(gè)數(shù)進(jìn)行分解質(zhì)因數(shù)后一定有相同的質(zhì)因子。——O(nai)O(n\sqrt{a_i})O(nai??) 1040ms

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize(2) #include<iostream> #include<algorithm> using namespace std; const int N=1000010; int a[N],cnt[N]; int n; int gcd(int a,int b) {return b?gcd(b,a%b):a; } void divide(int x) {for(int i=2;i<=x/i;i++){if(x%i==0) {cnt[i]++;while(x%i==0) x/=i;}}if(x>1) cnt[x]++; } int main() {cin>>n;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++) divide(a[i]);int d=a[1];for(int i=2;i<=n;i++) d=gcd(d,a[i]);bool ok=1;for(int i=1;i<N;i++)if(cnt[i]>1) {ok=0;break;}if(ok) cout<<"pairwise coprime"<<endl;else if(d==1) cout<<"setwise coprime"<<endl;else cout<<"not coprime"<<endl;return 0; }

方法二
方法一反著做,將原數(shù)分解質(zhì)因數(shù),方法二是正著做,考慮兩個(gè)數(shù)最大公約數(shù)是d那么兩個(gè)數(shù)一定是d的倍數(shù),直接暴力篩原數(shù)組中一個(gè)數(shù)的倍數(shù)的個(gè)數(shù)。如果個(gè)數(shù)大于1就不是pairwise coprime——O(NlogN)O(NlogN)O(NlogN) 248ms

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize(2) #include<iostream> #include<algorithm> using namespace std; const int N=1000010; int a[N],mp[N]; int n; int gcd(int a,int b) {return b?gcd(b,a%b):a; } int main() {cin>>n;for(int i=1;i<=n;i++) {cin>>a[i];mp[a[i]]++;}bool ok=1;for(int i=2;i<N;i++){int cnt=0;for(int j=i;j<N;j+=i) cnt+=mp[j];if(cnt>1){ok=0;break;}}int d=a[1];for(int i=2;i<=n;i++) d=gcd(d,a[i]);if(ok) cout<<"pairwise coprime"<<endl;else if(d==1) cout<<"setwise coprime"<<endl;else cout<<"not coprime"<<endl;return 0; }

F - I hate Shortest Path Problem

線段樹 留個(gè)坑回來(lái)補(bǔ)一下?
要加油哦~

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的AtCoder Beginner Contest 177总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。