前言
太简单了吧,就debug难而已 传送门: https://ac.nowcoder.com/acm/contest/11215/E
思路一开始区间问题想到的是 线段树,RMQ,树状数组.但是看完题目之后
发现维护的是 区间乘积, 查询是 logn 然后枚举区间 nlogn 因此理论可行
但是我不会写awa
因为此题给的是 1-9不难想到 是 string 字符
所以我们可以通过枚举左端点 O n
但是这么算下来不就是 O n^2 的了 ?
因此我们可以优化
- 区间长度1e5
- 所有都是1的话 那么会 On^2 因此需要处理1
- 所有都是2的话 那么也就 logn
- 如果是其他数的话 那么一定会超当前的 n 直接break
所有思路就清晰了
我们现在是需要处理 1 就行了
因此学过一点图论的都知道,当我们不想计算某些边的时候,可以将next指向下一条边
因此通过next[] 跳过1即可
CODE#include
using namespace std;
const int N =1e5+10;
int ne[N],num[N];
void solve()
{
int n;cin>>n;
string t;cin>>t;
string s = " "+t;
int pos = n ;
for(int i=n;i;i--)
{
if(s[i+1]!='1')
ne[i]=i+1;
else ne[i]=ne[i+1];
}
int res = 0 ;
for(int i=1;ij-i+1 && ans
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?