首页 > 其他分享 >Hello, Solitude.

Hello, Solitude.

时间:2023-10-11 16:47:33浏览次数:30  
标签:Solitude mid Hello ans 区间 underline dp

考虑任意时刻区间均为奇数的情况

观察到一个区间被取到的概率与区间外的具体状态无关,只与区间外取了多少次有关,因此考虑计算一个区间被选中后的出现次数,设 \(dp_{[l,r],t}\) 表示区间 \([l,r]\) 在剩余 \(t\) 次入座时被选中的最终所有状态的出现次数之和,贡献加入中点 \(ans_{mid}\),最终的答案就是 \(\cfrac{ans_i}{n^{\underline{m}}}\)

这个状态数显然是 \(O(n)\) 的,因为在区间内选取一个位置分裂后的两边区间是本质相同的,只需要转移一边然后复制一下

对于一个区间到其子区间的转移,有:

\[dp_{[l,mid-1],i}=\sum\limits_{t>i}\binom{t-1}{i}(r-l+1)(r-mid)^{\underline{t-i-1}}dp_{[l,r],t} \]

其中 \(r-l+1\) 是选到区间内的方案数,\((r-mid)^{\underline{t-i-1}}\) 是另一个区间 \([mid+1,r]\) 选取的贡献,并且需要带一个组合系数

对于区间转移到答案,有:

\[ans_{mid}=\sum\limits_{t=1}^{r-l+1}(r-l+1)^{\underline t}dp_{[l,r],t} \]

通过在初始时将答案 \(\times m!\),可以将下降幂变成组合数进行减法卷积

对于偶数长度的区间,只需要将贡献取半分别加入两个中点,分析一下状态数仍然是 \(O(n)\) 的,最终复杂度 \(O(n\log n)\),常数巨大

标签:Solitude,mid,Hello,ans,区间,underline,dp
From: https://www.cnblogs.com/pidan123/p/17757223.html

相关文章

  • 论输出 hello world 的N种方法...
    RT第1种:#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"Hello,World!"<<endl;return0;}第2种:#include<iostream>#include<string>#include<vector>#include<map>#include......
  • hello Flask最简单的Flask项目
    #1、导包fromflaskimportFlask#2、实例化Flask对象。一般变量名都叫app,大家都是这样用,很多扩展插件的文档也是叫app,所以统一都叫app。#__name__是告诉Flask对象当前文件所在的目录就是项目目录。后续的静态文件夹和模板文件都是在基于项目目录下寻找的。app=Flask(__......
  • IntelliJ 中的 Hello World
    你已经下载了IntelliJ,我们现在来看看如何使用它。下面是在IntelliJ中创建 Helloworld 程序的文本说明!1.打开IntelliJ第一次打开IntelliJ时,你将看到一个这样的欢迎界面和选项,可以利用这些选项创建一个新项目、导入或打开一个项目。我们来开始一个新项目,选择创建新项目......
  • Node.js vs. Spring Boot:Hello World 性能对决,谁更快一点?
    前言:SpringBoot在Java生态中备受欢迎,它是一款基于Java构建的轻量级服务端框架,主要用于Web服务。SpringBoot的应用使得创建各类基于Spring的企业级应用变得异常简单。Node.js作为一种基于ChromeV8引擎的JavaScript运行时环境,在服务端上运行JavaScript代码。它以其独......
  • Node.js vs. Spring Boot:Hello World 性能对决,谁更快一点?
    前言:SpringBoot在Java生态中备受欢迎,它是一款基于Java构建的轻量级服务端框架,主要用于Web服务。SpringBoot的应用使得创建各类基于Spring的企业级应用变得异常简单。Node.js作为一种基于ChromeV8引擎的JavaScript运行时环境,在服务端上运行JavaScript代码。它以其独特......
  • Hello,World!
    JDK、JRE、JVMJDK:Java发展工具(包含JRE)JRE:Java运行环境JVM:Java虚拟器JDK安装下载安装包安装设置环境变量新建“JAVA_HOME”--安装路径编辑PATH路径--新建(复制bin路径)--新建(jre\bin路径)验证java-versionHello,World!新建文件夹存放代码新建java文件H......
  • HelloWorld写法
    HelloWorld随便新建一个文件夹,存放代码新建一个java文件文件后缀为javaHelloWorld.java如果系统没有显示后缀需要自己手动打开编写代码publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.print("HelloWorld!!!");}......
  • 最经典的HelloWorld
    最经典的HelloWorldpublicclassHelloWorld{ publicstaticvoidmain(String[]args){ System.out.print("HelloWorld!"); }}已经好长时间没有写过这种java代码了,忘掉了好多细节,希望自己能够坚持......
  • Hello 博客园!
    过去两年我也曾在不经意间路过博客园,短暂地驻足后又离开,也不知道各个网站的弯弯绕绕,今天算是第一次正式见面,就从“HelloWorld!”开始吧。前几天从B站博客园要被“劣币驱逐良币”的言论,过来小小地支持一下,别的也暂不多写了。总之,本来我也想找个好地方记录和分享一下自己的学习笔......
  • Hello World
    WelcometoHexo!Thisisyourveryfirstpost.Checkdocumentationformoreinfo.IfyougetanyproblemswhenusingHexo,youcanfindtheanswerintroubleshootingoryoucanaskmeonGitHub.QuickStartCreateanewposthexonew"MyNewPost&quo......