A
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include <bits/stdc++.h> using namespace std;using i64=long long ;void solve () { int n;cin>>n; string s="" ; for (int i=1 ;i<=n;i++){ s+=to_string (n); } cout<<s; } int main () { int _=1 ; while (_--)solve (); return 0 ; }
B
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include <iostream> using namespace std;int sa (char x,char y) { if (x > y) swap (x, y); if (y-x == 1 || y-x == 4 ){ return 1 ; } else return 2 ; } int main () { char a, b, c, d; cin >> a >> b >> c >> d; if (sa (a,b)==sa (c,d)){ cout<<"Yes" <<endl; } else cout<<"No" <<endl; }
C 暴力算完去重就行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #include <bits/stdc++.h> using namespace std;int main () { ios::sync_with_stdio (false ); cin.tie (0 ); int n; cin >> n; long long now = 1 ; vector<long long > rep; for (int i = 0 ; i < 15 ; i++){ rep.push_back (now); now = now * 10 + 1 ; } vector<long long > ans; int m = rep.size (); for (int i = 0 ; i < m; i++){ for (int j = 0 ; j < m; j++){ for (int k = 0 ; k < m; k++){ ans.push_back (rep[i] + rep[j] + rep[k]); } } } sort (ans.begin (), ans.end ()); ans.erase (unique (ans.begin (), ans.end ()), ans.end ()); cout << ans[n-1 ] << endl; }
D
这场D比较简单
就是先建图,找到1节点最大的子树,然后用a节点所有连通节点的数量减去最大子树的大小后加1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 #include <bits/stdc++.h> using namespace std;using i64=long long ;const int N=3e5 +10 ;vector<int >g[N]; bool vis[N];queue<int >q; int bfs (int st,int k) { memset (vis,0 ,sizeof vis); q.push (st); vis[1 ]=1 ; vis[st]=1 ; k++; while (q.size ()){ int f=q.front (); q.pop (); for (auto &i:g[f]){ if (!vis[i]){ q.push (i); k++; vis[i]=1 ; } } } return k; } void solve () { int n;cin>>n; for (int i=1 ;i<n;i++){ int u,v; cin>>u>>v; g[u].push_back (v); g[v].push_back (u); } if (g[1 ].size ()==1 ){ cout<<"1" ; return ; } int ll=0 ; int ans=0 ; for (auto &i:g[1 ]){ int res=bfs (i,0 ); ll+=res; ans=max (ans,res); } cout<<ll-ans+1 ; } int main () { int _=1 ; while (_--)solve (); return 0 ; }