首页 > 其他分享 >Luogu P1350车的放置

Luogu P1350车的放置

时间:2023-09-30 13:44:20浏览次数:31  
标签:const 车时 int Luogu 放置 P1350

分析

排列组合题目,但是 dp 做法。

存储当前列的高度 \(h_i\),这里反着存,更好转移。

定义状态 \(f_{i,k}\) 为在前 \(i\) 列放置 \(k\) 个车的方法数。初始状态 \(f_{i,0} = 1\)。

分析状态转移方程:

  • 当前列不放置车时:方法数为 \(f_{i-1,j}\)
  • 当前列放置车时:方法数为 \(f_{i,j-1} * (h_i - j + 1)\)

将两种情况结合,状态转移方程就出来了:
\(f_{i,j} = f_{i-1,j} + f_{i,j-1} * (h_i - j + 1)\)

Accepted Code

#include <bits/stdc++.h>
using namespace std;
const int N = 2005;
const int mod = 1e5 + 3;
int f[N][N], high[N], a, b, c, d, k, n;
int main()
{
	cin >> a >> b >> c >> d >> k;
	n = a + c;
	for (int i = 1; i <= c; i++)high[i] = d;
	for (int i = c + 1; i <= n; i++)high[i] = b + d;
	for (int i = 0; i <= n; i++)f[i][0] = 1;
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= k; j++)
			f[i][j] = (f[i - 1][j] + f[i - 1][j - 1] * (high[i] - j + 1)) % mod;
	cout << f[n][k];
	return 0;
}

标签:const,车时,int,Luogu,放置,P1350
From: https://www.cnblogs.com/Manipula/p/17737763.html

相关文章

  • LuoguP2809 hzwer爱折纸
    Luogu原题链接爆搜的思路不难想到,就是将翻折的操作进行模拟,再将翻折后的数组进行dfs然后重复该操作。但是处理翻折操作十分复杂,中间的细节很多。首先纸条可以翻转,大部分人都看到了,所以在爆搜中加入了翻转的操作,但只需要在判定时反向的也判一次就行了,至于正确性你们可以自行......
  • luogu P4819 [中山市选] 杀人游戏 题解 【强连通分量+缩点】
    目录题目链接思路分析代码题目链接P4819思路分析首先考虑这道题的连通性。容易发现这种类型的题目会容易产生环形的状态转移。假设我们知道了其中的一个点是否是黑白点,那么我们就可以知道所有点是否是黑白点。容易陷入一个误区:我们只能通过一个点知道他所相邻的最直接的点,如何......
  • Luogu9157「GLR-R4」夏至
    抢到最优解了,UOJ校验码上80pts过不去。/kk这里是官方题解的简化。首先考虑\(n=1\)怎么做,相当于对\(m\le10^{10}\)筛出\(f\)的前缀和。由于\(f(p)=p\),直接构造函数\(g(n)=n\)然后PN筛\(O(\sqrtm)\)求即可。然后考虑\(n>1\),由于\(n\)比较小,考虑对每一个\(i......
  • Luogu-P4315 月下“毛景树”
    在洛谷中查看前言将边权转化到点权的树剖,很好理解,但我就说说线段树部分。原本想做P1505[国家集训队]旅游的,但是发现它需要边权转化点权,所以先做了这题,于是代码里维护了\(minn\)、\(maxn\)、\(sum\)。包含内容:线段树部分怎么写、本题随机数据生成器线段树怎么写先试着......
  • element ui 如何在一行放置三个输入框和两个按钮
    代码示例:<el-form:model="form":rules="rules"label-width="80px"inline><el-row><el-col:span="6"><el-form-itemlabel="First"wordprop="first"><......
  • 【LuoGu】3047 Nearby Cows G ——两次DFS+树上DP
    [USACO12FEB]NearbyCowsG题目描述给你一棵\(n\)个点的树,点带权,对于每个节点求出距离它不超过\(k\)的所有节点权值和\(m_i\)。输入格式第一行两个正整数\(n,k\)。接下来\(n-1\)行,每行两个正整数\(u,v\),表示\(u,v\)之间有一条边。最后\(n\)行,每行一个非负整数......
  • 【LuoGu】2014 选课——树上DP
    [CTSC1997]选课题目描述在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习。现在有\(N\)门功课,每门课有个学分,每门课有一门或没有直接先修课(若课程a是课程b的先修课即只有......
  • luogu P1419 题解
    题目链接description给定一个长度为\(n\)的序列(值域为\([-10^4,10^4]\))和正整数\(st,ed\)。求一个区间,使得其长度\(\in[st,ed]\)且平均值最大,输出平均值。\(1\leqn\leq10^5\)solution这里给出一个复杂度线性的做法。求出前缀和数组\(s\),答案相当于\(\max\limit......
  • python pip安装源使用(记录需要放置的文件位置)
     win系统下:资源管理器地址栏(或任意文件夹地址栏)中输入%appdata%回车进入该目录。 在此文件夹下新建pip文件夹,然后在文件夹中添加pip.ini文件  文件写入:[global]trusted-host=nexus.XXXXXXX.cnindex-url=http://nexus.XXXXXXX.cn/repositor......
  • 服务器可以放置多少个网站
    服务器可以放置多少个网站一、网站大小能影响一个网站大小的因素是比较多的,例如网站的设计,网站里的内容大小。通常网站尺寸比较大,动态页面比较多的。例如视频网站和小说网站,通常对储存的要求也会比较高,所以网站大小必然还是比较大的。一台主机上放置多个网站,相当于是多个网站在共......