首页 > 其他分享 >水の数列

水の数列

时间:2023-12-12 10:11:36浏览次数:14  
标签:下标 数列 int st 枚举 从大到

这题目没有修改,所以可以考虑预处理

显然\(x\)从大到小或者从小到大,被选中的数字是单调的(尽管区间变化个数没有单调性)

所以我们可以考虑枚举\(x\)

我最开始想的是从大到小枚举\(x\),但是维护有一点复杂,因为是删除

这个时候就要想到既然能够从大到小枚举\(x\),那肯定也可以从小到大枚举\(x\)

然后我们要动态维护序列上的连通区间,就转换成了我们熟悉的模型,用并查集

具体来说:

他这里是让\(f_i\)的初值为\(0\),实际上我们的套路做法\(f_i=i\),只要稍微改动即可

当然维护方法也不止这一种,可以想想其他的

然后还要注意这题目卡空间,所以不是开一个结构体类型的st表,而是一个int类型的st表来存储下标(而不是具体的值)

int st[N][20]; //卡空间技巧:st表存最值对应的下标

洛谷题解还有用分块+st表的,也可以考虑一下

标签:下标,数列,int,st,枚举,从大到
From: https://www.cnblogs.com/dingxingdi/p/17896142.html

相关文章

  • 数列
    数列Array关键字:保留字:关键字的预备役var(jdk11)gotoJS:var变量名=初始值;重载/overload:在同一个类中,允许函数重名,但是它们的参数列表必须不同。1.参数个数不同2.参数类型不同注意:重载跟函数的形参的名字以及返回值类型无关数组/array一组相同类型的数据......
  • P8614 [蓝桥杯 2014 省 A] 波动数列
    这道题的精髓在于DP公式的推理#include<iostream>#include<stdio.h>#include<algorithm>#include<cstring>usingnamespacestd;constintN=1005,mod=100000007;intn,s,a,b;intdp[N*N];intmain(){cin>>n>>s......
  • 前端歌谣的刷题之路-第一百一十七题-实现斐波那契数列
     前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷本题目源自于牛客网微信公众号前端小歌谣题目......
  • 《论取模的艺术》231760:菲波那契数列.递推ver
    原题错误代码:#include<bits/stdc++.h>usingnamespacestd;longlongmath(inta){if(a<=2){return1;}longlongf0=1,f1=1,f2;for(inti=3;i<=a;++i){f2=f1+f0;f0=f1;f1=f2;......
  • 【算法 Java】递归,阶乘的递归实现,斐波那契数列的递归实现
    递归定义:方法直接或间接地调用方法本身思路:将大问题转化为一个与原问题相似的规模更小的问题注意:递归死循环会导致栈内存溢出一些使用递归求解的问题阶乘Factorial.javaimportjava.util.Scanner;publicclassFactorial{publicstaticvoidmain(String[]args)......
  • 2019年-fibonacci数列与黄金分割
    目录题目法一、递归法二、迭代题目法一、递归deffib(n):ifn==1orn==2:return1returnfib(n-1)+fib(n-2)n=int(input())a=fib(n)b=fib(n+1)print("{:.8f}".format(a/b))只通过了60%的测试法二、迭代#动态规划#deffib(n):#dp=[0]*(n+1)#......
  • P4948 数列求和
    传送门description给定\(n,a,k\),求\(\sum\limits_{i=1}^na^ii^k\)\(n\leq10^{18}\)\(k\leq2\cdot10^3\)solution\(k\)很小,使用第二类斯特林数处理\(i^k\)得:\(\sum\limits_{i=1}^na^i\sum\limits_{j=0}\begin{Bmatrix}k\\j\end{Bmatrix}......
  • 打印 Fibonacci 数列:
    #include<stdio.h> voidfibonacci(intn){   inti,num1=0,num2=1,nextNum;      printf("Fibonacciseriesupto%dterms:\n",n);      for(i=1;i<=n;++i){       printf("%d,",num1);       nextNum=num1+......
  • P9242 [蓝桥杯 2023 E题] 接龙数列
    P9242[蓝桥杯2023E题]接龙数列一眼LIS但是TLE八个点。发现是sb了,应该用string来存数直接取首位末位。改完50分,TLE五个点。换状态\[F_i$$为以数字$i$结尾的最长接龙数列。则顺推每个数字,从每个数字的首位$F_{j_1}+1$以及末位$F_{j_n}$中取最大转移而来。即......
  • 试试手气与乘法口诀数列
    7-2试试手气我们知道一个骰子有6个面,分别刻了1到6个点。下面给你6个骰子的初始状态,即它们朝上一面的点数,让你一把抓起摇出另一套结果。假设你摇骰子的手段特别精妙,每次摇出的结果都满足以下两个条件:1、每个骰子摇出的点数都跟它之前任何一次出现的点数不同;2、在......