首页 > 其他分享 >[PA2021] Od deski do deski (dp)

[PA2021] Od deski do deski (dp)

时间:2023-04-20 09:01:50浏览次数:35  
标签:do 数列 int Od long 合法 deski 序列

计数数列个数,要满足能划分为若干个两端相等区间。
首先容易想到DP。
我想的是按段分阶段转移,显然不行,因为很容易算重,一个数列能有多种划分方案则会被算多次。
因此直接计数数列的每位,\(g(i,j)\)表示前\(i\)位有\(j\)种值存在位置的前一位往前的数列为合法序列的合法序列方案数,\(f(i,j)\)则为不合法序列的方案数。
转移主要想一下什么时候\(j\)增加,肯定是当新位置\(i\)的前\(i-1\)序列合法且这个值之前未被计入过,而计入过与否就等价于前\(i\)序列是否合法。

点击查看代码
#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
typedef long long ll;
const int N = 3005;
ll f[N][N], g[N][N];
int main() {
	int n, m;
	scanf("%d%d", &n, &m);
	g[0][0] = 1;
	for(int i = 1; i <= n; i++) {
		for(int j = 1; j <= i; j++) {
			g[i][j] = (f[i - 1][j] + g[i - 1][j]) * j % mod;
			f[i][j] = (f[i - 1][j] * (m - j) + g[i - 1][j - 1] * (m - j + 1)) % mod;
		}
	}
	ll ans = 0; for(int j = 1; j <= n; j++) {ans = (ans + g[n][j]) % mod;}	
	printf("%lld", ans);
	return 0;
}

标签:do,数列,int,Od,long,合法,deski,序列
From: https://www.cnblogs.com/bestime/p/17335382.html

相关文章

  • windows10 HOME版增加组策略功能
    windows10home版默认没有组策略功能,也就是运行gpedit.msc提示找不到。按照下面的方法就可以为其部署组策略功能:  1. 记事本粘贴如下代码,保存为ANSI格式的,后缀名为cmd的文件,代码如下@echooffpushd"%~dp0"dir/bC:\Windows\servicing\Packages\Microsoft-Windows-......
  • Django笔记九之model查询filter、exclude、annotate、order_by
    本文首发于公众号:Hunter后端原文链接:Django笔记九之model查询filter、exclude、annotate、order_by在接下来四五篇笔记中,将介绍model查询方法的各个细节,为我们的查询操作提供各种便利。本篇笔记将介绍惰性查找、filter、exclude、annotate等方法,目录如下:惰性查找filtere......
  • leetcode_打卡08
    leetcode_打卡08题目:334.递增的三元子序列思路:分成左边L和右边R,只要找到该数左边比它小的,右边比他大的即可代码:classSolution{publicbooleanincreasingTriplet(int[]nums){intn=nums.length;int[]L=newint[n];int[]R=newint[n];......
  • [Leetcode]合并两个有序链表
    力扣链接依次比较,取小的尾插:初步代码:/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*mergeTwoLists(structListNode*list1,structListNode*list2){structListNode*......
  • #yyds干货盘点# LeetCode面试题:搜索旋转排序数组 II
    1.简述:已知存在一个按非降序排列的整数数组nums,数组中的值不必互不相同。在传递给函数之前,nums在预先未知的某个下标k(0<=k<nums.length)上进行了旋转,使数组变为[nums[k],nums[k+1],...,nums[n-1],nums[0],nums[1],...,nums[k-1]](下标从0开始计数)。例如,[0,1,2......
  • Docker CLI docker compose events常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • #yyds干货盘点# LeetCode程序员面试金典:串联所有单词的子串
    题目:给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串长度相同。 s 中的串联子串是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。例如,如果 words=["ab","cd","ef"],那么 "abcdef", "abefcd","cdabef", "cdefab","efabcd",......
  • 保姆级本地maven安装配置步骤【Windows】
    一、前期准备1、首先需要安装并配置好本地JDK(WIN+R输入cmd,输入java-version如下图)2、下载maven到本地(链接Maven–DownloadApacheMaven)其他历史版本在这里找:Indexof/maven/maven-3(apache.org)二、解压缩并配置环境变量1、解压maven压缩包到一个不包含空格以及中文的路径下......
  • P3887 [GDOI2014]世界杯
    #[GDOI2014]世界杯##题目描述3014年世界杯足球赛就要开始了!作为卫冕冠军中国足球队的教练,手下每位球员都是猛将,如何摆出最强的11人阵容也是一件幸福的烦恼事啊。众所周知,足球阵容里的11个球员都会被分配到场上某一个特别的位置,而这些位置主要分为守门员、后卫、中场和前锋......
  • odoo 开发入门教程系列-准备一些操作(Action)?
    准备一些操作(Action)?到目前为止,我们主要通过声明字段和视图来构建模块。在任何真实的业务场景中,我们都希望将一些业务逻辑链接到操作按钮。在我们的房地产示例中,我们希望能够:取消或将房产设置为已售出接受或拒绝报价有人可能会说,我们已经可以通过手动更改状态来完成这些事情,但这并......