USACO Number Triangles
来源:互联网 发布:115网盘会员充值淘宝 编辑:程序博客网 时间:2024/05/16 15:19
【题意】
给定三角形,每个位置上有权值。从顶部出发,在每一结点可以选择向左走或得向右走,一直走到底层。要求找出一条路径,使路径上的值最大。
【分析】
无语啊,又是数字三角形......
换一换DP,改成状态->决策的转移方式写写......
这样有着一定的好处,可以避免越界,时间复杂度的常数也小一些
给定三角形,每个位置上有权值。从顶部出发,在每一结点可以选择向左走或得向右走,一直走到底层。要求找出一条路径,使路径上的值最大。
【分析】
无语啊,又是数字三角形......
换一换DP,改成状态->决策的转移方式写写......
这样有着一定的好处,可以避免越界,时间复杂度的常数也小一些
【代码】
/*ID:y2007031PROG:numtriLANG:C++*/#include <cstdio>#include <cstring>#include <cstdlib>using namespace std;int n,p[1001][1001];int f[1001][1001],res;int max(int i,int j){return i>j?i:j;}int main(void){freopen("numtri.in","r",stdin);freopen("numtri.out","w",stdout);scanf("%d",&n);for (int i=1;i<=n;i++)for (int j=1;j<=i;j++) scanf("%d",&p[i][j]);for (int i=1;i<n;i++)for (int j=1;j<=i;j++){f[i][j]+=p[i][j];f[i+1][j]=max(f[i+1][j],f[i][j]);f[i+1][j+1]=max(f[i+1][j+1],f[i][j]);}for (int i=1;i<=n;i++) f[n][i]+=p[n][i];for (int i=1;i<=n;i++) res=max(res,f[n][i]);printf("%d\n",res);return 0;}
0 0
- Number Triangles(usaco)
- [usaco] Number Triangles
- USACO Number Triangles
- usaco Number Triangles
- USACO:Number Triangles
- USACO-Number Triangles
- USACO Number Triangles
- USACO Number Triangles
- USACO 1.5 Number Triangles
- USACO 1.5-Number Triangles
- USACO 1.5 Number Triangles
- usaco Number Triangles
- usaco Number Triangles
- [USACO 1.5.1] Number Triangles
- USACO 1.5 Number Triangles (numtri)
- USACO Section 1.5 Number Triangles
- USACO Section 1.5 Number Triangles
- USACO 1.5.1 Number Triangles
- System.exit(-1)和return 的区别
- 【ROS安装】Ubuntu for ros 版本
- 1009. Product of Polynomials (25)
- 笔记本发射wifi
- Virus Bulletin malware分析杂志以及paper
- USACO Number Triangles
- hdu 2825 Wireless Password (ac自动机+状压dp)
- Android多媒体系统的业务
- UIButton
- 小慕机器人实现学习
- 辛星浅析Redis中的服务器管理
- 说说JSON和JSONP,也许你会豁然开朗
- Maven基础
- Java设计模式-3-抽象工厂模式