洛谷 P5595 【XR-4】歌唱比赛 刷题笔记
构造数据?P5595 【XR-4】歌唱比赛 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
XYZXYZ错误原因在于?
一旦有一位是z代表两者点赞数暂时相同?
如果z后面不是z
137 148 即第一位相同 后两位不同 则不满足两者点赞数相等
因此我们从前往后检查字符串 一旦遇到z后面不是z的情况返回-1即可
对于满足条件的输入
当一个人领先我们让他输出2而另一个输出1即可
相等则大家都输出3.。
#include<iostream>
#include<string.h>
using namespace std;
int main(){
?? ?char str[1000010];
?? ?int a[1000010],b[1000010];
?? ?cin>>str;
?? ?
?? ?int m=strlen(str);
?? ?
?? ?int flag=0,num=0;
?? ?int mask=0;
?? ?int cnt=0;
?? ?while(cnt<m){
?? ??? ?if(str[cnt]=='Z'){
?? ??? ??? ?mask=1;
?? ??? ?}
?? ??? ?if(mask==1&&str[cnt]!='Z'){
?? ??? ??? ?flag=1;
?? ??? ??? ?cout<<-1;
?? ??? ??? ?break;?
?? ??? ?}
?? ??? ?cnt++;
?? ?}?
?? ?
?? ?
?? ?if(flag==0){
?? ??? ?
?? ??? ?for(int i=0;i<m;i++){
?? ??? ?if(str[i]=='X'){
?? ??? ??? ?a[i]=2;b[i]=1;
?? ??? ?}else if(str[i]=='Y'){
?? ??? ??? ?a[i]=1;b[i]=2;
?? ??? ?}else{
?? ??? ??? ?a[i]=3;b[i]=3;
?? ??? ?}
?? ?}
?? ?
?? ?for(int i=0;i<m;i++){
?? ??? ?cout<<a[i];
?? ?}
?? ??? ?cout<<endl;
?? ?for(int i=0;i<m;i++){
?? ??? ?cout<<b[i];
?? ?}
?? ??? ?
?? ?}
?? ?
?? ?return 0;
}
注意用m来得到字符串长度 否则每次for循环都调用一次strlen 函数会tle.
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!