hdu 1176 免费馅饼 (数塔)
来源:互联网 发布:肯德基 网络市场调研 编辑:程序博客网 时间:2024/05/29 18:05
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1176
解题报告:如果以下落的时间为纵轴,以移动的横线为横轴,则可以把改问题抽象为数塔问题,只不过该数塔只有5层剩下的是一个矩形
更新的时候注意范围,这里我把三角形的外侧赋值为-1,就是在这片区域不能被更新
代码有点乱
code:
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int maxn,a[100005][11];int n,x,T;int max1(int a,int b,int c){if(a<b)a=b;if(a<c) a=c;return a;}int main(){while(scanf("%d",&n)&&n){maxn=-1;memset(a,0,sizeof(a));for(int i=0;i<n;i++){scanf("%d %d",&x,&T);++a[T][x];if(T>maxn)maxn=T;}a[0][5]=0;for(int i=0;i<5;i++)for(int j=0;j<5-i;j++)a[i][j]=a[i][10-j]=-1;for(int i=1;i<=maxn;i++){for(int j=0;j<=10;j++){if(j>0&&j<10&&a[i][j]!=-1&&(a[i-1][j-1]!=-1||a[i-1][j]!=-1||a[i-1][j+1]!=-1))a[i][j]=max1(a[i-1][j-1],a[i-1][j],a[i-1][j+1])+a[i][j];else if(j==0&&a[i][j]!=-1&&(a[i-1][j]!=-1||a[i-1][j+1]!=-1))a[i][j]=max(a[i-1][j],a[i-1][j+1])+a[i][j];else if(j==10&&a[i][j]!=-1&&(a[i-1][j]!=-1||a[i-1][j-1]!=-1))a[i][j]=max(a[i-1][j],a[i-1][j-1])+a[i][j];}}int ans=-1;for(int i=0;i<=10;i++)if(a[maxn][i]>ans)ans=a[maxn][i];printf("%d\n",ans);}return 0;}
- hdu 1176免费馅饼(数塔)
- hdu 1176 免费馅饼 (数塔)
- HDU 1176 免费馅饼(数塔变形)
- HDU 1176 免费馅饼 数塔
- HDU-1176-数塔DP-免费馅饼
- HDU-1176 免费馅饼 【DP数塔】
- HDU 1176 免费馅饼 数塔 .
- hdu 1176 免费馅饼(数塔问题)
- HDU 1176 免费馅饼(简单数塔DP)
- hdu 1176 免费馅饼 (数塔变形)
- hdu 1176免费馅饼__变形的数塔问题
- hdu 1176 免费馅饼 (dp 数塔类型)
- HDU 1176(免费馅饼)动态规划-数塔
- hdu 1176 免费馅饼 (数塔dp)
- HDU 1176 免费馅饼 动态规划 数塔变形
- 数塔--免费馅饼
- 数塔-免费馅饼
- hdu 1176 免费馅饼
- mysql update 无法使用子查询。。。
- UVa 10499 The Land of Justice(简单数学)
- 看懂信息检索和网络数据挖掘领域论文的必备知识总结
- Kinect应用开发汇总
- mysql++ 中遇到的安装问题 及linux下C++添加共享库
- hdu 1176 免费馅饼 (数塔)
- linux内核分析笔记----虚拟文件系统(下)
- 算法入门经典-1
- POJ-2191-Mersenne Composite Numbers
- sky数
- ubuntu12.04samba服务器配置
- 话题模型(topic model)的提出及发展历史
- android4.2 锁屏源码分析
- MVC