Educational Codeforces Round 53 (Rated for Div. 2) A Diverse Substring

时间:2022-08-31 11:56:02

传送门

https://www.cnblogs.com/violet-acmer/p/10163375.html

题意:

  给出串是多态的定义“长度为 n 的串 s ,当串 s 中所有字母出现的次数严格 ≤ n/2,就称此串是多态的”。

  求某串 s 是否含有多态的字串,如果含有,输出"YES",并输出此串,反之,输出"NO"。

题解:

  开局连 wa 五发,读错题意了,难受。

  比赛时提交的代码是暴力过的,就是判断长度为 len 的字串是否为多态串,枚举所有可能。

  用了树状数组稍加优化了一番,代码如下:

 #include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define mem(a,b) memset(a,b,sizeof(a))
const int maxn=1e3+; int n;
char s[maxn];
//'a' <- 0,'b' <- 1,依次类推
//bit[i][j] : 前j个字符字母i出现的次数
int bit[][maxn];
void Add(int t,int i)
{
while(t <= n)
{
bit[i][t]++;
t += (t&-t);
}
}
int Sum(int t,int i)
{
int res=;
while(t > )
{
res += bit[i][t];
t -= (t&-t);
}
return res;
}
bool isSat(int a,int b)
{
for(int i=;i < ;++i)
if(Sum(b,i)-Sum(a-,i) > ((b-a+)>>))
return false;
return true;
}
void Solve()
{
mem(bit,);
for(int i=;i <= n;++i)
Add(i,s[i]-'a');
for(int len=;len <= n;++len)
{
for(int i=;i+len- <= n;++i)
{
int j=i+len-;
if(isSat(i,j))
{
printf("YES\n");
for(int k=i;k <= j;++k)
printf("%c",s[k]);
printf("\n");
return ;
}
}
}
printf("NO\n");
}
int main()
{
scanf("%d%s",&n,s+);
Solve();
return ;
}

  然后,今天整理这道题的时候,突然想到,如果含有两个连续的不同字符,那这个子串肯定是多态的啊,so,写了个短短的代码。

 #include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define mem(a,b) memset(a,b,sizeof(a))
const int maxn=1e3+; int n;
char s[maxn]; void Solve()
{
for(int i=;i <= n;++i)
{
if(s[i] != s[i-])
{
printf("YES\n");
printf("%c%c\n",s[i-],s[i]);
return ;
}
}
printf("NO\n");
}
int main()
{
scanf("%d%s",&n,s+);
Solve();
return ;
}

Educational Codeforces Round 53 (Rated for Div. 2) A Diverse Substring的更多相关文章

  1. Educational Codeforces Round 53 &lpar;Rated for Div&period; 2&rpar; (前五题题解)

    这场比赛没有打,后来补了一下,第五题数位dp好不容易才搞出来(我太菜啊). 比赛传送门:http://codeforces.com/contest/1073 A. Diverse Substring ...

  2. Educational Codeforces Round 53 &lpar;Rated for Div&period; 2&rpar;

    http://codeforces.com/contest/1073 A. Diverse Substring #include <bits/stdc++.h> using namespa ...

  3. Educational Codeforces Round 53 &lpar;Rated for Div&period; 2&rpar; E&period; Segment Sum (数位dp求和)

    题目链接:https://codeforces.com/contest/1073/problem/E 题目大意:给定一个区间[l,r],需要求出区间[l,r]内符合数位上的不同数字个数不超过k个的数的 ...

  4. &lbrack;codeforces&rsqb;&lbrack;Educational Codeforces Round 53 &lpar;Rated for Div&period; 2&rpar;D&period; Berland Fair&rsqb;

    http://codeforces.com/problemset/problem/1073/D 题目大意:有n个物品(n<2e5)围成一个圈,你有t(t<1e18)元,每次经过物品i,如果 ...

  5. Educational Codeforces Round 53 &lpar;Rated for Div&period; 2&rpar; E&period; Segment Sum

    https://codeforces.com/contest/1073/problem/E 题意 求出l到r之间的符合要求的数之和,结果取模998244353 要求:组成数的数位所用的数字种类不超过k ...

  6. Educational Codeforces Round 53 &lpar;Rated for Div&period; 2&rpar; C&period; Vasya and Robot 【二分 &plus; 尺取】

    任意门:http://codeforces.com/contest/1073/problem/C C. Vasya and Robot time limit per test 1 second mem ...

  7. Educational Codeforces Round 53 &lpar;Rated for Div&period; 2&rpar;G&period; Yet Another LCP Problem

    题意:给串s,每次询问k个数a,l个数b,问a和b作为后缀的lcp的综合 题解:和bzoj3879类似,反向sam日神仙...lcp就是fail树上的lca.把点抠出来建虚树,然后在上面dp即可.(感 ...

  8. Educational Codeforces Round 53 &lpar;Rated for Div&period; 2&rpar; D&period; Berland Fair

    题意:一个人  有T块钱 有一圈商店 分别出售 不同价格的东西  每次经过商店只能买一个  并且如果钱够就必须买 这个人一定是从1号店开始的!(比赛的时候读错了题,以为随意起点...)问可以买多少个 ...

  9. Educational Codeforces Round 53 &lpar;Rated for Div&period; 2&rpar; C&period; Vasya and Robot

    题意:给出一段操作序列 和目的地 问修改(只可以更改 不可以删除或添加)该序列使得最后到达终点时  所进行的修改代价最小是多少 其中代价的定义是  终点序号-起点序号-1 思路:因为代价是终点序号减去 ...

随机推荐

  1. data&lpar;&lbrack;key&rsqb;&comma;&lbrack;value&rsqb;&rpar;

    概述 在元素上存放或读取数据,返回jQuery对象. 当参数只有一个key的时候,为读取该jQuery对象对应DOM中存储的key对应的值,值得注意的是,如果浏览器支持HTML5,同样可以读取该DOM ...

  2. VC调用javascript的几种方法

    第一种:通过execScript调用.这种方法,虽然操作方便,但不能获取返回值.m_spHtmlDoc->get_parentWindow(&m_pHtmlWindow);VARIANT ...

  3. bootstrap 响应式布局 居中问题

    大家能够通过table来设置居中: display: table; width: auto; margin-left: auto; margin-right: auto;

  4. os内存使用管理之unix-AIX篇

    os内存使用管理之unix-AIX篇 未完待补充.....

  5. Modbus总结

    1.概念 ①Coil和Register Modbus中定义的两种数据类型.Coil是位(bit)变量:Register是整型(Word,即16-bit)变量. ②Slave和Master与Server ...

  6. Resharper使用详解&lpar;转&rpar;

    万恶的360文档 解除复制的限制 Ctrl + Shift + i 打开控制台,也可以鼠标右键,选最后一个检查也可以打开控制台,输入: setInterval = null; //将内置无限循环函数设 ...

  7. linux 环境变量设置

    sudo gedit ~/.bashrc source ~/.bashrc

  8. JUnit - 测试框架

    什么是 Junit 测试框架? JUnit 是一个回归测试框架,被开发者用于实施对应用程序的单元测试,加快程序编制速度,同时提高编码的质量.JUnit 测试框架能够轻松完成以下任意两种结合: Ecli ...

  9. GPS定位基本原理浅析

    位置服务已经成为越来越热的一门技术,也将成为以后所有移动设备(智能手机.掌上电脑等)的标配.而定位导航技术中,目前精度最高.应用最广泛的,自然非GPS莫属了.网络上介绍GPS原理的专业资料很多,而本文 ...

  10. pyhont备份php代码脚本

    #!/usr/bin/env python # encoding: utf-8 import time import os import sys import logging #create logg ...