2019-2020 ICPC Asia Hong Kong Regional Contest 补题(部分)
生活随笔
收集整理的這篇文章主要介紹了
2019-2020 ICPC Asia Hong Kong Regional Contest 补题(部分)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
codeforces原題鏈接
大佬題解
B - Binary Tree
每個人每次一定拿走奇數(2k?12^k-12k?1)個節點,如果先手必勝不難發現兩人輪流拿最終一定拿奇數次(每次奇數個節點)說明一共有奇數個節點,如果先手必敗說明最終兩人共拿偶數次說明有偶數個節點,因此可以根據奇偶性判斷輸贏。
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize(2) #include<set> #include<map> #include<cmath> #include<queue> #include<string> #include<vector> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<unordered_map> using namespace std; typedef long long ll; typedef pair<int,int> pii; const int N=50010; const ll mod=998244353; int n; int main() {IO;int T=1;cin>>T;while(T--){cin>>n;for(int i=1;i<n;i++){int a,b;cin>>a>>b;}if(n&1) cout<<"Alice\n";else cout<<"Bob\n";}return 0;}D - Defining Labels
模擬一下就即可。
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize(2) #include<set> #include<map> #include<cmath> #include<queue> #include<string> #include<vector> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<unordered_map> using namespace std; typedef long long ll; typedef pair<int,int> pii; const int N=50010; const ll mod=998244353; int main() {IO;int T=1;cin>>T;while(T--){int k;ll x;cin>>k>>x;ll base=1,s=0;while(s<x){base=base*k;s+=base;}x-=s-base;base/=k;vector<int> ans;while(x>0&&base){int r=(x+base-1)/base;ans.push_back(r+9-k);x-=(r-1)*base; base/=k;}for(auto t:ans) cout<<t;cout<<'\n';}return 0;}G - Game Design
本來想著構造一條鏈,不過發現kkk有點大搞不了,于是。。就沒有于是了
參考上述題解發現自己還是對遞歸不熟練。
如果當前節點的方案數為偶數,那么我們構造兩個方案數分別為 2,n22,\frac n 22,2n? 的子節點;如果是奇數就構造兩個方案數分別為
2,n22,\frac n 22,2n? 的子節點,并且根節點單獨作為一種方案,遞歸終點是k≤2k≤2k≤2 的時候,我們只需要建一條鏈即可。
當父節點的權值等于孩子節點的權值和的時候,父節點即可單獨稱為一種方案,如果大于就不能單獨稱為一種方案。
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize(2) #include<set> #include<map> #include<cmath> #include<queue> #include<string> #include<vector> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<unordered_map> using namespace std; typedef long long ll; typedef pair<int,int> pii; const int N=50010; const ll mod=998244353; int k,cnt; int fa[N],c[N]; int dfs(int k,int p) {int now=++cnt;fa[now]=p;if(k<=2){fa[++cnt]=now;c[cnt]=1;c[now]=3-k;return 1;}c[now]=dfs(k/2,now)+dfs(2,now)+(k%2==0);return c[now]-(k%2==0);} int main() {IO;int T=1;//cin>>T;while(T--){cin>>k;dfs(k,0);cout<<cnt<<'\n';for(int i=2;i<=cnt;i++) cout<<fa[i]<<' ';cout<<'\n';for(int i=1;i<=cnt;i++) cout<<c[i]<<' ';cout<<'\n';}return 0;}E - Erasing Numbers
大佬題解
直接貼貼大佬題解的圖片吧真的非常妙
J - Junior Mathematician
竟然還有點卡常,少了幾個%就A了。
為了補這個題重學數位dp,然后發現基本的數位dp
最近作業巨難,信號+數電,感覺老師上課瘋狂劃水,真就自學???
而且最近題解質量真的差,沒時間打markdown不想打
要加油哦~
總結
以上是生活随笔為你收集整理的2019-2020 ICPC Asia Hong Kong Regional Contest 补题(部分)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛客练习赛 55
- 下一篇: 另分享几个无损音乐下载网站无损音乐批量下