首页 > 其他分享 >2022.10.25 总结

2022.10.25 总结

时间:2022-10-26 10:01:06浏览次数:57  
标签:总结 25 int res tp stk 2022.10 mod

B

有一个长度为 \(n\) 的排列,你可以进行若干操作,每次操作选择相邻的两个数并删去较大的数。
问最后可以生成多少不同的序列。

设 \(f_i\) 为以 \(i\) 为结尾的序列数。
\(f_i=\sum f_j\) , 仅当区间 \([i,j]\) 内所有数都大于 \(\min(a_i,a_j)\) 时。
边界: \(f_1=1\).

设向前第一个 \(a_k<a_i\) 的下标为 \(k\).
则贡献取之与 \([k,i-1]\) 之间所有数 以及 \([1,k-1]\) 间满足上述条件的数。
我们用递增单调栈维护一下。

那么答案是什么呢,答案是从前往后枚举,当 \(a_i\) 是前缀中最小的数,\(f_i\) 的和。

code
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+10,mod=1e9+7;
int a[N],n,stk[N],tp,sum[N],val[N],f[N],res;
signed main() {
	cin>>n;
	for(int i=1; i<=n; i++) {
		cin>>a[i];
		while(a[i]<a[stk[tp]]&&tp) tp--;
		f[i]=(sum[i-1]-sum[stk[tp]]+val[tp])%mod;
		if(!tp) f[i]++;
		stk[++tp]=i;
		val[tp]=(val[tp-1]+f[i])%mod;
		sum[i]=sum[i-1]+f[i];
	}
	tp=0;
	for(int i=n; i>=1; i--) {
		while(a[stk[tp]]>a[i]) --tp;
		if(!tp) res=(res+f[i])%mod;
		stk[++tp]=i;
	}
	cout<<(res+mod)%mod;
	return 0;
}

标签:总结,25,int,res,tp,stk,2022.10,mod
From: https://www.cnblogs.com/Simon-Gao/p/16827222.html

相关文章

  • 【2022.10.25】尝试自写一个Dockerfile
    前言用了别人这么多的docker,因为mirai的旧版本登不上了这次要自写一个docker了因为mirai运行在openjdk环境下运行,所以首先最开始的内容便是FROMopenjdk:17-slim-buster......
  • 12_Vue事件总结
    事件总结事件修饰符连携准备工作html<!--定义一个容器--><divclass="app"><!--事件修饰符连携--><divclass="box"@click="toBaidu"><ahre......
  • 【Java技术总结】Spring事务失效总结
    事务方法必须是public,private、protected、default都会失效。@ServicepublicclassUserService{@Transactionalprivatevoidadd(UserModeluserModel){......
  • 10.25.2
    #include<stdio.h>#include<math.h> intmain(){/* inta,b; scanf("%*6d%4d%*8d%d",&a,&b); printf("%d",b-a);*/ doublea; scanf("%lf",&a); printf("%d,%.10g......
  • Go中结构体基础知识总结
    什么是结构体结构是表示字段集合的用户定义类型。它可以用于将数据分组为单个单元而不是将每个数据作为单独的值的地方。例如,员工有firstName、lastName和age。将这三个属......
  • 2022-10-25学习内容_step01
    1.案例-找回密码-登录界面1.1activity_login_main.xml<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/and......
  • 2022.10.25
    2022.10.25水群只有一次和无数次,呜呜呜呜呜。以后没有人@我,绝不去水群。该水还是要水的。关于我的电脑累了想休息一下这件事。吓傻了。哦!我上午干了什么?写贪心?写二分......
  • 想说的话2022/10/25
    今年遇到了许多不大不小的事情,考研、复试、调剂、尝试找工作、毕业、实习、上研究生......人生确实如梦,每件事情看似都重要,现在去想想又没有那么重要。​今年伊始我怀着......
  • [2022.10.25]常用类—String
    intlength():返回字符串的长度:returnvalue.LengthcharcharAt(intindex):返回某索引处的字符returnvalue[index]booleanisEmpty():判断是否是空字符串:returnvalue......
  • 建立自己的知行系统_01_20221025
    知行合一,事事才能顺遂。1.进行验证测试计划前,测试系统的架构和测试样品的状态需二次确认,避免发生接错(比如今天正负极接反导致模块短路就可以避免)或测试样品存在问题。2.......