【POJ-1163】数字三角形
2015-07-26 01:29
357 查看
一、递归法
Time : 16 MS
复杂度 : O(n2)
二、递推法
Time : [b]16 MS
复杂度 : O(n2)
Time : 16 MS
复杂度 : O(n2)
#include<iostream> #include<algorithm> using namespace std; int number[101][101]; int savemaxsum[101][101]; int n; int maxsum(int a,int b){ if(savemaxsum[a] != -1) return savemaxsum[a][b]; if(a == n) savemaxsum[a][b] = number[a][b]; else{ int x = maxsum(a + 1,b); int y = maxsum(a + 1,b + 1); savemaxsum[a][b] = max(x,y) + number[a][b]; } return savemaxsum[a][b]; } int main(){ cin>>n; for(int i = 1;i <= n;i++) for(int j = 1;j <= i;j++){ cin>>number[i][j]; savemaxsum[i][j] = -1; } cout<<maxsum(1,1)<<endl; return 0; }
二、递推法
Time : [b]16 MS
复杂度 : O(n2)
#include<iostream> using namespace std; int n; int number[101][101]; int *maxsum; int main(){ cin >> n; for(int i = 1;i <= n;i++) for(int j = 1;j <= i;j++) cin >> number[i][j]; maxsum = number ; //maxsum指向底层 for(int i = n - 1;i >= 1;i--) for(int j = 1;j <= i;j++) maxsum[j] = max(maxsum[j],maxsum[j + 1]) + number[i][j]; cout << maxsum[1] << endl; }
相关文章推荐
- DNS基本原理与配置
- Scala 入门学习
- hdu 5285 二分图黑白染色
- iOS开发——UI进阶篇(五)通知、代理、kvo的应用和对比,购物车
- html网页的兼容性和css优先级
- Android开发工具---SQLiteManager插件
- UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
- Android Studio 使用技巧(二)
- Android手机 Fildder真机抓包
- iOS APP开发概述----学习笔记001
- hdu 5312 dp(背包)、二分图或其他姿势
- 如何开启apache虚拟目录反向代理
- 影响世界的十八个定律
- Centos中二级域名绑定二级目录的方法
- 图片的三级缓存
- extern static
- SpringMVC中使用DispatcherServlet
- Joomla】如何重置网站管理员密码
- 简单Maven的Web项目之验证码(普通篇)
- Raid1源代码分析--同步流程