2020icpc江西省賽賽後總結
阿新 • • 發佈:2020-11-16
開場rk3,打完只有rk15 QAQ(開題都沒開出來,挺難受的),最後只有銀3,就差一點就拿到金了。
不過現在才大二,後面還有挺多機會,12月上海沖沖衝
以下是看了的題的程式碼:
A - A Simple Math Problem
雖然沒想到正解,但我們這個程式碼可以跑8e4,最後優化一下常數應該也能過,可惜沒有搞出來
#include<bits/stdc++.h> using namespace std; #define ll long long const int maxn = 1e5 +10; #define fastio ios::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL) ll mod = 998244353; int v[maxn],p[maxn],tot=0; void Euler(int n) { v[1]=1; for(int i=2;i<=n;i++){ if(v[i]==0){v[i]=i;p[++tot]=i;} for(int j=1;j<=tot;j++) { if(p[j]>v[i]||p[j]>n/i)break; v[i*p[j]]=p[j]; } } } int vis[maxn]; int main() { fastio; int n; cin>>n; Euler(n+1); ll ans = n; int flag=1; for(int i=2;i<=n;++i) { ll cnt=n-i+1,tmp=i; if(v[i]==i) cnt-=n/i; else { while(tmp > 1) { ll P=v[tmp]; for(int j=i/v[tmp]*v[tmp];j<=n;j+=P) { (vis[j]!=i)? cnt--,vis[j]=i:0; } while(tmp>1&&tmp%P==0) { tmp/=P; } } } ll f=0; int x=i; while(x) { f+=x%10; x/=10; } ans+=cnt*f; } cout<<ans; return 0; }
其實一開場就看了10分鐘A,我們都不太會數學,就跑去跟榜了
B-Apple
簽到,直接求和公式
#include<bits/stdc++.h> using namespace std; #define ll long long #define fastio ios::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL) int main() { int t; cin>>t; while(t--) { ll sum,n; cin>>sum>>n; if((1+n)*n/2>sum) cout<<"impossible"<<endl; else cout<<"possible"<<endl; } return 0; }
C讀錯題了,和隊友搞了2個多小時無了,太致命了
E-Color Sequence
曾神