A Live Love

  1. #include <algorithm>
  2. #include<cstdio>
  3. #include<cstring>
  4. using namespace std;
  5. typedef long long ll;
  6. const int inf = 0x3f3f3f3f;
  7. const int maxn = 1e5 + ;
  8.  
  9. int main()
  10. {
  11. int t;
  12. scanf("%d", &t);
  13. while(t--)
  14. {
  15. int n,m;
  16. scanf("%d%d",&n,&m);
  17. if(m==){
  18. printf("0 0\n");
  19. continue;
  20. }
  21. if(n==m){
  22. printf("%d %d\n",n,m);
  23. continue;
  24. }
  25. if(n>=*m-){
  26. printf("%d %d\n",m,);
  27. continue;
  28. }
  29. for(int i=;i<=m;i++) {
  30. if (n - m >= (m / i + (m % i != )) - ) {
  31. printf("%d %d\n", m, i);
  32. break;
  33. }
  34. }
  35. }
  36. return ;
  37. }
B Red Black Tree

留坑

C Halting Problem

题意:自定义了一些程序,然后问程序会不会崩溃,也就是会不会有死循环出现

思路:队友写的,大致就是同一步不可以运行一摸一样的两次吧

  1. #include <algorithm>
  2. #include<cstdio>
  3. #include<cstring>
  4. using namespace std;
  5. typedef long long ll;
  6. const int inf = 0x3f3f3f3f;
  7. const int maxn = 1e5 + ;
  8. struct com{
  9. char cm[];
  10. int v,k;
  11. }prog[];
  12. bool vstd[][];
  13. int main()
  14. {
  15. int n,t;
  16. scanf("%d", &t);
  17. while(t--) {
  18. scanf("%d",&n);
  19. for(int i=;i<=n;i++){
  20. scanf("%s%d",prog[i].cm,&prog[i].v);
  21. if(prog[i].cm[]!='a'){
  22. scanf("%d",&prog[i].k);
  23. }
  24. }
  25. int r=,ins=;
  26. int flag=;
  27. memset(vstd,,sizeof(vstd));
  28. while(true){
  29. if(ins>n){
  30. break;
  31. }
  32. if(vstd[r][ins]){
  33. flag=;
  34. break;
  35. }
  36. switch(prog[ins].cm[]){
  37. case 'd'://+
  38. vstd[r][ins]=;
  39. r+=prog[ins].v;
  40. r%=;
  41. ins++;
  42. break;
  43.  
  44. case 'e'://==
  45. vstd[r][ins]=;
  46. if(r==prog[ins].v){
  47. ins=prog[ins].k;
  48. }else{
  49. ins++;
  50. }
  51. break;
  52.  
  53. case 'n'://!=
  54. vstd[r][ins]=;
  55. if(r!=prog[ins].v){
  56. ins=prog[ins].k;
  57. }else{
  58. ins++;
  59. }
  60. break;
  61.  
  62. case 'l'://<
  63. vstd[r][ins]=;
  64. if(r<prog[ins].v){
  65. ins=prog[ins].k;
  66. }else{
  67. ins++;
  68. }
  69. break;
  70.  
  71. case 'g'://>
  72. vstd[r][ins]=;
  73. if(r>prog[ins].v){
  74. ins=prog[ins].k;
  75. }else{
  76. ins++;
  77. }
  78. break;
  79.  
  80. default:
  81. vstd[r][ins]=;
  82. ins++;
  83. break;
  84. }
  85. }
  86. if(flag){
  87. puts("Yes");
  88. }else{
  89. puts("No");
  90. }
  91. }
  92. return ;
  93. }
D Pixel Art

留坑

E Infinite Parenthesis Sequence

留坑

F Chaleur

留坑

G Couleur

留坑

H Traveling on the Axis

题意:模拟红绿灯,1过,0停,每一秒之后都会改变所有的灯的状态,1变0,0变1

思路:只需要特判第一步走的需不需要停就可以,之后走起来之后的状态都是重复进行的

  1. #include <algorithm>
  2. #include<cstdio>
  3. #include<iostream>
  4. #include<cstring>
  5. using namespace std;
  6. typedef long long ll;
  7. char rd[];
  8. ll len;
  9. int main()
  10. {
  11. int n,t;
  12. while(~scanf("%d",&t)) {
  13.  
  14. while (t--) {
  15. scanf("%s", rd);
  16. len = strlen(rd);
  17. long long ans = ;
  18. long long tmp;
  19. for (ll i = ; i < len - ; i++) {
  20. tmp = (len - i - ) * (i + );
  21. if (rd[i] == rd[i + ])tmp *= ;
  22. ans += tmp;
  23. }
  24. //ll b=0;
  25. for (ll i = ; i < len; i++) {
  26. ans += rd[i] == '' ? (len - i) : (len - i) * ;
  27. //b+=rd[i]=='1'?(len-i):(len-i)*2;
  28. }
  29.  
  30. cout << ans << endl;
  31. }
  32. }
  33. return ;
  34. }
I Kuririn MIRACLE
 留坑
 
J Press the Button

题意:按灯,当灯亮的时候按压可以加分,每一次按都会重置灯的熄灭时间。

思路:可以先找到两个数的最小公倍数,然后就可以按照这个周期进行一些剪枝,在每一次周期或者是最后一次的剩余时间里可以模拟,队友用了栈写之后超时了,后来另一位队友没有用栈就AC了

  1. #include <algorithm>
  2. #include<cstdio>
  3. #include<iostream>
  4. #include<cstring>
  5. using namespace std;
  6. typedef long long ll;
  7. ll gcd(ll x, ll y)
  8. {
  9. return x % y == ? y : gcd(y, x % y);
  10. }
  11.  
  12. int main()
  13. {
  14. int t;
  15. while(~scanf("%d",&t)) {
  16. while (t--) {
  17. ll a,b,c,d,v,t;
  18. scanf("%lld%lld%lld%lld%lld%lld",&a,&b,&c,&d,&v,&t);
  19. ll time=;
  20. ll tt=a*c/gcd(a,c);
  21. ll ta=a,tc=c;
  22. ll tans=;
  23. while(ta<=tt || tc<=tt){
  24. if(ta<=tc){
  25. tans+=b;
  26. if(ta-time>v){
  27. tans--;
  28. }
  29. time=ta;
  30. ta+=a;
  31. }else if(ta>tc){
  32. tans+=d;
  33. if(tc-time>v){
  34. tans--;
  35. }
  36. time=tc;
  37. tc+=c;
  38. }
  39. }
  40. ll sans=;ta=a,tc=c;
  41. time=;
  42. ll res=t%tt;
  43. while(ta<=res|| tc<=res){
  44. if(ta<=tc){
  45. sans+=b;
  46. if(ta-time>v){
  47. sans--;
  48. }
  49. time=ta;
  50. ta+=a;
  51. }else if(ta>tc){
  52. sans+=d;
  53. if(tc-time>v){
  54. sans--;
  55. }
  56. time=tc;
  57. tc+=c;
  58. }
  59. }sans+=b+d-;
  60. cout<<tans*(t/tt)+sans<<endl;
  61. }
  62. }
  63. return ;
  64. }
K XOR Clique

题意:找一个最大的集合,使得这些任意两个异或后的值都比最小的那个小

思路:有个队友说可以用字典树,后来我想了想好像只需要计算每一个2,4,8,16,32,64,128,256,512,1024......这些区间的数字的个数就可以了,因为不同的这些2的次方它们异或之后显然最高位会是1,使得它们肯定会比最小的那个大,所以肯定是在同一个集合里面的,同一个集合里面的它们的第一位是相同的,所以异或之后肯定会比最小的那个数要小,所以统计区间个数就可以了,先打个表记录一下2的次方。

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<algorithm>
  4. #include<cstring>
  5. #include<cmath>
  6. #include<cstdlib>
  7. #include<queue>
  8. #include<set>
  9. #include<stack>
  10. #include<vector>
  11. #include<map>
  12. #include<ctime>
  13. using namespace std;
  14. using namespace std;
  15. typedef long long ll;
  16. const int inf = 0x3f3f3f3f;
  17. const int maxn = 1e5 + ;
  18.  
  19. int main()
  20. {
  21. ll a[];
  22. int sum[];
  23. for(ll i=;i<=;i++)
  24. {
  25. a[i]=(ll)pow(*1.0,i);
  26. // cout<<a[i]<<" ";
  27. }
  28. int t;
  29. while(~scanf("%d",&t))
  30. {
  31. while(t--)
  32. {
  33. int n;
  34. scanf("%d",&n);
  35. memset(sum,,sizeof sum);
  36. for(int i=;i<n;i++)
  37. {
  38. int x;
  39. scanf("%d",&x);
  40. for(int num=;num<=;num++)
  41. {
  42. if(x<a[num])
  43. {
  44. sum[num]++;
  45. break;
  46. }else
  47. continue;
  48. }
  49. }
  50. int maxx=-;
  51. for(int i=;i<=;i++)
  52. maxx=max(maxx,sum[i]);
  53. printf("%d\n",maxx);
  54. }
  55. }
  56. }

The 2018 ACM-ICPC Asia Qingdao Regional Contest(青岛网络赛)的更多相关文章

  1. The 2018 ACM-ICPC Asia Qingdao Regional Contest

    The 2018 ACM-ICPC Asia Qingdao Regional Contest 青岛总体来说只会3题 C #include<bits/stdc++.h> using nam ...

  2. The 2018 ACM-ICPC Asia Qingdao Regional Contest(部分题解)

    摘要: 本文是The 2018 ACM-ICPC Asia Qingdao Regional Contest(青岛现场赛)的部分解题报告,给出了出题率较高的几道题的题解,希望熟悉区域赛的题型,进而对其 ...

  3. ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków

    ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków Problem A: Rubik’s Rect ...

  4. 2019-2020 ICPC, Asia Jakarta Regional Contest (Online Mirror, ICPC Rules, Teams Preferred)

    2019-2020 ICPC, Asia Jakarta Regional Contest (Online Mirror, ICPC Rules, Teams Preferred) easy: ACE ...

  5. The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online J - Press the Button(思维)

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4056 题意 有一个按钮.一个灯.一个计时器和一个计数器,每按一次按钮,计时 ...

  6. The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online -C:Halting Problem(模拟)

    C Halting Problem In computability theory, the halting problem is the problem of determining, from a ...

  7. The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online Solution

    A    Live Love 水. #include<bits/stdc++.h> using namespace std; typedef long long ll; ; const i ...

  8. 2018-2019, ICPC, Asia Yokohama Regional Contest 2018 K

    传送门:https://codeforces.com/gym/102082/attachments 题解: 代码: /** * ┏┓ ┏┓ * ┏┛┗━━━━━━━┛┗━━━┓ * ┃ ┃ * ┃ ━ ...

  9. ZOJ - 4048 Red Black Tree (LCA+贪心) The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online

    题意:一棵树上有m个红色结点,树的边有权值.q次查询,每次给出k个点,每次查询有且只有一次机会将n个点中任意一个点染红,令k个点中距离红色祖先距离最大的那个点的距离最小化.q次查询相互独立. 分析:数 ...

  10. 2018 ICPC Asia Jakarta Regional Contest

    题目传送门 题号 A B C D E F G H I J K L 状态 Ο . . Ο . . Ø Ø Ø Ø . Ο Ο:当场 Ø:已补 .  :  待补 A. Edit Distance Thin ...

随机推荐

  1. 使用URLRewriter实现URL重写

    优点 1)隐藏真实URL,提高安全性 2)更加友好的URL,好记(看博客园就行知道啦) 3)便于搜素引擎收录 ......... 可能的缺点 使用URL重写可能导致: 1)图片路径的问题 2)CSS路 ...

  2. ElasticSearch入门-搜索(java api)

    ElasticSearch入门-搜索(java api) package com.qlyd.searchhelper; import java.util.Map; import net.sf.json ...

  3. 018.Java类加载器

    https://www.ibm.com/developerworks/cn/java/j-lo-classloader/ 类加载器(class loader) 用来加载 Java 类到 Java 虚拟 ...

  4. JQuery初识(三 )

    一丶JQuery的文档操作 1.插入操作: 父元素.append(子元素) 解释:追加某元素,在父元素中添加新的子元素.子元素可以为:stirng|element(js对象)|JQuery元素 var ...

  5. css动画-模拟正余弦曲线

    今天就写一个css3抛物线的动画吧= = 从左到右的抛物线动画,我们就暂且把动作分为匀速向右运动和变速的上下运动. 水平匀速运动我们可以利用 translateX(x):定义 2D 转换,沿着 X 轴 ...

  6. php 01

    PHP 一.了解php 1.什么是php PHP 超文本预处理器 服务器端的脚本语言  是一种被广泛应用的开放源代码的多用途脚本语言  他可以嵌入到html中 尤其适用web开发 2.php在web中 ...

  7. WPF中的StackPanel、WrapPanel、DockPanel(转)

    一.StackPanel StackPanel是以堆叠的方式显示其中的控件 1.可以使用Orientation属性更改堆叠的顺序 Orientation="Vertical" 默认 ...

  8. Redis集群维护、运营的相关命令与工具介绍

    Redis集群的搭建.维护.运营的相关命令与工具介绍 一.概述 此教程主要介绍redis集群的搭建(Linux),集群命令的使用,redis-trib.rb工具的使用,此工具是ruby语言写的,用于集 ...

  9. ubuntu14.04server下安装scala+sbt工具

    安装sbt参考https://www.cnblogs.com/wrencai/p/3867898.html 在安装scala时 首先得安装jdk环境,最好安装最新版本以免后续安装出现不必要的麻烦 一. ...

  10. 新增自定义聚合函数StrJoin

    1.添加程序集Microsoft.SqlServer.Types CREATE ASSEMBLY [Microsoft.SqlServer.Types] AUTHORIZATION [sys] FRO ...