前缀数组O(n^3)做法
前缀数组O(n^3)做法
s.substr()的应用非常方便
令string s = ""; string sub1 = s.substr(); //只有一个数字5表示从下标为5开始一直到结尾:sub1 = "56789" string sub2 = s.substr(, ); //从下标为5开始截取长度为3位:sub2 = "567"
#include<iostream>
#include<cstdio>
#include<queue>
#include<algorithm>
#include<cmath>
#include<ctime>
#include<set>
#include<map>
#include<stack>
#include<cstring>
#pragma GCC optimize(2)
#define inf 2147483647
#define ls rt<<1
#define rs rt<<1|1
#define lson ls,nl,mid,l,r
#define rson rs,mid+1,nr,l,r
#define N 1000010
#define For(i,a,b) for(int i=a;i<=b;++i)
#define p(a) putchar(a)
#define g() getchar() using namespace std;
int len;
string s;
int ans[N];
void in(int &x){
int y=;char c=g();x=;
while(c<''||c>''){if(c=='-')y=-;c=g();}
while(c<=''&&c>=''){ x=(x<<)+(x<<)+c-'';c=g();}
x*=y;
}
void o(int x){
if(x<){p('-');x=-x;}
if(x>)o(x/);
p(x%+'');
} int main(){
cin>>s;
len=s.size();
For(i,,len-)
For(k,,i)
if(s.substr(,k)==s.substr(i-k+,k))
ans[i]=k;
For(i,,len-)
o(ans[i]),p(' ');
return ;
}
前缀数组O(n^3)做法的更多相关文章
- 转载-KMP算法前缀数组优雅实现
		
转自:http://www.cnblogs.com/10jschen/archive/2012/08/21/2648451.html 我们在一个母字符串中查找一个子字符串有很多方法.KMP是一种最常见 ...
 - codeforces 381 D Alyona and a tree(倍增)(前缀数组)
		
Alyona and a tree time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
 - poj 2046&&poj1961KMP 前缀数组
		
Power Strings Time Limit: 3000 MS Memory Limit: 65536 KB 64-bit integer IO format: %I64d , %I64u Jav ...
 - 子串查询(二维前缀数组)  2018"百度之星"程序设计大赛 - 资格赛
		
子串查询 Time Limit: 3500/3000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Subm ...
 - 线段树、前缀数组:HDU1591-Color the ball(区间更新、简单题)
		
Color the ball Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
 - POJ-2752(KMP算法+前缀数组的应用)
		
Seek the Name, Seek the Fame POJ-2752 本题使用的算法还是KMP 最主要的片段就是前缀数组pi的理解,这里要求解的纸盒pi[n-1]有关,但是还是需要使用一个循环来 ...
 - JS判断是否是数组的四种做法
		
一.前言 如何判断一个对象或一个值是否是一个数组,在面试或工作中我们常常会遇到这个问题,既然出现频率高,想着还是做个整理,那么本文主要基于几种判断方式,以及方式判断的原理,是否存在问题展开讨论. 二. ...
 - JS判断是否是数组的四种做法(转载)
		
转载来源 https://www.cnblogs.com/echolun/p/10287616.html 一.前言 如何判断一个对象或一个值是否是一个数组,在面试或工作中我们常常会遇到这个问题,既然出 ...
 - hdu3336 KMP + DP 前缀数组出现的次数
		
题意: 给你一个串,问你他的所有前缀子串在本串中的出现次数,注释:abc的前缀子串是 a ab abc; 思路: 还是利用了next数组,先对子串求出next数组,再开一个数组d ...
 
随机推荐
- CSS——背景渐变
			
在线性渐变过程中,颜色沿着一条直线过渡:从左侧到右侧.从右侧到左侧.从顶部到底部.从底部到顶部或着沿任何任意轴.如果你曾使用过制作图件,比如说Photoshop,你对线性渐变并不会陌生. 兼容性问题很 ...
 - 数论+线性dp——cf1174A
			
直接推公式没有推出来 看了题解才会做.. 首先能够确定前面几个数的gcd一定是2^j * 3^k, 其中k<=1 那么可以用dp[i][j][k]来表示到第i位的gcd是2^j*3^k f(j, ...
 - Kibana启动报错 server is not ready yet的解决方案
			
前言:  今天在搭建elasticsearch集群的时候,再次使用Kibana操作elasticsearch的时候报告Kibana server is not ready yet的问题,  通过在 ...
 - SpringBoot_04_SpringBoot对ssm的整合
			
1.在SpringBoot框架下对ssm进行整合 2.搭建一个web的SpringBoot框架 2.1添加pom.xml坐标(需要加上SpringBoot对jsp的支持,和对资源文件位置的说明) &l ...
 - 如何解决nodemon运行报错问题
			
原因 nodemon没有被正确安装 解决方法 如果yarn global add nodemon --verbose安装没用的话,然后输入npm i nodemon -g --verbose使用NPM ...
 - PAT甲级——A1113 Integer Set Partition
			
Given a set of N (>) positive integers, you are supposed to partition them into two disjoint sets ...
 - c++ const的用法
			
1.修饰成员变量 int value=0; int *p=&value; const int *p_c=&value;//指针指向常量,但是指针所指向的地址可以修改(int const ...
 - 16.ajax_case06
			
# 抓取华尔街见闻实时快讯 # https://wallstreetcn.com/live/global?from=navbar import requests import json header ...
 - <每日一题>题目2:编写装饰器,为多个函数加上认证功能(用户账号和密码来源于文件)
			
这里做个最简单的账号密码验证,主要为了实现装饰器同时对多个函数起作用 FLAG = False #加一个变量防止多次登录验证 def wrapper(f): def inner(*args,**kwa ...
 - HDU 1147 /// 判断两线段相交
			
题目大意: 给定n条线段的端点 依次放上n条线段 判断最后在最上面(不被覆盖)的线段有哪些 到当前线段后 直接与之前保存的未被覆盖的线段判断是否相交就可以了 #include <cstdio&g ...