洛谷 题解 P5595 【【XR-4】歌唱比赛】
本蒟蒻又双叒叕被爆踩了。
其实这题还是很简单的,难度不会大于普及组T1.
CSP 2019 RP++
看开始看到题目,觉得特别长,不想看。。。
我来和你们分析分析题目,你们就都可以秒了。
首先,窝们有一个串,然后对于每个字符'X'表示小X赢了,'Y'表示小Y赢了,而'Z'表示平局。只要对于每个字符进行判断就行。
比如:
XYYYXXYZ
第一个是'X',那么a[1]就要大于b[1];
第二个是'Y',那么a[2]就要小于b[2];
第三个是'Y',那么a[3]就要小于b[3];
第四个是'Y',那么a[4]就要小于b[4];
第五个是'X',那么a[5]就要大于b[5];
第六个是'X',那么a[6]就要大于b[6];
第七个是'Y',那么a[7]就要小于b[7];
第一个是'X',那么a[1]就要等于b[8];
这些都还很好理解,主要的是什么情况是无解的?
因为它每次都会加入首个元素,
所以,窝们看:
然后在找到第一个'Z'前
a[]:{1234}
b[]:{4321}
当前是'Z'的话:
窝们要是x1234和x4321相等,你找到个看看
这就是无解的状态。
接下来就是代码时间:
有注释的:
#include<bits/stdc++.h>
using namespace std;
#define maxn 1000010
#define Rep(x, a, b) for(int x = a; x <= b; ++ x)
bool flag;
char ch[maxn];
int b[maxn], a[maxn];//分别是读入的字符串,X的点赞数,Y的点赞数。
int main(){
scanf("%s", ch);//读入
int len = strlen(ch);//找到长度
Rep(i, 0, len - 1){
if(ch[i] == 'X'){//如果小X当前领先,那这一位a[i]要大于b[i],因为有spj,所以我用的1,2
if(flag){//如果已经出现'Z'
printf("-1");//无解
return 0;
}
a[i] = 2;
b[i] = 1;
}
else if(ch[i] == 'Y'){//如果是小Y领先也是一样的。
if(flag){//如果已经出现'Z'
printf("-1");//无解
return 0;
}
a[i] = 1;
b[i] = 2;
}
else{//如果当前是'z',就把flag赋值为1;
flag = 1;
a[i] = b[i] = 1;
}
}
Rep(i, 0, len - 1) printf("%d", a[i]);//输出
printf("\n");
Rep(i, 0, len - 1) printf("%d", b[i]);//输出
return 0;
}
没注释的:
#include<bits/stdc++.h>
using namespace std;
#define maxn 1000010
#define Rep(x, a, b) for(int x = a; x <= b; ++ x)
bool flag;
char ch[maxn], b[maxn], a[maxn];
int main(){
scanf("%s", ch);
int len = strlen(ch);
Rep(i, 0, len - 1){
if(ch[i] == 'X'){
if(flag){
printf("-1");
return 0;
}
a[i] = 2;
b[i] = 1;
}
else if(ch[i] == 'Y'){
if(flag){
printf("-1");
return 0;
}
a[i] = 1;
b[i] = 2;
}
else flag = a[i] = b[i] = 1;
}
Rep(i, 0, len - 1) printf("%d", a[i]);
printf("\n");
Rep(i, 0, len - 1) printf("%d", b[i]);
return 0;
}
PS:请看懂再抄
洛谷 题解 P5595 【【XR-4】歌唱比赛】的更多相关文章
- 洛谷 题解 UVA572 【油田 Oil Deposits】
这是我在洛谷上的第一篇题解!!!!!!!! 这个其实很简单的 我是一只卡在了结束条件这里所以一直听取WA声一片,详细解释代码里见 #include<iostream> #include&l ...
- 洛谷 题解 P1600 【天天爱跑步】 (NOIP2016)
必须得说,这是一道难题(尤其对于我这样普及组205分的蒟蒻) 提交结果(NOIP2016 天天爱跑步): OJ名 编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间 Libre ...
- 洛谷题解P4314CPU监控--线段树
题目链接 https://www.luogu.org/problemnew/show/P4314 https://www.lydsy.com/JudgeOnline/problem.php?id=30 ...
- 洛谷 题解 UVA12661 【有趣的赛车比赛 Funny Car Racing】
[题意] 在一个赛车比赛中,赛道有\(n(n<=300)\)个交叉点和\(m(m<=50000)\)条单向道路.有趣的是,每条道路都是周期性关闭的.每条道路用5个整数\(u,v,a,b,t ...
- 洛谷题解 CF777A 【Shell Game】
同步题解 题目翻译(可能有童鞋没读懂题面上的翻译) 给你三张牌0,1,2. 最初选一张,然后依次进行n次交换,交换规则为:中间一张和左边的一张,中间一张和右边一张,中间一张和左边一张...... 最后 ...
- 洛谷题解 CF807A 【Is it rated?】
同步题解 题目 好吧,来说说思路: 1.先读入啦~(≧▽≦)/~啦啦啦 2.判断a[i]赛前赛后是否同分数,如果分数不同,则输出,return 0 . 3.如果同分数,则判断a[i]赛前(或赛后)是否 ...
- 洛谷题解 P1138 【第k小整数】
蒟蒻发题解了 说明:此题我用的方法为桶排(我翻了翻有人用了桶排只不过很难看出来,可能有些重复的,这个题只是作为一个专门的桶排来讲解吧) (不会算抄袭吧 ‘QWaWQ’) 简单来说(会的人跳过就行): ...
- 【洛谷题解】P2303 [SDOi2012]Longge的问题
题目传送门:链接. 能自己推出正确的式子的感觉真的很好! 题意简述: 求\(\sum_{i=1}^{n}gcd(i,n)\).\(n\leq 2^{32}\). 题解: 我们开始化简式子: \(\su ...
- 洛谷题解 P2865 【[USACO06NOV]路障Roadblocks】
链接:https://www.luogu.org/problemnew/show/P2865 题目描述 Bessie has moved to a small farm and sometimes e ...
随机推荐
- [LINQ2Dapper]最完整Dapper To Linq框架(五)---查看Linq实际执行的SQL
此例子是使用LINQ2Dapper封装,效率优于EntityFramwork,并且支持.NetFramework和.NetCore框架,只依赖于Dapper支持.net framework4.6.1及 ...
- 实验:基于http的yum源
实验:基于http的yum源 selinux,firewalld已经关闭',系统为CentOS7 repodata所在的目录就是yum源 下面介绍了如何把本地光盘通过httpd服务器变成yum源:多个 ...
- shell的运用 : jenkins 编译 打包前端发布 生产(tomcat)
生产隔离做得非常.....文件上传只能通过固定ip机器的sftp账户上传,账户密码每个月要写申请才能获得. 登陆生产服务只能通过浏览器登陆!!! 发布一次生产,很痛苦. 做了简单的shell来减轻痛苦 ...
- 插入排序的代码实现(C语言)
void insert_sort(int arr[], int len) { for (int i = 1; i < len; ++i) { if (arr[i] < arr[i - 1] ...
- [java笔记] 最近学的一些笔记
1.@Override的用法 2.父类的返回值类型的范围,与子类返回值类型的返回的大小关系: 3.子类方法的权限修饰符,与子类方法的权限修饰符: 4.如果p1是一个对象,p2也是个对象,那么代码p1= ...
- [javascript] 编写一个计算器,实现加减法
1.代码 <script> function sum(){ //加法 var value1 = document.getElementById("num1").valu ...
- Java多态——代码示例
刚开始看多态的文字定义时,总是不明白说的啥意思,看了一些示例代码后,总算知道了,其实也就是“多态”的字面意思. 如下: class A{ public void Out() { System.out. ...
- SparkSQL--数据源Parquet的加载和保存
一.通用的load和save操作 对于Spark SQL的DataFrame来说,无论是从什么数据源创建出来的DataFrame,都有一些共同的load和save操作.load操作主要用于加载数据,创 ...
- python的模块future用法实例解析
计算机的知识太多了,很多东西就是一个使用过程中详细积累的过程.最近遇到了一个很久关于future的问题,踩了坑,这里就做个笔记,免得后续再犯类似错误. future的作用:把下一个新版本的特性导入 ...
- 使用Jquery获取指定属性的值
使用Jquery获取指定属性的值 <input type="hidden" value="{$time}" name="time" i ...