zoukankan      html  css  js  c++  java
  • cf386(div2)大一狗ACM之路

    #cf386(div2)总结#
    前两题很顺利的做了出来, c题扔了, D题wrong了5发才A掉。
    A题签到题, 但是想多了, 代码写的有点长了。 找被整除最小值*7。
    B题 读题读了一会, 读完了就有思路了, 1A。 字符串问题, 从后往前两个两个的放到新的字符串里, 一个从最左, 一个从最右, 模拟指针扫着放, 最后特判会不会扫到一起。
    C题跳了没看, 最后做完了D题回来看了一眼没什么思路 日后再说。
    D题, 恩。。 两个多小时都用在这题上面了, 20分钟的时候做完了B之后就一直再啃D题, 暴力判断啊啊啊啊, 各种判断。

    首先判断行不行, 我是看把多的按照k个分分的组能不能用少的隔开。

    之后循环输出, B还是G, 看单租里面超过k个没有, 少的剩下的能不能把多的剩下的分组, 能的话就输出少的, 不能的话结束这一组的循环, 还要考虑G B 的总个数。  最后附上代码, 表达能力好差啊。。。。

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<cmath>
     4 #include<cstdlib>
     5 #include<algorithm>
     6 using namespace std;
     7 int n, g, b, k;
     8 bool flag;
     9 int contg, contb;
    10 int sumg, sumb;
    11 int tem;
    12 int Max, Min;
    13 int cont;
    14 int main()
    15 {
    16     scanf("%d %d %d %d", &n, &k, &g, &b);
    17     Max = max(g, b);
    18     Min = min(g, b);
    19     int x, y;
    20     x = g, y = b;
    21     cont = (Max + k - 1) / k;
    22     if(Min + 1 >= cont) flag = true;
    23     if(flag)
    24     {
    25         while(cont > 0)
    26         {
    27             if(x > y)
    28             {
    29                 if(g - k >= 0)
    30                 {
    31                     for(int i = 1; i <= k; i++)
    32                     {printf("G");tem++;}
    33                     g -= k;
    34                 }
    35                 else 
    36                 {
    37                     for(int i = 1; i <= g; i++)
    38                         {printf("G");tem++;}
    39                         g = 0;
    40                 }
    41                 cont--;
    42                 int ans = 0;
    43                 while(b >= cont && ans < k && tem < n)
    44                 {
    45                     printf("B");
    46                     ans++;
    47                     b--;
    48                     tem++;
    49                 }
    50             }
    51             else 
    52             {
    53                 if(b - k >= 0)
    54                 {
    55                     for(int i = 1; i <= k; i++)
    56                     {printf("B");tem++;}
    57                     b = b -k;
    58                     }
    59                 else 
    60                 {
    61                     for(int i = 1; i <= b; i++)
    62                         {printf("B");tem++;}
    63                         b = 0;
    64                 }
    65                 cont--;
    66                 int ans = 0;
    67                 while(g >= cont && ans < k && tem < n)
    68                 {
    69                     printf("G");
    70                     ans++;
    71                     g--;
    72                     tem++;
    73                 }
    74             }
    75         }
    76         printf("
    ");
    77     }
    78     else 
    79         printf("NO
    ");
    80     return 0;
    81 }

    ---------------------------------------------
    虽然上分了, 但是没有上青名啊啊啊啊啊, 还差2分 尴尬啊啊啊啊啊啊,看来还要在绿名里徘徊一段时间。
    恩。。 至少没掉, 没掉分就是成功的第一步。
    希望早日上青名 。

  • 相关阅读:
    P1939 矩阵加速(数列)
    P3390 矩阵快速幂
    快速幂
    1236:区间合并
    1183:病人排队
    1230:寻找平面上的极大点
    1244:和为给定数
    1228 书架
    1222 放苹果
    洛谷5015标题统计
  • 原文地址:https://www.cnblogs.com/ZZZZone/p/6195771.html
Copyright © 2011-2022 走看看