洛谷 P5595 【XR-4】歌唱比赛
洛谷 P5595 【XR-4】歌唱比赛
题目描述
小 X 参加了一场歌唱比赛。
经过一路鏖战,小 X 终于挺进了决赛,他的对手是小 Y。
这场歌唱比赛的冠军是由点赞数决定的,谁的点赞数高,谁就能夺冠。
小 X 和小 Y 依次演唱完自己的最后一首歌曲后,他们最终的点赞数确定了下来。
揭晓冠军的时刻终于到来了,主持人为了增加悬念,决定从小 X 与小 Y 的点赞数的最后一位开始,依次比较。
比如,小 X 的点赞数是 3737,小 Y 的点赞数是 2828。首先比较最后一位,小 X 是 77,小 Y 是 88,此时小 Y 暂时领先。再加上前一位,小 X 是 3737,小 Y 是 2828,此时小 X 暂时领先。比较结束,如果我们用 X
代表小 X 暂时领先,Y
代表小 Y 暂时领先,那么可以写下一个字符串 XY
。
再比如,小 X 的点赞数是 137137,小 Y 的点赞数是 4747。如果我们再用 Z
表示小 X 与小 Y 的点赞数暂时一样,那么写下的字符串应该为 XYZ
。
你作为一个精通 OI 的神仙,自然知道这种比较方式是非常不科学的,这样只是在无端拖延时间罢了,但是你却对最后写下的这个字符串很感兴趣。
现在,你得到了这个最后写下的字符串,你需要构造出一种可能的小 X 与小 Y 的点赞数。
当然,有可能不存在任何一种情况的点赞数满足这个字符串,那么你只需要输出 -1
即可。
为了方便你输出,请用前导零来补足位数。
输入格式
一行一个字符串 ss,表示最后写下的字符串。
输出格式
如果有解:
- 第一行一个整数,表示小 X 的点赞数。
- 第二行一个整数,表示小 Y 的点赞数。
如果无解:
- 一行一个整数
-1
。
输入输出样例
输入 #1复制
输出 #1复制
输入 #2复制
输出 #2复制
输入 #3复制
输出 #3复制
输入 #4复制
输出 #4复制
说明/提示
本题采用捆绑测试。
- Subtask 1(11 points):\text{len}(s) = 1len(s)=1。
- Subtask 2(42 points):s_i \in {\texttt{X},\texttt{Y}}s**i∈{X,Y}。
- Subtask 3(21 points):数据保证有解。
- Subtask 4(26 points):无特殊限制。
对于 100%100% 的数据,s_i \in {\texttt{X},\texttt{Y},\texttt{Z}}s**i∈{X,Y,Z},1 \le \text{len}(s) \le 10^61≤len(s)≤106。
题解:
一道橙题难了蒟蒻40多分钟
果然还是蒟蒻太菜了
一开始看觉得根本做不了,后来发现是SPJ。
那就好办了,我们随便构造出一个合法的序列就可以。
根据贪心的一个思想,为了维护序列的正确性,谁更大就往谁里捅9,谁更小往谁里捅0.
下面就是判断合法与否。
手推几组数据可以发现,如果Z不是连成串的,那么一定不合法:
比如:ZXYXYX
这一段序列。到Z后面的那位的时候还是X比较大,突然就到了Z,两个人相等了??!
这是无论如何也构造不出来的。
所以判断一下就可以了。
蒟蒻又判了一下len=1的情况
代码:
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<ctime>
using namespace std;
const int maxl=1e6+1;
char s[maxl];
int ans1[maxl],ans2[maxl];
int main()
{
scanf("%s",s+1);
int len=strlen(s+1);
if(len==1)
{
if(s[1]=='Z')
printf("0\n0");
else if(s[1]=='X')
printf("2\n1");
else
printf("1\n2");
return 0;
}
for(int i=1;i<len;i++)
if(s[i]=='Z'&&s[i+1]!='Z')
{
printf("-1");
return 0;
}
for(int i=len;i>=1;i--)
{
if(s[i]=='X')
{
ans1[i]=9;
ans2[i]=0;
}
else if(s[i]=='Y')
{
ans1[i]=0;
ans2[i]=9;
}
else
{
ans1[i]=0;
ans2[i]=0;
}
}
for(int i=1;i<=len;i++)
printf("%d",ans1[i]);
puts("");
for(int i=1;i<=len;i++)
printf("%d",ans2[i]);
return 0;
}
洛谷 P5595 【XR-4】歌唱比赛的更多相关文章
- 洛谷P2460 [SDOI2007]科比的比赛(题解)(贪心+搜索)
科比的比赛(题解)(贪心+搜索) 标签:算法--贪心 阅读体验:https://zybuluo.com/Junlier/note/1301158 贪心+搜索 洛谷题目:P2460 [SDOI2007] ...
- 洛谷P2777 [AHOI2016初中组]自行车比赛
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- 洛谷U14667 肝活动【比赛】 【状压dp】
题目描述 Yume 最近在玩一个名为<LoveLive! School idol festival>的音乐游戏.他之所以喜欢上这个游戏,是因为这个游戏对非洲人十分友好,即便你脸黑到抽不出好 ...
- 洛谷 P2777 [AHOI2016初中组]自行车比赛
题目描述 小雪非常关注自行车比赛,尤其是环滨湖自行车赛.一年一度的环滨湖自行车赛,需要选手们连续比赛数日,最终按照累计得分决出冠军.今年一共有 N 位参赛选手.每一天的比赛总会决出当日的排名,第一名的 ...
- 洛谷 U14475 部落冲突 【比赛】 【树链剖分 + 线段树】
题目背景 在一个叫做Travian的世界里,生活着各个大大小小的部落.其中最为强大的是罗马.高卢和日耳曼.他们之间为了争夺资源和土地,进行了无数次的战斗.期间诞生了众多家喻户晓的英雄人物,也留下了许多 ...
- 【洛谷 P1707】 刷题比赛 (矩阵加速)
题目连接 很久没写矩阵加速了,复习一下,没想到是一道小毒瘤题. 状态矩阵\(a[k],b[k],c[k],a[k+1],b[k+1],c[k+1],k,k^2,w^k,z^k,1\) 转移矩阵 0, ...
- 洛谷 2777 [AHOI2016初中组]自行车比赛
[题解] 为了让某个选手能够获得总分第一,就让他最后一天的得分是n,并且让别的选手的得分的最大值尽量小.于是我们先把目前积分排序,并且让他们最后一天的排名刚好与积分排名相反.即某个积分排名为X的人最后 ...
- 洛谷⑨月月赛Round2 官方比赛 OI
自评: (完成时间3.5时) 第一题 模拟 虽然A了,代码敲得有点慢 第二题 最短路 第一次敲对了,又考虑数据范围和答案范围,改错了,100分改成42分.QAQ. 第三题 乱搞 80分 还可以(因为没 ...
- [洛谷P1707] 刷题比赛
洛谷题目连接:刷题比赛 题目背景 nodgd是一个喜欢写程序的同学,前不久洛谷OJ横空出世,nodgd同学当然第一时间来到洛谷OJ刷题.于是发生了一系列有趣的事情,他就打算用这些事情来出题恶心大家-- ...
随机推荐
- 第05组 Alpha冲刺(4/4)
第05组 Alpha冲刺(4/4) 队名:天码行空 组长博客连接 作业博客连接 团队燃尽图(共享): GitHub当日代码/文档签入记录展示(共享): 组员情况: 组员1:卢欢(组长) 过去两天完成了 ...
- Codeforces Round #597 (Div. 2) E. Hyakugoku and Ladders 概率dp
E. Hyakugoku and Ladders Hyakugoku has just retired from being the resident deity of the South Black ...
- linux--新装机图形化界面遇到的问题
1 许可证信息 q 退出 c 继续 r 刷新 按以下顺序正确输入即可: 1 ------ 2 ----- q ----- yes
- 一起学react (1) 10分钟 让你dva从入门到精通
前言 如果文章中有错误的地方的话 可以直接加我QQ:469373256 自己针对一些问题做的优化版本 目前刚启动 还不是很成熟 https://github.com/fangkyi03/fastkit ...
- Java修饰符作用域
作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × 修饰 ...
- Selenium+java - 单选框及复选框处理
一.什么是单选框.复选框? 二.被测页面html源代码 CheckBoxRadioDemo.html <!DOCTYPE html> <html lang="en" ...
- pixijs shader 实现图片波浪效果
const app = new PIXI.Application({ transparent: true }); document.body.appendChild(app.view); // Cre ...
- 易飞ERP API接口调用DEMO
一.使用场景: 1.需要开放ERP数据给第三方系统对接,如APP手机端开发,MES,OA等: 2.接口按现在主流开发,restful风格,传JSON数据,跨平台,不限开发工具: 3.不限易飞ERP,支 ...
- Java开发桌面程序学习(五)——文件选择器和目录选择器的使用
选择器的使用 DirectoryChooser目录选择器官方文档 FileChooser文件选择器官方文档 文件选择器的使用 JavaFx中有个FileChoser,可以打开一个对话框来选择文件 Fi ...
- python基础(32):进程(二)
1. multiprocess模块 仔细说来,multiprocess不是一个模块而是python中一个操作.管理进程的包. 之所以叫multi是取自multiple的多功能的意思,在这个包中几乎包含 ...