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 ... 
随机推荐
- 让WebService支持Get请求
			在C#中,新建一个webservice,默认是post类型的.如果需要支持Get请求,需要对web.config文件进行配置 <system.web> <compilation de ... 
- Mysql 8 常用命令测试
			1.创建数据库,帐号及授权 create database testdb; CREATE USER 'rusking'@'%' IDENTIFIED BY '12345678'; CREATE USE ... 
- [转]Visual Studio 2010 中安装Qt 5.1
			截至目前(2013年7月12日)为止,Qt 的最高版本为Qt5.1,在该版本中已经将Qt Creator与Qt Lib集成在一个文件夹中,因此安装的时候较为方便,只需安装一个即可.因为Qt具有超强的可 ... 
- JAVA四则运算字符串解释器
			最近学习到后缀表达式,于是基于后缀表达式的思想,写了一个四则运算解释器,输入字符串类型的四则运算表达式,可以直接得到结果,支持括号嵌套. 实现时主要考虑以下两点: 字符串中运算符和数字分离 运算符优先 ... 
- 如何查看Apache的连接数和当前连接数
			查看Apache的连接数和当前的连接数以及IP访问次数,下面有个不错的示例,大家可以参考下,希望对大家解决问题有所帮助 查看了连接数和当前的连接数 复制代码 代码如下: netstat -ant | ... 
- mysql 5.7中的threads
			>desc threads; +---------------------+---------------------+------+-----+---------+-------+ | Fie ... 
- C#-MVC开发微信应用(4)--微信门户菜单的管理操作
			最近对微信接口进行深入的研究,通过把底层接口一步步进行封装后,逐步升级到自动化配置.自动化应答,以及后台处理界面的优化和完善上,力求搭建一个较为完善.适用的微信门户应用管理系统. 在微信门户系统里面, ... 
- [Android源码]Android源码之高仿飞鸽传书WIFI热点搜索与创建(一)
			(本文详情来源:android源码 http://www.eoeandroid.com/thread-296427-1-1.html 转载请注明出处!) [Android源码分享]飞鸽传书的An ... 
- Verilog TestBench Coding Style
			Abtract 关于编写testbench的一些经验总结心得. Introduction 1.基本的Testbench结构 1)常用的编码结构 `timescale 1 ns / 1 ps ... 
- tensorflow 笔记10:tf.nn.sparse_softmax_cross_entropy_with_logits 函数
			函数:tf.nn.sparse_softmax_cross_entropy_with_logits(_sentinel=None,labels=None,logits=None,name=None) ... 
