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("\n");
77     }
78     else
79         printf("NO\n");
80     return 0;
81 }

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

时间: 2024-12-25 10:58:53

cf386(div2)大一狗ACM之路的相关文章

OUC&amp;&amp;我的ACM之路(三)

OUC && 我的ACM之路(三) 时间匆匆,转眼间,省赛我都已经参加过三届了.前面两篇日志:OUC && 我的ACM之路(一)  OUC && 我的ACM之路(二)首先吐槽一下这次省赛题目实在太简单了,也许HIT认为我们就这个水平吧.SD加油,早日冲出final.  rank在这里 其实我也没啥好总结的,只是感概,时间过得匆匆,很多话,前面两篇里面已经说了.最后说一下,实际比赛的时候,ABG三个数学题目,ouc_abc写的,Orz,要当时的状态,我应该是推

hrbust 1331 ACM之路 邂逅DP【dp】

ACM之路 邂逅DP Time Limit: 1000 MS Memory Limit: 65536 K Total Submit: 158(51 users) Total Accepted: 67(46 users) Rating: Special Judge: No Description MM迷上了ACM,不可救药... 算法绝非一天两天就能学好,需要不断的看书学习,不断的敲代码,不断的看书学习,不断的敲代码... 这是一条没有尽头的路... 尼玛的搞ACM的伤不起啊!!! 详情见:搞AC

剪辑的楼天城的ACM之路

楼天城楼教主的acm心路历程(剪辑) 利用假期空闲之时,将这几年GCJ,ACM,TopCoder 参加的一些重要比赛作个回顾.昨天是GCJ2006 的回忆,今天时间上更早一些吧,我现在还清晰记得3 年前,我刚刚参加ACM 时参加北京赛区2005 和杭州赛区2005 的情况.2005 年ACM-ICPC——酸甜苦辣我进入清华大学开始本科学习的时间是2004 年8 月,在进入清华大学的第一年里,由于基础课学习比较紧张,再加上计算机系不允许大一学生自带电脑,我没有参加2004 年的ACM 比赛.不过在

我的ACM之路

唉!孩子没娘说来话长啊!高考分数出来一切已成定局,在自己填报志愿的情况下我幸运的来到了哈理工,当时报的是计算机但是给我调剂到了网络工程,其实也没什么都一样.刚开始没觉得什么后来我为我能成为计院的一员而感到骄傲,因为挣钱非常多.现在不这么想了,而是真正的热爱.刚开学我们院就进行了新生培训,刚开始还坚持去听课,后来慢慢就没跟上,没跟上的原因有很多吧,以前从没接触过这类东西,即便是很简单的知识也不是很快的理解,还有我就是太注重基础课了,在整个大一我用在基础课的时间实在是太多了,但是最后我发现没什么屌用

记录一个技术狗走过的路

大四了,很烦.上大学时填了电子信息工程专业,进来后蹲了3年实验室搞硬件开发和单片机嵌入式,在临近大四的暑假发现嵌入式在当今的互联网时代感觉到有点虚. 纠结了很久,最终毅然转型走上了Android开发之路,想搭上移动互联网的大船,随着浪潮走一波. 我对计算机的兴趣是从小学就开始的,那时候我经常在我妈妈的单位里的电脑找游戏玩,那时候什么也不懂,就去各个磁盘分区下面死命的翻找.找到个像游戏的图标就去点,结果总是打开了一些莫名其妙的东西.(那些电脑都是单位里的地质测量队的工程师用的),估计那会儿也给人造

acm之路--母函数 by小宇

母函数又叫生成函数,原是数学上的一个名词,是组合数学中的一个重要理论. 生成函数是说,构造这么一个多项式函数g(x).使得x的n次方系数为f(n). 对于母函数,看到最多的是这样两句话: 1."把组合问题的加法法则和幂级数的乘幂相应起来." 2."把离散数列和幂级数一 一相应起来,把离散数列间的相互结合关系相应成为幂级数间的运算关系.最后由幂级数形式来确定离散数列的构造. " 母函数能够解决一些问题 如 砝码问题,整数划分,等等 砝码问题: 有1克.2克.3克.4克

ACM之路(20)—— Splay初探

由于数据结构上老师讲了AVL树的rotate,然后去学了一下treap和Splay,这些数据结构还真是神奇啊! treap暂时只知道名次树的作用(就是一段动态变化的有序数列,找第K大的元素,用set显然是O(n)的..). 好,正式介绍SplayTree这个神奇的数据结构:暂时的理解是,用于解决一些线段树解决不了的区间问题,比方说区间翻转,区间删除并插入等等(似乎分块也可以解决一些xjbg的区间问题)..然后,Splay还可以解决掉LCT的问题(暂时还不会,,下次继续学习). 然后就愉快地掏出模

ACM之路(1)——对二分及三分的研究

对于二分来说,个人暂且将其分为整数型和实数型.      对整数型而言,一般问题对于(low<=high)条件的判断取等号即可,因为在while途中查找遇到可匹配的便break,比方说二分查找已排序的数列.但是有些问题并不是这样的,在此分为两类:取最大值的min,和取最小值的max.      对于前一种,要用<(即不断往下推得最优解),而后一种要用<=(即不断往上推得最优解).同时,若对于前一种情况而言,因为要取最小的最优解,那么即使取中的mid可以满足条件仍要将high=mid-1以

ACM之路(16)—— 数位DP

题目就是kuangbin的数位DP. 先讲C题,不要62,差不多就是一个模板题.要注意的是按位来的话,光一个pos是不够的,还需要一维来记录当前位置是什么数字,这样才能防止同一个pos不同数字的dp值混在一起.直接丢代码: 1 #include <stdio.h> 2 #include <algorithm> 3 #include <string.h> 4 #include <iostream> 5 #include <vector> 6 #in