本蒟蒻又双叒叕被爆踩了。

考试时一遍过

其实这题还是很简单的,难度不会大于普及组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】歌唱比赛】的更多相关文章

  1. 洛谷 题解 UVA572 【油田 Oil Deposits】

    这是我在洛谷上的第一篇题解!!!!!!!! 这个其实很简单的 我是一只卡在了结束条件这里所以一直听取WA声一片,详细解释代码里见 #include<iostream> #include&l ...

  2. 洛谷 题解 P1600 【天天爱跑步】 (NOIP2016)

    必须得说,这是一道难题(尤其对于我这样普及组205分的蒟蒻) 提交结果(NOIP2016 天天爱跑步): OJ名 编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间 Libre ...

  3. 洛谷题解P4314CPU监控--线段树

    题目链接 https://www.luogu.org/problemnew/show/P4314 https://www.lydsy.com/JudgeOnline/problem.php?id=30 ...

  4. 洛谷 题解 UVA12661 【有趣的赛车比赛 Funny Car Racing】

    [题意] 在一个赛车比赛中,赛道有\(n(n<=300)\)个交叉点和\(m(m<=50000)\)条单向道路.有趣的是,每条道路都是周期性关闭的.每条道路用5个整数\(u,v,a,b,t ...

  5. 洛谷题解 CF777A 【Shell Game】

    同步题解 题目翻译(可能有童鞋没读懂题面上的翻译) 给你三张牌0,1,2. 最初选一张,然后依次进行n次交换,交换规则为:中间一张和左边的一张,中间一张和右边一张,中间一张和左边一张...... 最后 ...

  6. 洛谷题解 CF807A 【Is it rated?】

    同步题解 题目 好吧,来说说思路: 1.先读入啦~(≧▽≦)/~啦啦啦 2.判断a[i]赛前赛后是否同分数,如果分数不同,则输出,return 0 . 3.如果同分数,则判断a[i]赛前(或赛后)是否 ...

  7. 洛谷题解 P1138 【第k小整数】

    蒟蒻发题解了 说明:此题我用的方法为桶排(我翻了翻有人用了桶排只不过很难看出来,可能有些重复的,这个题只是作为一个专门的桶排来讲解吧) (不会算抄袭吧 ‘QWaWQ’) 简单来说(会的人跳过就行): ...

  8. 【洛谷题解】P2303 [SDOi2012]Longge的问题

    题目传送门:链接. 能自己推出正确的式子的感觉真的很好! 题意简述: 求\(\sum_{i=1}^{n}gcd(i,n)\).\(n\leq 2^{32}\). 题解: 我们开始化简式子: \(\su ...

  9. 洛谷题解 P2865 【[USACO06NOV]路障Roadblocks】

    链接:https://www.luogu.org/problemnew/show/P2865 题目描述 Bessie has moved to a small farm and sometimes e ...

随机推荐

  1. VNC的安装以及使用

    VNC (Virtual Network Console)是虚拟网络控制台的缩写.它 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的.VNC 是在基于 UNIX 和  ...

  2. 大数据之路day05_1--初识类、对象

    1.1 什么是面向对象        面向对象思想就是不断的创建对象(属性与行为的封装,让二者作为整体参与程序执行),使用对象,指挥对象做事情.(在已有对象的情况下,直接使用对象,而不再去考虑对象的内 ...

  3. 算法编程题积累(4)——腾讯笔试"有趣的数字“问题

    本题基本思路:先对原序列进行排序,再根据不同情况采用不同算法. 首先差最大的对数最好求:用最小的数的个数 × 最大的数的个数即可. 接着求差最小的对数: 1.当序列中无重复关键字时:可知最小差必然产生 ...

  4. 如何使用24行JavaScript代码实现Redux

    作者:Yazeed Bzadough 译者:小维FE 原文:freecodecamp 为了保证文章的可读性,本文采用意译而非直译. 90%的规约,10%的库. Redux是迄今为止创建的最重要的Jav ...

  5. 超简单解决linux音乐播放器乱码问题

    问题 中文MP3的tag信息有些因为采用了GBK编码, 导致linux下的大多播放器(Rhythmbox, Audacious)无法正确识别而显示乱码. 如下图Audacious的乱码情况. 网上的常 ...

  6. jenkins里的定时构建

    1. 定时构建语法:* * * * * (五颗星,多个时间点,中间用逗号隔开)第一个*表示分钟,取值0~59第二个*表示小时,取值0~23第三个*表示一个月的第几天,取值1~31第四个*表示第几月,取 ...

  7. Mysql主从同步的实现原理与配置实战

    1.什么是mysql主从同步? 当master(主)库的数据发生变化的时候,变化会实时的同步到slave(从)库. 2.主从同步有什么好处? 水平扩展数据库的负载能力. 容错,高可用.Failover ...

  8. nyoj 66-分数拆分 (Java,暴力)

    66-分数拆分 内存限制:64MB 时间限制:3000ms 特判: No 通过数:7 提交数:9 难度:1 题目描述: 现在输入一个正整数k,找到所有的正整数x>=y,使得1/k=1/x+1/y ...

  9. 【java】关于Cannot refer to the non-final local variable list defined in an enclosing scope解决方法

    今天学习中遇到了一个问题: Cannot refer to the non-final local variable list defined in an enclosing scope 这里的new ...

  10. 有趣的css3实战案例剖析——(水纹波动)

    对于css3的学习,更多的是在于对新特性和基础理论的熟悉, 这篇文章通过一个案例带领大家了解css3里一些理论知识,也将一些技巧加以总结,从而提高大家的开发效率: 本次案例为(水纹波动),不用js写动 ...