首页 > 其他分享 >Marvelous Necklace Gym - 102020M

Marvelous Necklace Gym - 102020M

时间:2023-02-14 13:34:53浏览次数:64  
标签:idx idy ++ Gym else Marvelous int printf Necklace

M - Marvelous Necklace

 Gym - 102020M 

&:前缀和。

#include <cstdio>
#include <algorithm>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

char s[200005];
struct node
{
    int A,B;
} t[200005];
int main()
{
    int a,b;
    while(~scanf("%s", s))
    {
        memset(t,0,sizeof(t));
        int n = strlen(s);
        a = 0;
        b = 0;
        for(int i = 0; i < n; i ++)
        {
            if(s[i] == 'A') a++;
            else if(s[i] == 'B')b++;
        }
        for(int i = n; i < n * 2; i ++)
        {
            s[i] = s[i - n];
        }
        if(a % 2 != 0 || b % 2 != 0)
        {
            printf("NO\n");
        }
        else
        {
            int idx,idy;
            int A, B;
            A = 0;
            B = 0;
            idx = idy = 0;
            for(int i = 0; i < 2 * n; i ++)
            {
                if(s[i] == 'A')
                {
                    if(i == 0)
                    {
                        t[i].A ++;
                        t[i].B = 0;
                    }
                    else
                    {
                        t[i].A ++;
                        t[i].A += t[i - 1].A;
                        t[i].B = t[i - 1].B;
                    }
                }
                else if(s[i] == 'B')
                {
                    if(i == 0)
                    {
                        t[i].B ++;
                        t[i].A = 0;
                    }
                    else
                    {
                        t[i].B ++;
                        t[i].B += t[i - 1].B;
                        t[i].A = t[i - 1].A;
                    }
                }
            }

            for(int i = n; i < n * 2; i ++)
            {
                t[i].A -= t[i - n].A;
                t[i].B -= t[i - n].B;
            }

            int flag = 0;

           for(int i = n / 2; i < 2 * n; i ++)
            {
                if(t[i].A - t[i - n/2].A== a / 2 &&  t[i].B - t[i - n / 2].B == b / 2)
                {
                    flag = 1;
                    idx = i;
                    break;

                }
            }

            if(!flag) printf("NO\n");
            else
            {
                idx += 2;
                if(idx > n) idx = 1;
                idy = idx + n/ 2;
                if(idy > n) {idy = idy - n;}
                int dx = min(idx,idy);
                int dy = max(idx,idy);
                printf("YES\n%d %d\n",dx,dy);
            }
        }
    }
    return 0;
}

 

标签:idx,idy,++,Gym,else,Marvelous,int,printf,Necklace
From: https://blog.51cto.com/u_15965659/6056714

相关文章

  • 2018南京Gym - 101981J - Prime Game(计数)
    第一个元素的素因子2:它能贡献的区间有[1,1],[1,2],……,[1,10]10个区间第一个元素的素因子3:它能贡献的区间有[1,1],[1,2],……,[1,10]10个区间当前sum=10+10第二个元素......
  • gym102916 XXI Open Cup, Grand Prix of Samara
    A.Absenteeism这题是想的越多写的代码越少。首先根据题目中的约束,可以弄出一堆矩形,直接线段树加扫描线就行。其实不算难写。开始推性质,找简洁的做法。求的区间为\([x......
  • gym103469 XXII Open Cup, Grand Prix of IMO
    A.AND找到最小的值\(a\),如果存在\(x\anda\not=a\)无解。否则可以把\(a\)作为\(0\)使用,即在每两个数之间放上\(a\)。#include<bits/stdc++.h>usingnamespac......
  • GYM 101522 La Salle-Pui Ching Programming Challenge 培正喇沙編程挑戰賽 2017
    C.Cheering题意:判断一个字符串中\(LSC\),\(PCMS\)哪个字符穿出现的次数多,如果一样多输出\(Tie\)思路:模拟就行signedmain(){std::strings;......
  • Gym - 103427J Luggage Lock
    Gym-103427JLuggageLock题解:BFS预处理+偏移首先我们考虑暴力做法,对于每次查询我们都去找出\(a_0a_1a_2a_3\)到\(b_0b_1b_2b_3\)的最小步骤,如果给你0000->9999,我们......
  • safety-gym 环境配置
    safety-gym safety-gym的安装还是相当繁琐的,这里记录一下如何在linux系统上配置safety-gym  1.到mojuco官网下载mujoco200的压缩包和密钥 mujoco200压缩......
  • 【Python】Conda 安装 | GYM-Box2D CarRacing 环境准备GYM-Box2D CarRacing 的博客还
    GYM-Box2DCarRacing的博客还在制作中,这里先记录一下前面的环境准备。Python开发环境设置——安装Conda操作系统以Window为准进行说明(Linux同理)安装Anaconda或 M......
  • gym104076H
    hehezhou的鬼才神仙题解根本看不懂好吧。首先判掉\(n=1\)。然后考虑最后一步,发现只用考虑怎样的左右端点可能见面。左右和右左构成双射,算出总量减去自己配自己再除\(......
  • gym库学习小记
    gym学习gym库是一个开发和比较强化学习算法的包,并提供可视化,非常的有趣gym.make调用智能体模型的库env=gym.make(‘CartPole-v0’)#调用小车倒立摆系统其他库如下`(Acro......
  • gym104090 The 2022 ICPC Asia Hangzhou Regional Programming Contest I. Guess Cycl
    题目大意交互题给出一个长度为n的排列p,初始有一个人在某个位置(未知)每次询问可以给出一个步数x,然后人会向前走x步并返回所在位置的数字在1e4次询问内找到n,n<=1e9保证排......