A.2295

求有多少素数对和等于n。

暴力。

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int ss(int n)
  4. {
  5. int i=,a=sqrt(n);
  6. for(;i<=a;i++)
  7. if(n%i==) return ;
  8. return ;
  9. }
  10. int main()
  11. {
  12. int n;
  13. while(scanf("%d",&n),n)
  14. {
  15. int sum=;
  16. for(int i=;i<=n/;i++)
  17. {
  18. if(ss(i)&&ss(n-i)) sum++;
  19. }
  20. printf("%d\n",sum);
  21. }
  22. return ;
  23. }

A.cpp

B.4607

给一个数能否被17整除。

同余。

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5. string s;
  6. while(cin>>s,s!="")
  7. {
  8. int su=;
  9. for(int i=; s[i]; i++)su=(su*+s[i]-'')%;
  10. cout<<(su?:)<<endl;
  11. }
  12. }

B.cpp

C.4681

给一个4*4的方格图,一次移动,输出结果。

暴力模拟。

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int a[][];
  4. void left_swap()
  5. {
  6. for(int i=;i<;i++)
  7. for(int j=;j<;j++)
  8. {
  9. int k=j;
  10. while(k>=&&a[i][k-]==)
  11. {
  12. swap(a[i][k],a[i][k-]);
  13. k--;
  14. }
  15. }
  16. }
  17. void left()
  18. {
  19. for(int i=;i<;i++)
  20. for(int j=;j<;j++)
  21. if(a[i][j]==a[i][j+])
  22. {
  23. a[i][j]+=a[i][j+];
  24. a[i][j+]=;
  25. left_swap();
  26. }
  27. }
  28. void right_swap()
  29. {
  30. for(int i=;i<;i++)
  31. for(int j=;j>=;j--)
  32. {
  33. int k=j;
  34. while(k<=&&a[i][k+]==)
  35. {
  36. swap(a[i][k],a[i][k+]);
  37. k++;
  38. }
  39. }
  40. }
  41. void right()
  42. {
  43. for(int i=;i<;i++)
  44. for(int j=;j>=;j--)
  45. if(a[i][j]==a[i][j-])
  46. {
  47. a[i][j]+=a[i][j-];
  48. a[i][j-]=;
  49. right_swap();
  50. }
  51. }
  52. void top_swap()
  53. {
  54. for(int j=;j<;j++)
  55. for(int i=;i<;i++)
  56. {
  57. int k=i;
  58. while(k>=&&a[k-][j]==)
  59. {
  60. swap(a[k][j],a[k-][j]);
  61. k--;
  62. }
  63. }
  64. }
  65. void top()
  66. {
  67. for(int j=;j<;j++)
  68. for(int i=;i<;i++)
  69. if(a[i+][j]==a[i][j])
  70. {
  71. a[i][j]+=a[i+][j];
  72. a[i+][j]=;
  73. top_swap();
  74. }
  75. }
  76. void buttom_swap()
  77. {
  78. for(int j=;j<;j++)
  79. for(int i=;i>=;i--)
  80. {
  81. int k=i;
  82. while(k<=&&a[k+][j]==)
  83. {
  84. swap(a[k][j],a[k+][j]);
  85. k++;
  86. }
  87. }
  88. }
  89. void buttom()
  90. {
  91. for(int j=;j<;j++)
  92. for(int i=;i>=;i--)
  93. if(a[i][j]==a[i-][j])
  94. {
  95. a[i][j]+=a[i-][j];
  96. a[i-][j]=;
  97. buttom_swap();
  98. }
  99. }
  100. int main()
  101. {
  102. int n;
  103. while(cin>>n)
  104. {
  105. memset(a,,sizeof(a));
  106. for(int i=;i<;i++)
  107. for(int j=;j<;j++)
  108. cin>>a[i][j];
  109. if(n==)
  110. {
  111. left_swap();
  112. left();
  113. }
  114. else if(n==)
  115. {
  116. right_swap();
  117. right();
  118. }
  119. else if(n==)
  120. {
  121. top_swap();
  122. top();
  123. }
  124. else if(n==)
  125. {
  126. buttom_swap();
  127. buttom();
  128. }
  129. for(int i=;i<;i++)
  130. {
  131. for(int j=;j<;j++)
  132. if(j==)cout<<a[i][j];
  133. else cout<<" "<<a[i][j];
  134. cout<<endl;
  135. }
  136. }
  137. return ;
  138. }

C.cpp

D.4682

n个部下,每个部下需要Bi分钟交待任务,让后Ji分钟后完成任务。确定一个顺序,使得最早完成任务。

贪心,按照Ji从大到小排序,然后求解。

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. struct ydw{
  5. ll b,j;
  6. }qu[];
  7. bool cmp(ydw x,ydw y)
  8. {
  9. if(x.j!=y.j)return x.j>y.j;
  10. return x.b>y.b;
  11. }
  12. int main()
  13. {
  14. ll i,n,k;
  15. int kk=;
  16. while(scanf("%I64d",&n),n!=)
  17. {
  18. for(i=;i<n;i++)
  19. {
  20. cin>>qu[i].b>>qu[i].j;
  21. }
  22. sort(qu,qu+n,cmp);
  23. ll s=;
  24. for(i=;i<n;i++)
  25. {
  26. s+=qu[i].b;
  27. for(k=;k<i;k++)
  28. {
  29. qu[k].j-=qu[i].b;
  30. }
  31. }
  32. ll m=;
  33. for(i=;i<n;i++)m=max(m,qu[i].j);
  34. printf("Case %d: ",kk++);
  35. cout<<s+m<<endl;
  36. }
  37. return ;
  38. }

D.cpp

E.3476

给n个时间,问是否矛盾。

暴力。

  1. #include<stdio.h>
  2. int main(){
  3. int i,j,n,h,m,s,h1,m1,s1;
  4. while(scanf("%d",&n)!=EOF,n){
  5. int f=,a[]={};
  6. for(i=;i<n;i++){
  7. scanf("%d:%d-%d:%d",&h,&m,&h1,&m1);
  8. s=h*+m;s1=h1*+m1;
  9. if(f){
  10. for(j=s;j<s1;j++){
  11. if(a[j]){
  12. f=;break;
  13. }
  14. a[j]=;
  15. }
  16. }
  17. }
  18. if(f)printf("no conflict\n");
  19. else printf("conflict\n");
  20. }
  21. }

E.cpp

F.4499

给一串AB串,操作1选1个位子把A改成B,B改成A,操作2选1个k,改变[1,k]的值。

思维,倒着来看。

如果s[i]='B'那么需要改,如果修改长度>=2那么肯定选操作2,否则选操作1。

  1. #include<cstdio>
  2. int n,g,i,j;
  3. char ch;
  4. bool s[],k;
  5. int main()
  6. {
  7. scanf("%d\n",&n);
  8. while(i<=n)
  9. {
  10. s[++i]=(ch=getchar())=='A'?:;
  11. }
  12. i--;
  13. while(i>=)
  14. {
  15. if(k^s[i])i--;
  16. else
  17. {
  18. j=-;
  19. while(!(k^s[i]))i--,j++;
  20. if(j)k^=;
  21. g++;
  22. }
  23. }
  24. printf("%d",g);
  25. }

F.cpp

G.3587

输出A,B的最大公约数。

欧几里得算法。

  1. #include<stdio.h>
  2. __int64 gcd(__int64 a,__int64 b){
  3. __int64 r=a%b;
  4. while(r){
  5. a=b;b=r;r=a%b;
  6. }
  7. return b;
  8. }
  9. int main(){
  10. int t;
  11. scanf("%d",&t);
  12. while(t--){
  13. __int64 a,b;
  14. scanf("%I64d%I64d",&a,&b);
  15. printf("%I64d\n",gcd(a,b));
  16. }
  17. return ;
  18. }

G.cpp

H.3451

村庄之间已经有一些道路,你的工作就是修建一些道路,使所有村庄都连通起来,所有道路的长度都是最小的。

最小生成树,已经有的路权值为0。

  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<algorithm>
  4. using namespace std;
  5. #define MAXN 100+5
  6. #define MAXM 5000+5
  7. int Map[MAXN][MAXN];
  8. int F[MAXN];
  9. int n,m,fx,fy,cnt;
  10. struct edge
  11. {
  12. int u;
  13. int v;
  14. int w;
  15. }edges[MAXM];
  16. bool cmp(edge a,edge b)
  17. {
  18. return a.w<b.w;
  19. }
  20. int Find(int x)
  21. {
  22. return F[x]==-?x:F[x]=Find(F[x]);
  23. }
  24. int Kruskal()
  25. {
  26. sort(edges,edges+m,cmp);
  27. int ans=;
  28. for(int i=;i<m;i++)
  29. {
  30. int u,v,w;
  31. u=edges[i].u;
  32. v=edges[i].v;
  33. w=edges[i].w;
  34. fx=Find(u);
  35. fy=Find(v);
  36. if(fx!=fy)
  37. {
  38. ans+=w;
  39. cnt++;
  40. F[fx]=fy;
  41. }
  42. if(cnt==n-)break;
  43. }
  44. if(cnt<n-)return -;
  45. else return ans;
  46. }
  47. int main()
  48. {
  49. scanf("%d",&n);
  50. m=;
  51. for(int i=;i<=n;i++)
  52. {
  53. for(int j=;j<=n;j++)
  54. {
  55. int w;
  56. scanf("%d",&w);
  57. if(i==j||i>j)continue;//多余的路径
  58. edges[m].u=i;
  59. edges[m].v=j;
  60. edges[m++].w=w;
  61. }
  62. }
  63. memset(F,-,sizeof(F));
  64. int Q,a,b;
  65. scanf("%d",&Q);
  66. for(int i=;i<Q;i++)
  67. {
  68. scanf("%d%d",&a,&b);
  69. fx=Find(a);
  70. fy=Find(b);
  71. if(fx!=fy)
  72. {
  73. F[fx]=fy;
  74. cnt++;
  75. }
  76. }
  77. int ans=Kruskal();
  78. printf("%d\n",ans);
  79. return ;
  80. }

H.cpp

I.3675

给三条边,问是否等边等腰斜角。

直接判一判就行。

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define ll __int64
  5. int main()
  6. {
  7. int T,ca=;
  8. cin>>T;
  9. while(T--)
  10. {
  11. ll a[];
  12. cin>>a[]>>a[]>>a[];
  13. sort(a,a+);
  14. cout<<"Case #"<<ca++<<": ";
  15. if(a[]+a[]<=a[])cout<<"invalid!\n";
  16. else if(a[]==a[]&&a[]==a[])cout<<"equilateral\n";
  17. else if(a[]==a[]||a[]==a[])cout<<"isosceles\n";
  18. else cout<<"scalene\n";
  19. }
  20. }

I.cpp

J.2913

[1,M]且可以整除a[i]的个数。

容斥,如果是奇数,那么个数ans+=m/lcm,如果是偶数,那么个数ans-=m/lcm,其中lcm为当前选中数的最小公倍数。

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6. int n,m,a[];
  7. while(scanf("%d%d",&n,&m)!=EOF)
  8. {
  9. for(int i=;i<n;i++)scanf("%d",&a[i]);
  10. int ans=;
  11. for(int i=;i<(<<n);i++)
  12. {
  13. int lcm=,cnt=;
  14. for(int j=;j<n;j++)
  15. if(i&(<<j))
  16. {
  17. lcm=a[j]/__gcd(a[j],lcm)*lcm;
  18. cnt++;
  19. }
  20. if(cnt&)ans+=m/lcm;
  21. else ans-=m/lcm;
  22. }
  23. printf("%d\n",ans);
  24. }
  25. return ;
  26. }

J.cpp

集训队日常训练20180525-DIV2的更多相关文章

  1. 集训队日常训练20181117 DIV2

    大佬们一顿操作猛如虎,拼命AC强啊 4262: 区间异或  Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByteTotal ...

  2. 集训队日常训练20181124 DIV2

    急急忙忙要出去比赛就拉了一场有点sb的题目 5202: 网络寻路  时间限制(普通/Java):1000MS/3000MS     内存限制:65536KByte总提交: 15            ...

  3. 集训队日常训练20181110 DIV2 题解及AC代码

    4375: 孪生素数  Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByteTotal Submit: 324       ...

  4. 集训队日常训练20181201 C 1003 : 种类数

    时间限制(普通/Java):2000MS/6000MS     内存限制:65536KByte总提交: 8            测试通过:5 描述 一共有 n个数,第 i 个数是 xi ,其中xi  ...

  5. 集训队日常训练20181201 E 1005 : 小蝌蚪

    时间限制(普通/Java):500MS/1500MS     内存限制:65536KByte总提交: 25            测试通过:5 描述 有 n 个装着小蝌蚪的水缸排成一排,你拥有一个无限 ...

  6. 集训队日常训练20180525-DIV1

    A.2805 N*M的图,每次浇水(X1,Y1)-(X2,Y2)围成的矩形,问最后有多少点被浇水了. 暴力. #include<bits/stdc++.h> using namespace ...

  7. 集训队日常训练20180518-DIV2

    A.3232 n个物品,换取要花积分,问刚好花完积分能换最大多少价值的物品. 多重背包. #include <bits/stdc++.h> using namespace std; ]; ...

  8. 集训队日常训练20180518-DIV1

    A.3583 n根木棍是否能分成相等两堆. 背包dp,首先求和sum,如果为偶数就说明不行,否则考虑做一个sum/2大小的背包. #include<bits/stdc++.h> using ...

  9. 集训队日常训练20180513-DIV1

    A.3132 给一个有向图,问能否从任意点出发都能进入一个环中. 深搜. #include<bits/stdc++.h> using namespace std; ; vector< ...

随机推荐

  1. python 中的 is 方法 总结

    isidentifier: 判断变量名是否合法 iskeyword:是否为内置关键字

  2. Jmeter接口测试(第二篇)

    一.新建项目 1.运行Jmeter.bat打开Jmeter 2.添加线程组(测试计划->添加->Thread(users)->线程组) 3.添加HTTP请求(线程组->添加-& ...

  3. python 编码问题:'ascii' codec can't encode characters in position 的解决方案

    报错: 'ascii' codec can't encode characters in position 8-50: ordinal not in range(128) Python在安装时,默认的 ...

  4. [Hdu-6053] TrickGCD[容斥,前缀和]

    Online Judge:Hdu6053 Label:容斥,前缀和 题面: 题目描述 给你一个长度为\(N\)的序列A,现在让你构造一个长度同样为\(N\)的序列B,并满足如下条件,问有多少种方案数? ...

  5. SVN 环境搭建

    安装配置 安装环境 #查看系统版本环境 [root@svn ~]# cat /etc/redhat-release CentOS release 6.7 (Final) [root@svn ~]# u ...

  6. CODE[VS]1372:DNA

    Description 为了进一步分析外星生物,专家们决定对 DNA 进行切割.限制性核酸内切酶是基因工程中的重要的工具酶.它会识别一段碱基序列(说白了就是只包含 ATGC 的序列)并且切割开.Eco ...

  7. hihocoder 1084 (哈希)

    题目链接 时间限制:4000ms 单点时限:4000ms 内存限制:256MB 描述 你知道KMP吗?它是用于判断一个字符串是否是另一个字符串的子串的算法.今天我们想去扩展它. 在信息理论中,在两个相 ...

  8. tmux连接时多个显示器分别显示不同的窗口大小

      如果两个电脑连接同一个tmux,但是他们各自的显示器大小不同,那么就会在一个显示器部分会显示灰色区.在tmux里面有个设置可以更改,在tmux里面输入命令 tmux set-window-opti ...

  9. Golang Learn Log #0

    Print/Printf 区别 Print: 可以打印出字符串, 和变量 fmt.Println(var) //right fmt.Println("string") //righ ...

  10. idea如何清晰地查看java类的继承结构及该类的所有方法?

    转载自:https://blog.csdn.net/luo609630199/article/details/82192938 我们在世用idea是平时除了编码外,有时我们需要查看源码或者别人写的代码 ...