【BZOJ1925】[Sdoi2010]地精部落 组合数+DP
【BZOJ1925】[Sdoi2010]地精部落
Description
Input
Output
Sample Input
Sample Output
HINT
对于 20%的数据,满足 N≤10;
对于 40%的数据,满足 N≤18;
对于 70%的数据,满足 N≤550;
对于 100%的数据,满足 3≤N≤4200,P≤109
题解:容易发现这是一个基于奇偶性的DP,那么我们就分就来讨论一下。
设f[i][0/1]表示有i段,其中最左边那一段是山谷/山峰的方案数,那么我们假设前i-1段已经放好了,现在我们枚举第i段加入的位置,然后将左右两边的方案数乘起来,别忘了在乘上一个组合数。
还有这题P不是质数不能用逆元,只能n2求组合数,但是空间64MB开不下,所以要用滚动数组边DP边求组合数。
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
typedef long long ll;
int n;
ll f[4300][2],c[2][4300],mod;
int main()
{
f[0][0]=f[0][1]=f[1][0]=c[1][0]=1;
scanf("%d%lld",&n,&mod);
int i,j;
for(i=2;i<=n;i++)
{
c[i&1][0]=1;
for(j=1;j<i;j++) c[i&1][j]=(c[(i&1)^1][j-1]+c[(i&1)^1][j])%mod;
for(j=0;j<i;j++) (f[i][(j&1)^1]+=c[i&1][j]*f[j][(j&1)^1]%mod*f[i-j-1][0]%mod)%=mod;q
}
printf("%lld",(f[n][0]+f[n][1])%mod);
return 0;
}
【BZOJ1925】[Sdoi2010]地精部落 组合数+DP的更多相关文章
- bzoj1925 [Sdoi2010] 地精部落【DP】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1925 一个多月前“过”了这道题,还自欺欺人地认为懂了这道题,这直接导致了昨晚多校联测2的T3 ...
- BZOJ1925 [Sdoi2010]地精部落 【dp】
题目 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi,其中Hi是1到N ...
- 2018.10.20 bzoj1925: [Sdoi2010]地精部落(dp)
传送门 dp好题. 设f[i][j]f[i][j]f[i][j]表示iii个数结尾是jjj且结尾两个数递增的方案数. 那么显然可以对称的定义出g[i][j]g[i][j]g[i][j]表示iii个数结 ...
- [bzoj1925][Sdoi2010]地精部落_递推_动态规划
地精部落 bzoj-1925 Sdoi-2010 题目大意:给你一个数n和模数p,求1~n的排列中满足每一个数的旁边两个数,要么一个是边界,要么都比它大,要么都比它小(波浪排列个数) 注释:$1\le ...
- 【bzoj1925】[Sdoi2010]地精部落 组合数学+dp
题目描述 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi,其中Hi是1到 ...
- [BZOJ1925][SDOI2010]地精部落(DP)
题意 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi,其中Hi是1到N ...
- P2467 [SDOI2010]地精部落 (dp+组合数)【扩展Lucas好难不会】
题目链接:传送门 题目: 题目描述 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为N的山脉H可分为从左到右的N段,每段有一个独一无二的高度Hi,其 ...
- BZOJ1925[SDOI2010]地精部落
Description 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi, ...
- bzoj 1925 [Sdoi2010]地精部落(DP)
Description 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi, ...
随机推荐
- lodash 检查值是否存在 includes
_.includes(collection, value, [fromIndex=0]) 检查 值 是否在 集合中,如果集合是字符串,那么检查 值 是否在字符串中. 其他情况用 SameValueZe ...
- android logo设计
应用程序图标 (Icon)应当是一个 Alpha 通道透明的32位 PNG 图片.由于安卓设备众多,一个应用程序图标需要设计几种不同大小,如: LDPI (Low Density Screen,120 ...
- 转MQTT SERVER 性能测试报告
硬件环境: 内存4G CPU4核 SERVER及端口: apollo端口 61619 mosquitto:端口 1884 activeMQ端口:1883 emqtt 端口1885 测试方法 并发测试: ...
- HDU 3085 双广
n*m地图上有 '. ':路 'X':墙 'Z':鬼,每秒蔓延2个单位长度,能够穿墙.共两个,每秒開始时鬼先动 'M':一号,每分钟可移动3个单位长度 'G':二号,每分钟课移动1个单位长度 问两人能 ...
- linux系统日志报错
使用journalctl -xe命令时报错: Error was encountered while opening journal files: Input/output error 日志文件损坏了 ...
- linux 使用fdisk分区扩容,看介绍命令(未完)
https://www.cnblogs.com/chenmh/p/5096592.html LVM 逻辑磁盘的一些命令 http://man.linuxde.net/vgcreate
- Codeforces Round #297 (Div. 2) 525C Ilya and Sticks(脑洞)
C. Ilya and Sticks time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- NativeViewer for VS2010
记得非常久之前公布了一款能够在调试中可视化Mat数据的插件,只是仅仅能用于VS2012及以上.我用的是VS2010(笔记本跑10都卡的不得了,12不敢奢望),不免有些遗憾.非常高兴的say如今这个问题 ...
- sapjco3 开发与部署环境设置
windows 环境设置 1.sapjco3.dll 需要与 sapjco3.jar 在同一目录 2.设置系统环境变量,将sapjco3所在目录加入系统环境变量 3.根据自己的操作系统版本选择对应的s ...
- java-TransDemo
字符串转换成其他基本类型,以及包装类的自动装箱.拆箱 package com.example; import java.util.Scanner; import java.lang.*; /** * ...