首页 > 其他分享 >「KDOI-03」构造数组

「KDOI-03」构造数组

时间:2023-10-15 19:46:03浏览次数:38  
标签:第二类 03 int 钦定 KDOI 数组 操作

Saintex 1分钟就切啦,有什么好说哒!
首先可能想到设 \(c_{i,j}\) 表示(i,j)被操作的次数,那么答案很好求。
但是这个数量并不好记录。
如果仅仅钦定(i,j)从小到大之类的东西也不好搞。
所以考虑钦定其他的东西。
设 \(dp_{i,j,k}\) 表示前 i 位,有 j 个操作(x,y)满足\(x<y\leq i\),k 个操作满足\(i\leq x<y\)。
我们分别称为第一类和第二类操作。
然后 \(j\times 2+k=sum_i\) 所以省去第三维。
先给转移式

	for(int i=0;i<n;i++){
		int oo=i&1,op=oo^1,o1=s[i]>>1;
		for(int j=0;j<=up;j++) dp[op][j]=0;
		for(int j=0;j<=o1;j++){
			int pp=s[i]-(j<<1),o2=min(pp,b[i+1]);
			for(int k=0;k<=o2;k++){
				int jj=b[i+1]-k;
				dp[op][j+k]=(dp[op][j+k]+dp[oo][j]*C(pp,k)%Mod*C(j+pp+jj,jj)%Mod)%Mod;
			}
		}
	}	

后面一个 C 表示给需要的第二类操作的位置,前一个 C 表示给前面所需的第二类操作顺序,不重不漏。

标签:第二类,03,int,钦定,KDOI,数组,操作
From: https://www.cnblogs.com/StranGePants/p/17765998.html

相关文章

  • leetcode2845. 统计趣味子数组的数目
    题解classSolution{public:longlongcountInterestingSubarrays(vector<int>&nums,intmodulo,intk){inta[100010];unordered_map<int,int>mp;mp[0]=1;longlongans=0;intpre=0;......
  • 打印数组中任意连续元素
    打印数组中任意连续元素1.例子#include<stdio.h>intmain(void){intarray[201];inti;for(i=0;i<201;i++)array[i]=i;return0;}在gdb中,如果要打印数组中任意连续元素的值,可以使用“parray[index]@num”命令(p是print命令的缩写)。其中index......
  • 【gdb】打印数组的索引下标
    打印数组的索引下标1.例子#include<stdio.h>intnum[10]={1<<0,1<<1,1<<2,1<<3,1<<4,1<<5,1<<6,1<<7,1<<8,1<<9};intmain(void){inti;for......
  • 无涯教程-NumPy - 数组操作
    NumPy包中提供了一些例程来处理ndarray 对象中的元素。它们可以分为以下类型-Changing维度Sr.No.Shape&Remark1reshape在不更改数据的情况下为数组赋予新的维度2flat数组上的一维迭代器3flatten返回折叠成一维的数组的副本4ravel返回一个连续的扁平数组Tr......
  • 如何预防网络数据丢失203.135.128.x
    数据丢失对于任何规模的企业来说都可能是灾难性的事件,并且代价高昂,这就是预防数据丢失至关重要的原因。企业可以使用各种程序来增强其网络安全性并防止数据丢失。此外,他们可以使用多种策略来管理数据泄露。数据备份和加密。在各种策略中,定期数据备份是企业应该实施的关键策略之一。......
  • 无涯教程-NumPy - 遍历数组
    NumPy包含一个迭代器对象numpy.nditer,这是一个有效的多维迭代器对象,使用它可以遍历数组。使用Python的标准Iterator迭代接口访问数组的每个元素。让无涯教程使用arange()函数创建一个3X4数组,并使用nditer对其进行迭代。示例1importnumpyasnpa=np.arange(0,60,5)a=a......
  • LeetCode209. 长度最小的子数组
    题目描述给定一个含有n个正整数的数组和一个正整数target。找出该数组中满足其总和大于等于target的长度最小的连续子数组[numsl,numsl+1,...,numsr-1,numsr],并返回其长度。如果不存在符合条件的子数组,返回0。示例输入:target=7,nums=[2,3,1,2,4,3]输出:2......
  • 2023-2024-1 学号20231303 《计算机基础与程序设计》赵泊瑄第三周学习总结
    2023-2024-1学号20231303《计算机基础与程序设计》第三周学习总结作业信息这个作业属于哪个课程如2023-2024-1-计算机基础与程序设计这个作业要求在哪里作业要求的链接如2023-2024-1计算机基础与程序设计第三周作业)这个作业的目标总结第三周学习收获作业正......
  • Codeforces Round 903 (Div. 3)
    [比赛链接]A.Don'tTrytoCount直接用string的可加性,每次s+=s相当于翻倍了,因为\(nm<=25\)所以最多翻倍5次。判断什么的直接模拟就行。#include<iostream>#include<algorithm>#include<cmath>#include<cstdio>#include<cstring>#include<cstdlib>#inclu......
  • 解析“字符指针变量,数组指针变量,二维数组”
    1.字符指针变量字符指针变量是存放地址的charch='w'; char*pc=&ch; *pc='w';表达式的两个属性:【值属性】计算后的值是多少【类型属性】类型是什么注:hello是常量字符串,不能被修改,是连续存放的,可用printf("%s\n",p);打印字符串。常量字符串指的是在程序中声明的一个不......