Restricted RPS CodeForces - 1245B
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的更多相关文章
- 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 ...
- 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 ...
- codeforces Codeforces Round #597 (Div. 2) B. Restricted RPS 暴力模拟
#include <bits/stdc++.h> using namespace std; typedef long long ll; ]; ]; int main() { int t; ...
- Codeforces Round #597 (Div. 2)
A - Good ol' Numbers Coloring 题意:有无穷个格子,给定 \(a,b\) ,按以下规则染色: \(0\) 号格子白色:当 \(i\) 为正整数, \(i\) 号格子当 \( ...
- Codeforces 586D. Phillip and Trains 搜索
D. Phillip and Trains time limit per test: 1 second memory limit per test :256 megabytes input: stan ...
- CodeForces 173A Rock-Paper-Scissors 数学
Rock-Paper-Scissors 题目连接: http://codeforces.com/problemset/problem/173/A Description Nikephoros and ...
- Codeforces Gym 100015A Another Rock-Paper-Scissors Problem 找规律
Another Rock-Paper-Scissors Problem 题目连接: http://codeforces.com/gym/100015/attachments Description S ...
- 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 ...
- CodeForces Round #548 Div2
http://codeforces.com/contest/1139 A. Even Substrings You are given a string s=s1s2…sns=s1s2…sn of l ...
- CodeForces - 798D Mike and distribution 想法题,数学证明
题意:给你两个数列a,b,你要输出k个下标,使得这些下标对应的a的和大于整个a数列的和的1/2.同时这些下标对应的b //题解:首先将条件换一种说法,就是要取floor(n/2)+1个数使得这些数大于 ...
随机推荐
- JDK网站最终的拼图
"JDK源码剖析网"目前只上线了一小部分的内容(而且还未更新完成),Javac编译器,HotSpot基础.垃圾收集器以及HotSpot运行时将在今年10月份之前做为付费内容努力更新 ...
- K8s进阶之多租户场景下的资源配额(ResourceQuota)
概述 ResourceQuota官方文档:https://kubernetes.io/zh-cn/docs/concepts/policy/resource-quotas/ 在 Kubernetes( ...
- Mac 终端下svn常用命令的使用
svn基本的操作流程 刚刚进入一个新的公司,让我接手一个正在进行的项目,我打开终端写下了:svn co svn://192.168.1.1/pro/domain 然后就可以在当前目录里面找到一个叫do ...
- chatgpe脚本系列 - 分析nginx攻击日志,并自动加入防火墙黑名单
脚本内容 #!/bin/bash # 日志文件路径 LOG_FILE="/var/log/nginx/access.log" # Fail2Ban 过滤器路径 FILTER_FIL ...
- 从排查ip不合法,到发现自己拖延,自欺的问题
现象: 我调用推送接口,接口提示 ip地址不合法,服务器调用的接口ip需要在第三方平台上设置,调用提示 ip 错误 我将自己的出口ip地址配置到了第三方平台上,出口ip地址可以通过在服务器上面执行 c ...
- C#实现欧姆龙 HostLink 通讯协议库
目录 C#实现欧姆龙 HostLink 通讯协议库 背景介绍 欧姆龙 PLC 内存区域介绍 欧姆龙 PLC 数据类型对应 欧姆龙 PLC 与 PC 的 RS232 接线线序 HostLink通讯报文分 ...
- 模块与包&相对绝对路径
[一]模块与包 (1)什么是模块 在Python中,一个py文件就是一个模块,文件名为xxx.py模块名则是xxx,导入模块可以引用模块中已经写好的功能. (2)模块的来源 内置的:python解释器 ...
- hot100之矩阵
矩阵置零(073) 先看代码 class Solution { public void setZeroes(int[][] matrix) { boolean col0_flag = false; i ...
- 工作流引擎系统-基于橙单(flowable)的系统开发-流程配置举例
什么是工作流引擎(Workflow Engine ) 例如开发一个系统,最关键的部分不是系统的界面(增删改查之类),也不是和数据库之间的交互(读写数据库之类),而是如何根据业务逻辑开发出符合实际需要的 ...
- 【7*】期望DP学习笔记
前言 由于马上就要把同学的<概率论与数理统计>还回去了,所以赶快看一点,并做一点笔记. 感觉网上很多文章讲期望 DP 都讲得不够透彻啊,就写一些自己的理解造福后人吧,自我感觉讲得很透彻. ...