【BZOJ2699】更新 动态规划
【BZOJ2699】更新
Description
Input
Output
| 输入 | 输出 | 解释 |
|
3
4 3 2
2 3 1
3 4 1
|
6
3
30
|
对第一组数据N=4, K=3, P=2, 所有满足的序列有下面六种:
1) {1,1,2,3} 2) {1,2,1,3}
3) {1,2,2,3} 4) {1,2,3,1}
5) {1,2,3,2} 6) {1,2,3,3}
|
题解:傻题。。
用f[i][j][k]表示前i个数,最大值为j,已经被更新了k次的方案数。然后用前缀和优化转移即可。
#include <cstdio>
#include <cstring>
#include <iostream>
typedef long long ll;
const ll P=1000000007;
int T,n,m,p;
int f[160][310][160];
int main()
{
int i,j,k;
for(i=1;i<=300;i++) f[1][i][0]=i;
for(i=2;i<=150;i++)
{
for(k=0;k<=150;k++)
{
for(j=1;j<=300;j++)
{
if(k) f[i][j][k]=f[i-1][j-1][k-1];
f[i][j][k]=(f[i][j][k]+1ll*j*(f[i-1][j][k]-f[i-1][j-1][k]+P)%P+f[i][j-1][k])%P;
}
}
}
scanf("%d",&T);
while(T--)
{
scanf("%d%d%d",&n,&m,&p);
printf("%d\n",f[n][m][p]);
}
return 0;
}
【BZOJ2699】更新 动态规划的更多相关文章
- bzoj2699 更新
题意 对于一个数列A[1..N],一种寻找最大值的方法是:依次枚举A[2]到A[N],如果A[i]比当前的A[1]值要大,那么就令A[1]=A[i],最后A[1]为所求最大值.假设所有数都在范围[1, ...
- caioj 1080 动态规划入门(非常规DP4:乘电梯)(dp数组更新其他量)
我一开始是这么想的 注意这道题数组下标是从大到小推,不是一般的从小到大推 f[i]表示从最高层h到第i层所花的最短时间,答案为f[1] 那么显然 f[i] = f[j] + wait(j) + (j ...
- LeetCode动态规划题总结【持续更新】
以下题号均为LeetCode题号,便于查看原题. 10. Regular Expression Matching 题意:实现字符串的正则匹配,包含'.' 和 '*'.'.' 匹配任意一个字符,&quo ...
- 【bzoj2699】更新 dp
题目描述 对于一个数列A[1..N],一种寻找最大值的方法是:依次枚举A[2]到A[N],如果A[i]比当前的A[1]值要大,那么就令A[1]=A[i],最后A[1]为所求最大值.假设所有数都在范围[ ...
- 【2018寒假集训 Day2】【2019.5.11更新】【动态规划】花店橱窗布置(FLOWER)
花店橱窗布置(FLOWER) 提交文件名:flower 问题描述: 某花店现有F束花,每一束花的品种都不一样,同时至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定的,从左到右按1到V顺序编号, ...
- 【集训Day4 动态规划】【2018寒假集训 Day4 更新】蛙人
蛙人 (ple) 蛙人使用特殊设备潜水.设备中有一个气瓶,分两格:一格装氧气,另一格装氮气.留在水中有时间的限制,在深水中需要大量的氧气与氮气.为完成任务,蛙人必须安排好气瓶.每个气瓶可以用它的重量和 ...
- 增强学习(三)----- MDP的动态规划解法
上一篇我们已经说到了,增强学习的目的就是求解马尔可夫决策过程(MDP)的最优策略,使其在任意初始状态下,都能获得最大的Vπ值.(本文不考虑非马尔可夫环境和不完全可观测马尔可夫决策过程(POMDP)中的 ...
- dp 动态规划 hdu 1003 1087
动态规划就是寻找最优解的过程 最重要的是找到关系式 hdu 1003 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003 题目大意:求最大字序列和, ...
- 动态规划 求解 Minimum Edit Distance
http://blog.csdn.net/abcjennifer/article/details/7735272 自然语言处理(NLP)中,有一个基本问题就是求两个字符串的minimal Edit D ...
随机推荐
- s:if 标签用法总结和举例
http://www.360doc.com/content/11/1108/18/6161903_162838014.shtml
- javascript 相等运算符
相等运算符 JavaScript提供两个相等运算符:==和===. 简单说,它们的区别是相等运算符(==)比较两个值是否相等,严格相等运算符(===)比较它们是否为“同一个值”.如果两个值不是同一类型 ...
- 我写的websocket推送例子,每隔5秒服务器向客户端浏览器发送消息(node.js和浏览器)
node.js服务端 先要安装ws模块的支持 npm install ws 服务端(server.js) var gws; var WebSocketServer = require('ws').Se ...
- winform程序textbox滚动条保持在最下面 内容不闪烁
在开发winform程序时,会用到textbox控件来显示信息,当把textbox的Multiline属性改为Ture时(即多行显示状态),ScrollBars属性改为Vertical(内容过多时,显 ...
- Android Studio 更新gradle插件
今天更新了CentOS, 更新了java版本. 然后gradle跪了..... 不吐槽java版本的兼容性问题了.... 反正有他自己的理由.... 那么就更新gradle咯.... 下面是方法... ...
- fromdata上传数据
使用formdata上传数据 $(function() { fileStack=[];//总的上传图片栈 //上传事件 $("#uploadBtn").on("click ...
- QT 中设置按钮图片和文字的两种方法
1.使用QpushButton自带的API实现: void setIcon(const QIcon &icon) void setText(const QString &text) 该 ...
- VS2015配置Linux开发远程调试
# VS2015配置Linux开发远程调试 ### 简介-----------------------------vs2015支持跨平台开发 ### 软件环境--------------------- ...
- python操作word【简单封装】
#!/usr/bin/env python # -*- coding: utf-8 -*- import win32com.client import os #-------------------- ...
- 一款纯css3实现的tab选项卡
今天给大家带来一款纯css3实现的tab选项卡.单击左侧的选项的时候,右侧内容以动画的形式展示.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class=&quo ...