首页 > 其他分享 >简单计数题(P1350车的放置 dp)

简单计数题(P1350车的放置 dp)

时间:2022-09-04 17:11:51浏览次数:74  
标签:int 我们 计数 放置 P1350 该列 dp mod

 

题目传送门

题目大意 : 给定一个图,在图中放置棋子,每行每列仅能放置一个,求放置 \(k\) 个的方案数。

image

题目分析 :
对于给定图,若对于每个点都从前到后进行放置,难免会出现重复,所以我们从最左端进行遍历,只在它及它以后的列上进行放置,那么我们令 \(dp_{i , j}\) 为在前 \(i\) 列放置 \(j\) 个的方案数,则可以实现转移。

很明显,我们不难发现可以分为在该该列放置或者不放置,我们假设当前目标状态为 \(dp_{i , j}\),当前列有 \(x\) 个位置:

  • [\(1\)] : 不在该列放置, 很明显 \(dp_{i,j} = dp_{i - 1, j}\)。
  • [\(2\)] : 在该列放置 , 因为我们是枚举列,所以列重复的情况就不用考虑了,那么对于每一行来说的话,因为前面已经放了 \(j - 1\) 个元素 , 那么也就是用了 \(j - 1\) 行,现在可用的行还剩 \(x - j + 1\),根据乘法原理,我们可知 \(dp_{i,j} += dp_{i - 1 , j - 1} * (x - j + 1)\)

可得转移方程为 : \(dp_{i,j} = dp_{i - 1 , j} + dp_{i - 1 , j - 1} * (x - j + 1)\)

仔细观察一下图形,不难发现,若我们从列长的到列短的进行遍历,那么所用的行会不好处理,那么我们就将图形进行翻转 :
image

这个问题就解决了。

点击查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod = 1e5 + 3;
const int M = 2e3  +7;
int a , b , c , d , k;
int dp[M][M];
signed main () {
	cin >> a >> b >> c >> d >> k;
	for(int i = 0; i <= a + c; ++ i) dp[i][0] = 1;
	for(int i = 1; i  <= a + c; ++ i) {
		for(int j = 1; j <= k; ++ j) {
			if(i > c)
			dp[i][j] = (dp[i - 1][j] + dp[i - 1][j - 1] * max(b + d - j + 1 , 0ll) % mod) % mod;
			else 
			dp[i][j] = (dp[i - 1][j] + dp[i - 1][j - 1] * max(d - j + 1 , 0ll) % mod) % mod;
		}
	}
	cout<< dp[a + c][k];
	return 0;	
}

本题完结!

标签:int,我们,计数,放置,P1350,该列,dp,mod
From: https://www.cnblogs.com/Love-yx/p/16655386.html

相关文章

  • 【Azure 存储服务】调用REST API获取Stroage Account Table中所有的Entity计数 -- Cou
    问题描述在StorageAccount的使用中,如果想获取Table中全部Entity的计数以及大小,如果是RESTAPI方式,如何来获取呢? 问题解答在Azure中,所有服务的Metrics部分,都可以通过A......
  • 简单计数 P6008
    题目传送门题目大意:给定一张边框确定的图,在其中空地放水并满足物理要求,求总方案数题目分析:首先注意到,满足物理需求就是满足在一个连通块内从高度为\(h\)放水,则满足对......
  • 【WPF】wpf怎么绑定多个值,多个控件 绑定多个CommandParameter 命令参数
    最近有不少wpf新手问wpf的命令怎么绑定多个控件,很多人为此绞尽脑汁,网上的答案找了也没找到靠谱的,其实用MultiBinding就可以了。从.net3.0版本开始,就支持MultiBinding关于......
  • 洛谷P1850 [NOIP2016 提高组] 换教室(期望dp)
    #include<bits/stdc++.h>usingnamespacestd;intn,m,v,e;intc[3005],d[3005];intf[305][305];doubledp[3005][3005][2];//dp[i][j][k]表示前i步申请更换了j......
  • dp----状态机模型
    《需求引出》《情况一:》在一般的dp问题中,我们的当前项都是可以由前一项推出的,但是在一些情况下我们要用到前前项的情况,这个时候可以将这个情况当做一个状态表示出来,进......
  • 简析XDP的重定向机制
    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。一.XDPSocket示例解析源码参见:https://......
  • 204. 计数质数
     labuladong题解思路难度中等937收藏分享切换为英文接收动态反馈给定整数 n ,返回 所有小于非负整数 n 的质数的数量 。 示例1:输入:n=10输出:4解释:......
  • 单调队列优化dp与斜率优化dp
    单调队列优化dp是个相对比较不显然的优化。例题:P2034选择数字题意:一串正整数,选择若干个数使和最大,且没有连续的超过k个数被选择。首先显然是个dp题。方程也比较显然。......
  • WordPress的网站链接,如何去掉index.php和category?
    使用WordPress搭建网站时,如果你是基于IIS服务器搭建的,肯定会遇到这个问题,就是固定链接设置好后,网址会出现烦人的index.php和category这两个关键字。  举个例子,博客的分......
  • 【luogu P5056】【模板】插头dp(插头DP)(分类讨论)
    【模板】插头dp题目链接:luoguP5056题目大意有一个n*m的网格,每个格子要么必须铺线,要么必须不铺。然后问你有多少个铺发使得形成一个闭合回路。思路快乐插头DP模......