7.26-STOIRegularMatch-08-#14
A-3 SRM 08
描述
给一个 01 串设为其 S,询问是否存在只出现两次的 01 串 T。
这里的出现定义为存在一串下标 ,满足
且
。
输入格式
一行,一个 01 串
输出格式
一行,字母 Y 表示存在,N 表示不存在
样例输入 1
000
样例输出 1
N
样例输入 2
010
样例输出 2
Y
数据范围与约定
- 设串 S 的长度为 n,
- 数据为随机生成
样例解释
第一个样例中,"000"出现了一次([1+2+3]),"00"出现了三次([1+2],[2+3],[1+3]),"0"出现了三次([1],[2],[3])
第二个样例中,"0"出现了两次。
-------------
条件中用来保证T为S子串。
在A-1中,n的长度为2≤n≤3,打表就好了,想怎么打怎么打。
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
char s[];
bool ans;
int main()
{
int n;
scanf("%s",s);
n=strlen(s);
if (n==) {
if (s[]==s[]) ans=; else ans=;
} else {
if (s[]==s[] && s[]==s[]) ans=;
else ans=;
}
if (ans==) printf("Y\n"); else printf("N\n");
return ;
}
A-1
A-2数据不大,可以直接用dfs水过。
写法请教过nbc姐姐>_<
如果s的第j位作为t的第i位,那就是f[i-1][j-1],不过得保证s[j]=t[i]。
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cstring>
using namespace std;
char __input[];
int N,S[],T[],f[][];
void Check (int M)
{
for (int i=; i<=N; i++) f[][i]=;
for (int i=; i<=M; i++) {
f[i][]=;
for (int j=; j<=N; j++) {
f[i][j]=f[i][j-];
if (T[i]==S[j]) f[i][j]+=f[i-][j-];
}
}
if (f[M][N]==) {
printf("Y\n");
exit();
}
}
void DFS(int k)
{
Check(k);
if (k<N) {
T[k+]=;
DFS(k+);
T[k+]=;
DFS(k+);
}
}
int main()
{
scanf("%s",__input+);
while (__input[N+]) N++;
for (int i=; i<=N; i++) S[i]=__input[i]-'';
DFS();
printf("N\n");
return ;
}
A-2
A-3我们可以简单地分情况处理。小于等于3的情况我们可以直接吧A-1的表弄过来。当n大于3时,需要分情况。
1.如1001 110000 10100000这样的情况,都属于只有两个1或2个0的情况,这种是一定成立的。
2.第二种情况。 如00111101010101 100101010101这样的情况,有两个0或两个1靠在一起,也是一定成立。
如第一个串00111101010101,可以取下标为a[1],a[3-n]的数作为子串1,a[2],a[3-n]的数作为子串2,可以证明当两个0或两个1靠在一起时是成立的。
3.第三点。如11101 1010000111,这两个串都有相邻的0或1,但却是不成立的。因为相邻的数个数大于等于3,如第一个串,我们可以取下标a[1],a[4-n];a[2],a[4-n];a[3],a[4-n]三个子串,个数不为2.
综合起来就是,n大于3时,只要找相邻的0或1且保证这组相邻数连续个数等于2,结果就是Y。反之则为N。
(天呐我怎么讲话舌头打结…
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int x=,y=;
int main()
{
bool ans;
char s[];
scanf("%s",s);
int n=strlen(s);
if (n==)
if (s[]==s[]) ans=; else ans=;
else if (n== && s[]==s[] && s[]==s[]) ans=; else ans=;
if (n== || n==) {
if (ans==) printf("Y\n"); else printf("N\n");
return ;
}
for (int i=; i<n; i++) if (s[i]=='') x++; else y++;
if (x== || y==) ans=; else {
ans=;
for (int i=; i<n-; i++) if (s[i-]!=s[i] && s[i]==s[i+] && s[i+]!=s[i+]) ans=;
}
if (ans==) printf("Y\n"); else printf("N\n");
return ;
}
A-3
正解A-3代码
维修中_(:з」∠)_
7.26-STOIRegularMatch-08-#14的更多相关文章
- Trusted Cloud Summit(2018.08.14)
时间:2018.08.14地点:北京国际会议中心
- walk around by The provided App differs from another App with the same version and product ID 分类: Sharepoint 2015-07-05 08:14 4人阅读 评论(0) 收藏
'm currently developing a SharePoint 2013 application. After a few deployments via Visual Studio, I ...
- Cheatsheet: 2013 08.14 ~ 08.19
.NET Lucene.Net ultra fast search for MVC or WebForms site => made easy! C# State Machines HttpCl ...
- 2018.08.14 bzoj4241: 历史研究(回滚莫队)
传送们 简单的回滚莫队,调了半天发现排序的时候把m达成了n... 代码: #include<bits/stdc++.h> #define N 100005 #define ll long ...
- 2018.08.14【2018提高组】模拟A组 比赛总结
题解 这次的A组难得得水. T1 这题我一看,就想起了GDOI的一道题--密码锁 \(O(n)\)算法--差分 于是乎兴奋地发现这道题可以用差分来解. 设\(f_i=a_i-a_{i-1}\). 然后 ...
- 2020.08.14小bug
页面下面的滚动条怎么清除 css overflow-x: hidden;
- PostgreSQL 时间函数分类与特性
KingbaseES 时间函数有两大类:返回事务开始时间和返回语句执行时的时间.具体函数看以下例子: 1.返回事务开始时的时间 以下函数返回事务开始的时间(通过 begin .. end 两次调用结果 ...
- 2013年12月26日 星期四 doxygen入门--很好
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- JavaSE学习总结第08天_面向对象3
08.01 工具类中使用静态 例: class ArrayTool { //将构造方法私有,外界不能创建该类的对象 private ArrayTool(){} //遍历数组 public stat ...
- CentOS6.5安装testlink1.9.14
前提条件:准备一台CentOS6.5虚拟机,配置好IP,关闭iptables和selinux. 这里提供上我的云盘软件,可以去这里下载:http://pan.baidu.com/s/1qXymele ...
随机推荐
- Oracle 12c: RMAN restore/recover pluggable database
查看数据库状态 运行在归档模式,可拔插数据库name=pdborcl SQL> archive log list; Database log mode Archive Mode Automati ...
- MySQL设置全局sql日志
分别执行开启日志以及日志路径和日志文件名 SET GLOBAL general_log_file = '/var/lib/mysql/localhost.log';SET GLOBAL genera ...
- Handler消息传递机制浅析
http://www.runoob.com/w3cnote/android-tutorial-handler-message.html https://blog.csdn.net/lowprofile ...
- 使用 .toLocaleString() 轻松实现多国语言价格数字格式化
用代码对数字进行格式化,显然不是逢三位加逗号这么简单.比如印度在数字分位符号上的处理,就堪称业界奇葩: 印度的数字读法用“拉克”(十万)和“克若尔”(千万),数字标法用不对称的数位分离,即小数点左侧首 ...
- 一篇文全面了解DevOps:从概念、关键问题、兴起到实现需求
一篇文全面了解DevOps:从概念.关键问题.兴起到实现需求 转自:一篇文全面了解DevOps:从概念.关键问题.兴起到实现需求 2018-06-06 目前在国外,互联网巨头如Google.Faceb ...
- java框架篇---hibernate之缓存机制
一.why(为什么要用Hibernate缓存?) Hibernate是一个持久层框架,经常访问物理数据库. 为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能. 缓存内的数据是对物理数 ...
- 项目中遇到的IE8浏览器访问页面过慢问题
我目前所做的项目,由于一些控件的特殊需求,建议客户使用IE8浏览器,在测试一段时间之后,客户突然提出,IE8访问我们的系统时,界面加载非常缓慢.排查过服务器性能.网络连接等情况之后,在360浏览器访问 ...
- java二叉树字典查询(qq 928900200)
This assignment will help you practice and understand better the Binary Tree and Binary Search Tree ...
- Go指南练习_斐波纳契闭包
源地址 https://tour.go-zh.org/moretypes/26 一.题目描述 让我们用函数做些好玩的事情. 实现一个 fibonacci 函数,它返回一个函数(闭包),该闭包返回一个斐 ...
- php中json_decode及foreach使用总结
<?php $arr=array(); //例子1 $json_str= '{"ret":"OK","questions":{ &qu ...