[关闭]
@baobaobear 2020-04-28T11:14:20.000000Z 字数 5419 阅读 197

练习12

practise


A 1292224662

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define rep(i,a,n) for(int i=a;i<=n;i++)
  4. #define per(i,a,n) for(int i=n;i>=a;i--)
  5. #define pb push_back
  6. #define SZ(x) ((int)(x).size())
  7. typedef long long ll;
  8. typedef pair<int,int> pii;
  9. typedef double db;
  10. int x,bs,ans;
  11. int main(){
  12. cin>>x;
  13. bs=1;
  14. while(x){
  15. ans+=(x%10*bs);
  16. x/=10;bs*=8;
  17. }
  18. cout<<ans<<endl;
  19. return 0;
  20. }

B 1292224662

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define rep(i,a,n) for(int i=a;i<=n;i++)
  4. #define per(i,a,n) for(int i=n;i>=a;i--)
  5. #define pb push_back
  6. #define SZ(x) ((int)(x).size())
  7. typedef long long ll;
  8. typedef pair<int,int> pii;
  9. typedef double db;
  10. int a[110],p,B;
  11. bool f(int x){
  12. p=0;
  13. while(x){
  14. a[++p]=x%B;
  15. x/=B;
  16. }
  17. rep(i,1,p){
  18. if(a[i]!=a[p+1-i])
  19. return false;
  20. }
  21. return true;
  22. }
  23. void pt(int x){
  24. stack<int> s;
  25. while(x){
  26. s.push(x%B);
  27. x/=B;
  28. }
  29. while(!s.empty()){
  30. int t=s.top();s.pop();
  31. printf("%c",(t<=9)?'0'+t:'A'+(t-10));
  32. }
  33. }
  34. int main(){
  35. cin>>B;
  36. rep(i,1,300){
  37. if(f(i*i)){
  38. pt(i);putchar(' ');
  39. pt(i*i);putchar('\n');
  40. }
  41. }
  42. return 0;
  43. }

C 1292224662

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define rep(i,a,n) for(int i=a;i<=n;i++)
  4. #define per(i,a,n) for(int i=n;i>=a;i--)
  5. #define pb push_back
  6. #define SZ(x) ((int)(x).size())
  7. typedef long long ll;
  8. typedef pair<int,int> pii;
  9. typedef double db;
  10. int t,a[200010],mx[200010],n;
  11. int get(int x){
  12. if(x<=1) return a[x]=x;
  13. if(a[x]) return a[x];
  14. if(x%2) return a[x]=get(x/2)+get(x/2+1);
  15. else return a[x]=get(x/2);
  16. }
  17. int main(){
  18. rep(i,1,100000){
  19. get(i);
  20. }
  21. rep(i,1,100000){
  22. mx[i]=max(a[i],mx[i-1]);
  23. }
  24. cin>>t;
  25. while(t--){
  26. cin>>n;
  27. printf("%d\n",mx[n]);
  28. }
  29. return 0;
  30. }

D 1292224662

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define rep(i,a,n) for(int i=a;i<=n;i++)
  4. #define per(i,a,n) for(int i=n;i>=a;i--)
  5. #define pb push_back
  6. #define SZ(x) ((int)(x).size())
  7. typedef long long ll;
  8. typedef pair<int,int> pii;
  9. typedef double db;
  10. vector<int> g[2010];
  11. int n,tmp,rt[2010];
  12. int dfs(int now,int fa){
  13. int dep=0;
  14. for(auto to:g[now]){
  15. if(to==fa) continue;
  16. dep=max(dep,dfs(to,now));
  17. }
  18. return dep+1;
  19. }
  20. int main(){
  21. cin>>n;
  22. rep(i,1,n){
  23. cin>>tmp;
  24. if(tmp==-1){
  25. rt[i]=1;
  26. continue;
  27. }
  28. g[tmp].pb(i);
  29. g[i].pb(tmp);
  30. }
  31. int ans=0;
  32. rep(i,1,n){
  33. if(rt[i]) ans=max(ans,dfs(i,i));
  34. }
  35. cout<<ans<<endl;
  36. return 0;
  37. }

E 1292224662

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define rep(i,a,n) for(int i=a;i<=n;i++)
  4. #define per(i,a,n) for(int i=n;i>=a;i--)
  5. #define pb push_back
  6. #define SZ(x) ((int)(x).size())
  7. typedef long long ll;
  8. typedef pair<int,int> pii;
  9. typedef double db;
  10. int cnt[30],n,vis[30];
  11. char s[1000010];
  12. bool m[30][30];
  13. vector<int> g[30];
  14. pii dfs(int now){
  15. pii ret=make_pair(cnt[now],cnt[now]);
  16. vis[now]=1;
  17. for(auto to:g[now]){
  18. if(vis[to]) continue;
  19. pii sv=dfs(to);
  20. ret.first+=sv.first;
  21. ret.second=max(ret.second,sv.second);
  22. }
  23. return ret;
  24. }
  25. int main(){
  26. scanf("%s",s+1);
  27. n=strlen(s+1);
  28. rep(i,1,n/2){
  29. cnt[s[i]-'a'+1]++;
  30. cnt[s[n+1-i]-'a'+1]++;
  31. m[s[i]-'a'+1][s[n+1-i]-'a'+1]=1;
  32. m[s[n+1-i]-'a'+1][s[i]-'a'+1]=1;
  33. }
  34. if(n%2) cnt[s[n/2+1]-'a'+1]++;
  35. rep(i,1,26){
  36. rep(j,i+1,26){
  37. if(m[i][j]){
  38. g[i].pb(j);
  39. g[j].pb(i);
  40. }
  41. }
  42. }
  43. int ans=0;
  44. rep(i,1,26){
  45. if(!vis[i]){
  46. pii res=dfs(i);
  47. assert(res.first>=res.second);
  48. ans+=(res.first-res.second);
  49. }
  50. }
  51. printf("%d\n",ans);
  52. return 0;
  53. }
  54. /*
  55. tongrentang
  56. gnatnergnot
  57. abbaa
  58. */

F 1292224662

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define rep(i,a,n) for(int i=a;i<=n;i++)
  4. #define per(i,a,n) for(int i=n;i>=a;i--)
  5. #define pb push_back
  6. #define SZ(x) ((int)(x).size())
  7. typedef long long ll;
  8. typedef pair<int,int> pii;
  9. typedef double db;
  10. ll n;
  11. bool p(ll x){
  12. for(int i=2;(ll)i*i<=x;i++){
  13. if(x%(ll)i==0) return false;
  14. }
  15. return true;
  16. }
  17. int main(){
  18. cin>>n;
  19. while(1){
  20. if(p(n)){
  21. printf("%lld\n",n);
  22. return 0;
  23. }
  24. n--;
  25. }
  26. return 0;
  27. }

G IC1101

  1. using namespace std;
  2. #include <bits/stdc++.h>
  3. #define rep(i,a,n) for (int i=a;i<n;i++)
  4. #define per(i,a,n) for (int i=n-1;i>=a;i--)
  5. #define pb(X) push_back(X)
  6. #define x first
  7. #define y second
  8. #define all(x) (x).begin(), (x).end()
  9. #define bbb 0;
  10. #define INIT std::ios::sync_with_stdio(false);std::cin.tie(0);
  11. typedef long long ll;
  12. typedef vector<int> VI;
  13. typedef vector<long long> VL;
  14. typedef pair<int, int> pii;
  15. //ll powmod(ll a,ll b) {ll res=1;a%=mod; assert(b>=0); for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}
  16. ll gcd(ll a,ll b) { return b?gcd(b,a%b):a;}
  17. const int MAXN = 1e3 + 7;
  18. int _, __, DP[MAXN][MAXN];
  19. int main() {
  20. INIT
  21. DP[1][0] = 1;
  22. cin >> _ >> __;
  23. rep (i, 1, _ + 1)
  24. rep (j, 0, __ + 1)
  25. rep (k, 0, i)
  26. if(j >= k) (DP[i][j] += DP[i - 1][j - k]) %= 10000;
  27. cout << DP[_][__];
  28. if ("bbb") return bbb;
  29. }

H 1292224662

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define rep(i,a,n) for(int i=a;i<=n;i++)
  4. #define per(i,a,n) for(int i=n;i>=a;i--)
  5. #define pb push_back
  6. #define SZ(x) ((int)(x).size())
  7. typedef long long ll;
  8. typedef pair<int,int> pii;
  9. typedef double db;
  10. struct edg{
  11. int f,t;
  12. ll w;
  13. };
  14. struct nod{
  15. int x,y,no;
  16. };
  17. int n,p,fat[100010];
  18. edg e[200010];
  19. nod a[200010];
  20. int find(int x){
  21. if(fat[x]==x) return x;
  22. return fat[x]=find(fat[x]);
  23. }
  24. void merge(int x,int y){
  25. fat[find(x)]=find(y);
  26. }
  27. bool cmp(edg a,edg b){
  28. return a.w<b.w;
  29. }
  30. bool cmp1(nod a,nod b){
  31. return a.x<b.x;
  32. }
  33. bool cmp2(nod a,nod b){
  34. return a.y<b.y;
  35. }
  36. edg tmp;
  37. ll ans;
  38. int main(){
  39. cin>>n;
  40. rep(i,1,n){
  41. scanf("%d%d",&a[i].x,&a[i].y);
  42. a[i].no=i;
  43. }
  44. sort(a+1,a+1+n,cmp1);
  45. rep(i,2,n){
  46. tmp.f=a[i-1].no;
  47. tmp.t=a[i].no;
  48. tmp.w=a[i].x-a[i-1].x;
  49. e[++p]=tmp;
  50. }
  51. sort(a+1,a+1+n,cmp2);
  52. rep(i,2,n){
  53. tmp.f=a[i-1].no;
  54. tmp.t=a[i].no;
  55. tmp.w=a[i].y-a[i-1].y;
  56. e[++p]=tmp;
  57. }
  58. sort(e+1,e+1+p,cmp);
  59. for(int i=1;i<=n;i++){
  60. fat[i]=i;
  61. }
  62. for(int i=1;i<=p;i++){
  63. int x=find(e[i].f),y=find(e[i].t);
  64. if(x==y){
  65. continue;
  66. }
  67. merge(x,y);
  68. ans+=e[i].w;
  69. }
  70. printf("%lld\n",ans);
  71. return 0;
  72. }

I anananan

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. int qp(int a,int b,int mod)
  5. {
  6. int res=1;
  7. while(b){
  8. if(b&1) res=1ll*res*a%mod;
  9. a=1ll*a*a%mod;
  10. b>>=1;
  11. }
  12. return res;
  13. }
  14. int euler(int n){
  15. int ret=n;
  16. for(int i=2; i*i<=n; i++)
  17. if(n%i==0){
  18. ret=ret-ret/i;
  19. do n/=i;
  20. while(n%i==0);
  21. }
  22. if(n>1)ret=ret-ret/n;
  23. return ret;
  24. }
  25. map<int,int>ma;
  26. int solve(int x)
  27. {
  28. if(ma.find(x)!=ma.end()) return ma[x];
  29. int tem=euler(x);
  30. return ma[x]=qp(2,solve(tem)+tem,x);
  31. }
  32. int main()
  33. {
  34. int t; cin>>t;
  35. while(t--){
  36. ma[1]=0;
  37. int p; scanf("%d",&p);
  38. printf("%d\n",solve(p));
  39. }
  40. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注