CodeForces 746D Green and Black Tea 有坑

题意很明显不解释

做法就是直接模拟

有一个坑的地方就是中间值会爆ll WA50

 1 #include<bits/stdc++.h>
 2 #define cl(a,b) memset(a,b,sizeof(a))
 3 #define debug(a) cerr<<#a<<"=="<<a<<endl
 4 using namespace std;
 5 typedef long long ll;
 6 typedef pair<int,int> pii;
 7
 8 const int maxn=1e5+10;
 9
10 int main()
11 {
12     int n,k,a[2];
13     scanf("%d%d%d%d",&n,&k,&a[0],&a[1]);
14     int mn=min(a[0],a[1]);
15     int mx=max(a[0],a[1]);
16     debug((mn+1)*k),debug(mx);
17     if(1ll*(mn+1)*k<mx) //这里(mn+1)*k会爆ll
18     {
19         printf("NO\n");
20         return 0;
21     }
22     char letter[2]= {‘G‘,‘B‘};
23     string ans="";
24     if(a[0]>a[1])
25     {
26         letter[0]=‘B‘,letter[1]=‘G‘;
27         swap(a[0],a[1]);
28     }
29     int cnt=0;
30     for(int i=0; i<n; i++)
31     {
32         if(a[0]<=a[1] && cnt<k)
33         {
34             ans+=letter[1];
35             a[1]--,cnt++;
36         }
37         else
38         {
39             ans+=letter[0];
40             cnt=0,a[0]--;
41         }
42     }
43     cout<<ans.substr(0,n)<<endl;
44     return 0;
45 }/*
46
47 5 1 3 2
48
49 7 2 2 5
50
51 */
时间: 2024-10-25 19:05:25

CodeForces 746D Green and Black Tea 有坑的相关文章

Codeforces VP/补题小记 (持续填坑)

Codeforces VP/补题小记 1149 C. Tree Generator 给你一棵树的括号序列,每次交换两个括号,维护每次交换之后的直径. ? 考虑括号序列维护树的路径信息和,是将左括号看做 \(-1\) ,右括号看做 \(1\) ,那么一段竖直向上的路径可以表示为括号序列的一个区间和,一段竖直向下的路径可以看做括号序列的一个区间和的相反数.我们要维护的是树的直径,也就是一段连续的和减去紧随其后的一段连续的差.具体来说就是 \[ \max_{\forall [l,r]}\{\sum_{

【CodeForces 557B】Pasha and Tea

题 题意 总共有 w 克蛋糕,2n 个盘子,第 i 个盘子容量为 ai ,n 个女孩和 n 个男孩,男孩得到的是女孩得到的蛋糕的两倍,求他们得到蛋糕的最大值. 分析 把盘子从小到大排序,然后 女生得到的蛋糕总量是 n*min(最小的盘子,第n+1小的盘子/2,w/(3n)). 答案就是女生得到的蛋糕的3倍. 代码 #include<cstdio> #include<algorithm> using namespace std; int n,a[1000005]; double w,

Codeforces - Tag::SP 大合集 [占坑]

完蛋了要挂科了,赶紧更新个专题冷静一下 PS.仅按A题人数顺序更新,选择性忽略部分题 PPS.这个专题应该比较休闲吧 520B 给定初始n和目标m,存在两种操作\(-1\)和\(×2\),要求最少操作次数 无脑解法是BFS,不能解决稍大的规模 当n>m时,输出n-m 否则逆向处理,转换为m到n的最小操作次数,存在两种操作\(+1\)和\(/2\)(后者只能在偶数时操作) 由\((m+1+1)/2=m/2+1\)得尽量多的/2操作可以减少操作次数 因此若操作当前的\(m?\)是偶数时尽量/2,直到

CodeforcesGlobalRound2(Div.2)ABCE题解

http://codeforces.com/problemset/problem/1119/A 题意:对于给定数列,求解 a[i] != a[j] 时 j-i+1 的最大值. 思路:对于任意数列,假设存在某两个数字(ap,aq)不同,并且假设最长的区间就是[p,q]:a1,a2......ap,ap+1......aq......an: 那么对于这个序列,显然ap左边的数字都必须等于aq,否则就出现了更长的区间,右边也同理. 如此我们发现对于这个数组,a1 == ap,an == aq.显然最大

codeforces 557B. Pasha and Tea 解题报告

题目链接:http://codeforces.com/problemset/problem/557/B 题目意思:有 2n 个茶杯,规定第 i 个茶杯最多只能装 ai 毫升的水.现在给出 w 毫升的水,需要把这w毫升(可以不用光)的水倒入到这 2n 个茶杯中,使得分给n个男的每个水杯的水恰好是n个女的2倍(注意,n个男的水杯装的水是一样的,n 个女也是).现在问的是,怎样使得2n个杯装的水最多,求出这个值. ********************************************

Codeforces Round #311 (Div. 2) B. Pasha and Tea

[题目链接]click here~~ [题目大意]给你n个boy,n个girl ,然后W表示茶壶的最大容量,然后n个茶杯,每个都有不同的容量,要求boy的茶杯里的茶水是girl的两倍,且boy和boy容量一样,girl和girl 容量一样,问如何倒茶,最大化总的茶量 [解题思路]这道题本来很简单,第一次读题没读明白,以为每个茶杯的茶水都倒满了,然后一想不就是拿最大的计算吗.一交,直接WA,然后仔细读题,发现,每个茶杯的茶水可以选择的倒(坑~啊),那么既然boy和boy,girl和girl的茶水一

Codeforces Round #548 (Div. 2) F splay(新坑) + 思维

https://codeforces.com/contest/1139/problem/F 题意 有m个人,n道菜,每道菜有\(p_i\),\(s_i\),\(b_i\),每个人有\(inc_j\),\(pref_j\),一个人可以买一道菜的条件是 1. \(p_i \leq inc_j \leq s_i\) 2. \(|b_i - pref_j| \leq inc_j-p_i\) ,问每个人分别能买多少道菜 题解 转化一下公式 \(p_i \leq inc_j \leq s_i\) 下面两个满

Codeforces Round #549 (Div. 2) F 数形结合 + 凸包(新坑)

https://codeforces.com/contest/1143/problem/F 题意 有n条形如\(y=x^2+bx+c\)的抛物线,问有多少条抛物线上方没有其他抛物线的交点 题解 \(y=x^2+bx+c=>y+x^2=bx+c\),转换为点\((x,y+x^2)\)在bx+c的直线上 两个点确定一条抛物线,同时也确定了一条直线 需要选择最上面那些点相邻确定的抛物线,所以维护一个上凸包即可 维护上凸包,当前点在前进方向左边需要向后退,cross(a,b)>=0 代码 #inclu

Codeforces 557B Pasha and Tea 倒茶

题意:Pasha有2n个茶杯,每个茶杯的容积不同.Pasha有2n个朋友,男女各n个.现在Pasha要将总容积为w的茶倒在2n个茶杯里,分给这2n个朋友,并规定同性别的朋友茶杯中的茶容积相同,且每个男性朋友茶杯中茶的容积是每个女性朋友茶杯中茶的容积的两倍.求所有朋友茶杯中的茶容积之和的最大值. 水题.首先按照茶杯的容积排序,较小的n个茶杯肯定是分给了女生,较大的n个茶杯分给男生.若不然,如果某个男性朋友茶杯容积比某个女性朋友茶杯容积小的话,由于男性朋友茶杯中茶的容积较大,那么互换他们的茶杯,仍然