https://vjudge.net/contest/356807#problem/H

题意

  A和B进行剪刀石头布n次

    A已知B出的类型顺序,同时规定A必须出三种类型的次数

    A能赢n/2局则算A赢,并给出出拳序列

    否则A输

思路

  简单模拟

  根据给定的B出拳序列构造A出拳序列

  不够的就填充剩余的类型

代码

  1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include<algorithm>
5 #include<bitset>
6 #include<cassert>
7 #include<cctype>
8 #include<cmath>
9 #include<cstdlib>
10 #include<ctime>
11 #include<deque>
12 #include<iomanip>
13 #include<list>
14 #include<map>
15 #include<queue>
16 #include<set>
17 #include<stack>
18 #include<vector>
19 #include <vector>
20 #include <iterator>
21 #include <utility>
22 #include <sstream>
23 #include <limits>
24 #include <numeric>
25 #include <functional>
26 using namespace std;
27 #define gc getchar()
28 #define mem(a) memset(a,0,sizeof(a))
29 //#define sort(a,n,int) sort(a,a+n,less<int>())
30
31 #define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
32
33 typedef long long ll;
34 typedef unsigned long long ull;
35 typedef long double ld;
36 typedef pair<int,int> pii;
37 typedef char ch;
38 typedef double db;
39
40 const double PI=acos(-1.0);
41 const double eps=1e-6;
42 const ll mod=1e9+7;
43 const int inf=0x3f3f3f3f;
44 const int maxn=1e5+10;
45 const int maxm=100+10;
46
47
48 bool compare(int a, int b)
49 {
50 return a < b;//升序
51 }
52
53
54 char sequence_R[100] = {0};
55 char sequence_G[100] = {0};
56 int main(){
57 int T;
58 int n = 0;
59 int s = 0 , r = 0 , p = 0;
60 int r1 = 0 , p1 = 0 , s1 = 0;
61 int sum = 0;
62 cin >> T;
63 while(T--)
64 {
65 for(int i = 0;i<n;i++)
66 {
67 sequence_R[i] = 0;
68 sequence_G[i] = 0;
69 }
70 n = 0;
71 s = 0; r = 0; p = 0;
72 r1 = 0 , p1 = 0 , s1 = 0;
73 sum = 0;
74 cin >> n;
75 cin >> r >> p >> s;
76 cin >> sequence_R;
77 for(int i = 0;i<n;i++)
78 {
79 if(sequence_R[i] == 'R') r1++;
80 if(sequence_R[i] == 'P') p1++;
81 if(sequence_R[i] == 'S') s1++;
82 }
83 sum += min(r1,p) + min(p1,s) + min(s1,r);
84
85 if(sum >= (n+1)/2)
86 {
87 cout << "YES" << endl;
88 for(int i = 0;i<n;i++)
89 {
90 if(sequence_R[i]=='R' && p > 0)
91 {
92 sequence_G[i]='P';
93 p -= 1;
94 }
95 else if(sequence_R[i]=='P' && s > 0)
96 {
97 sequence_G[i]='S';
98 s -= 1;
99 }
100 else if(sequence_R[i]=='S' && r > 0)
101 {
102 sequence_G[i]='R';
103 r -= 1;
104 }
105 }
106 for(int i = 0;i<n;i++)
107 {
108 if(sequence_G[i])
109 {
110 cout << sequence_G[i];
111 }
112 else
113 {
114 if(r)
115 {
116 cout << 'R';
117 r -= 1;
118 }
119 else if(p)
120 {
121 cout << 'P';
122 p -= 1;
123 }
124 else if(s)
125 {
126 cout << 'S';
127 s -= 1;
128 }
129 }
130 }
131 }
132 else
133 {
134 cout << "NO" << endl;
135 }
136 cout << endl;
137 }
138 return 0;
139 }

Restricted RPS CodeForces - 1245B的更多相关文章

  1. CodeForces - 1245 B - Restricted RPS(贪心)

    Codeforces Round #597 (Div. 2) Let nn be a positive integer. Let a,b,ca,b,c be nonnegative integers ...

  2. Codeforces Round #597 (Div. 2) B. Restricted RPS

    链接: https://codeforces.com/contest/1245/problem/B 题意: Let n be a positive integer. Let a,b,c be nonn ...

  3. codeforces Codeforces Round #597 (Div. 2) B. Restricted RPS 暴力模拟

    #include <bits/stdc++.h> using namespace std; typedef long long ll; ]; ]; int main() { int t; ...

  4. Codeforces Round #597 (Div. 2)

    A - Good ol' Numbers Coloring 题意:有无穷个格子,给定 \(a,b\) ,按以下规则染色: \(0\) 号格子白色:当 \(i\) 为正整数, \(i\) 号格子当 \( ...

  5. Codeforces 586D. Phillip and Trains 搜索

    D. Phillip and Trains time limit per test: 1 second memory limit per test :256 megabytes input: stan ...

  6. CodeForces 173A Rock-Paper-Scissors 数学

    Rock-Paper-Scissors 题目连接: http://codeforces.com/problemset/problem/173/A Description Nikephoros and ...

  7. Codeforces Gym 100015A Another Rock-Paper-Scissors Problem 找规律

    Another Rock-Paper-Scissors Problem 题目连接: http://codeforces.com/gym/100015/attachments Description S ...

  8. Codeforces Round #336 (Div. 2)【A.思维,暴力,B.字符串,暴搜,前缀和,C.暴力,D,区间dp,E,字符串,数学】

    A. Saitama Destroys Hotel time limit per test:1 second memory limit per test:256 megabytes input:sta ...

  9. CodeForces Round #548 Div2

    http://codeforces.com/contest/1139 A. Even Substrings You are given a string s=s1s2…sns=s1s2…sn of l ...

  10. CodeForces - 798D Mike and distribution 想法题,数学证明

    题意:给你两个数列a,b,你要输出k个下标,使得这些下标对应的a的和大于整个a数列的和的1/2.同时这些下标对应的b //题解:首先将条件换一种说法,就是要取floor(n/2)+1个数使得这些数大于 ...

随机推荐

  1. JDK网站最终的拼图

    "JDK源码剖析网"目前只上线了一小部分的内容(而且还未更新完成),Javac编译器,HotSpot基础.垃圾收集器以及HotSpot运行时将在今年10月份之前做为付费内容努力更新 ...

  2. K8s进阶之多租户场景下的资源配额(ResourceQuota)

    概述 ResourceQuota官方文档:https://kubernetes.io/zh-cn/docs/concepts/policy/resource-quotas/ 在 Kubernetes( ...

  3. Mac 终端下svn常用命令的使用

    svn基本的操作流程 刚刚进入一个新的公司,让我接手一个正在进行的项目,我打开终端写下了:svn co svn://192.168.1.1/pro/domain 然后就可以在当前目录里面找到一个叫do ...

  4. chatgpe脚本系列 - 分析nginx攻击日志,并自动加入防火墙黑名单

    脚本内容 #!/bin/bash # 日志文件路径 LOG_FILE="/var/log/nginx/access.log" # Fail2Ban 过滤器路径 FILTER_FIL ...

  5. 从排查ip不合法,到发现自己拖延,自欺的问题

    现象: 我调用推送接口,接口提示 ip地址不合法,服务器调用的接口ip需要在第三方平台上设置,调用提示 ip 错误 我将自己的出口ip地址配置到了第三方平台上,出口ip地址可以通过在服务器上面执行 c ...

  6. C#实现欧姆龙 HostLink 通讯协议库

    目录 C#实现欧姆龙 HostLink 通讯协议库 背景介绍 欧姆龙 PLC 内存区域介绍 欧姆龙 PLC 数据类型对应 欧姆龙 PLC 与 PC 的 RS232 接线线序 HostLink通讯报文分 ...

  7. 模块与包&相对绝对路径

    [一]模块与包 (1)什么是模块 在Python中,一个py文件就是一个模块,文件名为xxx.py模块名则是xxx,导入模块可以引用模块中已经写好的功能. (2)模块的来源 内置的:python解释器 ...

  8. hot100之矩阵

    矩阵置零(073) 先看代码 class Solution { public void setZeroes(int[][] matrix) { boolean col0_flag = false; i ...

  9. 工作流引擎系统-基于橙单(flowable)的系统开发-流程配置举例

    什么是工作流引擎(Workflow Engine ) 例如开发一个系统,最关键的部分不是系统的界面(增删改查之类),也不是和数据库之间的交互(读写数据库之类),而是如何根据业务逻辑开发出符合实际需要的 ...

  10. 【7*】期望DP学习笔记

    前言 由于马上就要把同学的<概率论与数理统计>还回去了,所以赶快看一点,并做一点笔记. 感觉网上很多文章讲期望 DP 都讲得不够透彻啊,就写一些自己的理解造福后人吧,自我感觉讲得很透彻. ...