[省选] [DP] HLOI2015 Color
来源:互联网 发布:淘宝正品潮牌店铺 编辑:程序博客网 时间:2024/05/21 06:36
Description 题目描述
魔法世界的庆典就要到了,大法师交给Chavo好多好多魔法丝带,要求Chavo为它们涂上五彩斑斓的颜色。Chavo把一条丝带等分成
m 段,将连续的几段涂上一种颜色。她有n 种不同颜色的颜料,而且她会使用每一种颜色一次且仅一次。某一次涂色可能会覆盖掉之前已经涂上的颜色,但是她不会让一种颜色完全覆盖掉另外一种颜色。现在Chavo想知道,她有多少种不同的方案为一条丝带涂色?结果要对1000000007 取模后输出。
设颜色A 的起点为L1 ,终点为R1 ,颜色B 的起点为L2 ,终点为R2 ,当L1≤L2≤R2≤R1 时,颜色A 完全覆盖颜色B 。每一种方案包含n 对Li和Ri ,每一对Li 和Ri 代表一次涂色的起点和终点(1≤Li≤Ri≤m )。
两种方案不一样当且仅当一种方案里的某一次涂色的起点和终点在另外一种方案里不存在。
Input 输入
只有一行输入整数
n 和m
Output 输出
输出一行带有一个整数代表有多少种画法满足题意,结果要对
1000000007 取模后输出。
Sample Input 样例输入
2 3
Sample Output 样例输出
6
Limits 限制
对于30%的数据,
1≤n,m≤10
对于60%的数据,1≤n,m≤100
对于100%的数据,1≤n∗m≤100000
Time Limit :2s & Memory Limit :128MB
Hints 提示
6种情况为
由题意可知,对于任意两段颜色来说,设起点分别为
若
于是可以知道每一个位置最多是一种颜色的起点,一种颜色的终点。
令
对任意两段颜色都成立,则对所有颜色都成立。
所以有
由此可知,某个起点
故考虑以下动态规划状态
时间复杂度为
对于
由此推出
dp是个好东西啊……
上代码
#include<cstdio>#define MOD 1000000007int dp[2][333][333];int n,m;int i,j,k;int main(){ scanf("%d %d",&n,&m); if(n>m)//特判 { printf("0"); return 0; } dp[0][0][0]=1;//初始 for(k=1;k<=m;k++) { for(i=0;i<=n;i++) for(j=0;j<=i;j++) //终点数应小于等于起点数 { //运用与运算压缩空间 k&1的结果为k%2 dp[k&1][i][j]=dp[k-1&1][i][j]; //这一格既不是起点也不是终点 if(i) dp[k&1][i][j]=(dp[k-1&1][i-1][j]+dp[k&1][i][j])%MOD; //以这一格为起点 if(j) dp[k&1][i][j]=(dp[k-1&1][i][j-1]+dp[k&1][i][j])%MOD; //以这一格为终点 if(i&&j) dp[k&1][i][j]=(dp[k-1&1][i-1][j-1]+dp[k&1][i][j])%MOD; //既以这一格为起点,又以这一格为终点 } } printf("%d",dp[m&1][n][n]%MOD); return 0;}
- [省选] [DP] HLOI2015 Color
- [省选] [最短路] [SPFA] HLOI2015 Magic
- UVA1625 - Color Length (DP)
- UVa1625--Color Length DP
- Color Length - UVa 1625 dp
- UVa1625 Color Length(DP)
- 【HDU5823】color II(状压DP)
- HDU 5823 color 状压DP
- Uva1625 -Color Length(DP)
- uva 1625 Color Length (dp)
- PAT 1045 Favorite Color Stripe DP
- UVA1625 / UVALive 5841 Color Length DP
- UVA 1625 Color Length (DP)
- 【DP模型:LCS】uva1625 Color Length
- codeforces 219C C. Color Stripe(dp)
- UVa 1625:Color Length(DP)
- hdu5823 color II(状态压缩DP)
- HDU 5823 color II(状压DP)
- C语言中一类特殊的数组越界!!
- 数据结构之排序:希尔排序
- 自己写的五子棋
- 安卓源码学习地址整理 ( 更新中 )
- [KBEngine]安装及第一次启动
- [省选] [DP] HLOI2015 Color
- 基于小波变换的图像去噪matlab仿真
- python2 filter() map() reduce()函数基础
- VIM学习笔记
- 在Android中使用ORMLite
- linux 下tomcat安装
- iOS面试前的一些准备(持续更新)
- js中引入外部js
- OpenMP编程指南