hdu1176 免费馅饼
来源:互联网 发布:电视apk软件下载 编辑:程序博客网 时间:2024/05/10 11:53
类似与 数塔问题
用 dp[j][i] 表示 第j个位置,i秒的接的最多饼数。
但是在 j = 0 只能从1 到达,所以有两种选择 dp[j][i - 1] += max ( dp[j + 1][i], dp[j][i] )
j = 10 只能从9 到达 有两种选择 dp[j][i - 1] += max ( dp[j - 1][i], dp[j][i] )
j =1 ~ 9 有三种选择dp[j][i - 1] += max ( dp[j][i], dp[j - 1][i], dp[j + 1][i] )
输出dp[5][0] 即可
#include <cstdio>#include <algorithm>#include <cstring>using namespace std;int dp[11][100001];int maxx ( int a, int b, int c ) { return max ( max ( a, b ), max ( b, c ) );}int main ( ) { int n, i, j, x, t; while ( scanf ( "%d", &n ) != EOF && n ) { memset ( dp, 0, sizeof ( dp ) ); int Max = 0; for ( i = 1; i <= n; ++i ) { scanf ( "%d%d", &x, &t ); dp[x][t]++; Max = max ( Max, t ); } for ( i = Max; i >= 1; --i ) { for ( j = 0; j <= 10; ++j ) { if ( j == 0 ) dp[j][i - 1] += max ( dp[j + 1][i], dp[j][i] ); else if ( j == 10 ) dp[j][i - 1] += max ( dp[j][i], dp[j - 1][i] ); else { dp[j][i - 1] += maxx ( dp[j][i], dp[j - 1][i], dp[j + 1][i] ); } } } printf ( "%d\n", dp[5][0] ); }}
- HDU1176免费馅饼
- HDU1176 免费馅饼
- hdu1176免费馅饼
- HDU1176 免费馅饼
- hdu1176免费馅饼
- hdu1176 免费馅饼
- HDU1176--免费馅饼
- hdu1176-免费馅饼
- hdu1176 免费馅饼
- HDU1176 免费馅饼
- hdu1176 免费馅饼
- hdu1176 免费馅饼
- hdu1176免费馅饼 dp
- HDU1176:免费馅饼(DP)
- HDU1176 免费馅饼
- hdu1176---免费馅饼
- HDU1176免费馅饼
- hdu1176免费馅饼(DP)
- 协调多个对象之间的交互——中介者模式(四)
- 用ant脚本执行sql语句
- android ImageSwitch
- Ant用法——运行SQL命令
- gethibernatetemplate的find方法大全
- hdu1176 免费馅饼
- Ant用法——运行java 类
- 1021. Couples简单题 -> 规模原来很大 -> 难 ->数据结构: 栈
- 破解光猫4台限制
- 使用GDAL生产jpg格式的快视图(拇指图)
- 敏捷日志2013-1-8
- OpenVPN Server client官方下载
- 1027. MJ, Nowhere to Hide简单题
- OpenCV中的CvSVM使用方法