题目 1514: [蓝桥杯][算法提高VIP]夺宝奇兵
时间限制: 1Sec 内存限制: 128MB 提交: 915 解决: 583
题目描述
在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图:
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
”夺宝奇兵”从山下出发,到达山顶,如何选路才能得到最多的珠宝呢?在上图所示例子中,按照5-> 7-> 8-> 3-> 7的顺序,将得到最大值30
输入
第一行正整数N(100> =N> 1),表示山的高度
接下来有N行非负整数,第i行有i个整数(1< =i< =N),表示山的第i层上从左到右每条路上的珠宝数目
输出
一个整数,表示从山底到山顶的所能得到的珠宝的最大数目.
样例输入
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
样例输出
30
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main(){int n;cin>>n;int str[100][100];memset(str,0,sizeof(str));for(int i=1;i<=n;i++){for(int j=1;j<=i;j++){cin>>str[i][j];}}int cns=0;for(int i=1;i<=n;i++){for(int j=1;j<=i;j++){str[i][j]=str[i][j]+max(str[i-1][j-1],str[i-1][j]);if(str[i][j]>cns){cns=str[i][j];}}}cout<<cns<<endl;return 0;
}
动态规划代码笔记
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int arr[]={3,34,4,12,5,12};
bool dp(int *arr,int s){bool opt[6][s+1];memset(opt,0,sizeof(opt));for(int i=0;i<6;i++){opt[i][0]=true;}for(int i=0;i<=s;i++){opt[0][i]=false;}opt[0][arr[0]]=true;for(int i=1;i<6;i++){for(int j=1;j<=s;j++){if(arr[i]>j){opt[i][j]=opt[i-1][j];}else{bool a=opt[i-1][j-arr[i]];bool b=opt[i-1][j];opt[i][j]=(a||b);}}}return opt[5][s];}int main(){cout<<dp(arr,25);
}//int arr[]={3,34,4,12,5,12};
//bool dfs(int *arr,int i,int s){// if(s==0){// return true;
// }
// if(i==0){// return arr[0]==s;
// }
// if(arr[i]>s){// return dfs(arr,i-1,s);
// }
// else{// int a=dfs(arr,i-1,s-arr[i]);
// int b=dfs(arr,i-1,s);
// return a||b;
// }
//
//}
//
//
//int main(){// cout<<dfs(arr,6,46)<<endl;
// return 0;
//}int arr[]={1,2,4,1,7,8,3};int dp(int *arr){int opt[7];memset(opt,0,sizeof(opt));//数组清零opt[0]=arr[0];opt[1]=max(arr[0],arr[1]);for(int i=2;i<=6;i++){int a=opt[i-2]+arr[i];int b=opt[i-1];opt[i]=max(a,b);} return opt[6];
}
int main(){cout<<dp(arr);
} //int arr[]={1,2,4,1,7,8,3};
//int dfs(int *arr,int i){// if(i==0){// return arr[0];
// }
// else if(i==1){// return arr[1];
// }
// else{// int a=dfs(arr,i-2)+arr[i];
// int b=dfs(arr,i-1);
// return max(a,b);
// }
//}
//
//int main(){// cout<<dfs(arr,6);
//}
题目 1514: [蓝桥杯][算法提高VIP]夺宝奇兵相关推荐
- [蓝桥杯][算法提高VIP]夺宝奇兵-递推+记忆化搜索
题目描述 在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 " ...
- [蓝桥杯][算法提高VIP]夺宝奇兵-dp
题目描述 在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 " ...
- [蓝桥杯][算法提高VIP]夺宝奇兵(记忆化搜索||DP)
题目描述 在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 " ...
- 题目 1902: [蓝桥杯][算法提高VIP]九宫格
时间限制: 1Sec 内存限制: 128MB 题目描述:(原题链接) 九宫格.输入1-9这9个数字的一种任意排序,构成3*3二维数组.如果每行.每列以及对角线之和都相等,打印1.否则打印0. 输入: ...
- 题目 1982: [蓝桥杯][算法提高VIP]幸运顾客
时间限制: 1Sec 内存限制: 128MB 题目描述:(原题链接) 为了吸引更多的顾客,某商场决定推行有奖抽彩活动."本商场每日将产生一名幸运顾客,凡购买30元以上商品者均有机会获得本商场 ...
- 题目 1916: [蓝桥杯][算法提高VIP]身份证号码升级
题目描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位.(18位身份证号码简介).升级方法为: 1.把15位身份证号码中的年份由2位(7,8位)改为四位. 2.最后添加一位验证码. ...
- [蓝桥杯][算法提高VIP]阮小二买彩票[递归全排列]
题目 1578: [蓝桥杯][算法提高VIP]阮小二买彩票 时间限制: 1Sec 内存限制: 128MB 提交: 348 解决: 153 题目描述 在同学们的帮助下,阮小二是变的越来越懒了, 连算账都 ...
- [蓝桥杯][算法提高VIP]阮小二买彩票
[蓝桥杯][算法提高VIP]阮小二买彩票 题目描述 在同学们的帮助下,阮小二是变的越来越懒了, 连算账都不愿意自己亲自动手了,每天的工作就是坐在电脑前看自己的银行账户的钱是否有变多.可是一段时间观察下 ...
- c语言oj题1923偶数之和,问题 1923: [蓝桥杯][算法提高VIP]学霸的迷宫 (BFS)
题目描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫.因为班长还有妹子要陪,磨刀不 ...
最新文章
- MySQL存储过程_创建-调用
- 使用Navicat创建数据库,外键出现错误ERROR 1005: Can't create table (errno: 121)
- C#中串口组件的使用方法总结及上位机制作方法
- Mybatis: 返回不同实体(对象数组)
- r graphics installing package
- linux怎么重装ssh服务器,Linux平台下安装SSH
- 测试工程师听了想打人
- 报错:mysqldump‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
- d3js精通教程_d3js从基础到精通第二部分
- 玩玩Linux云主机-安装MySQL ,The server quit without updating PID file,Linux chown 权限管理
- 皖能合肥电厂电能量计量管理系统设计方案
- WPS按Tab键无效果
- 南充一中2021成绩查询高考,2019高考喜报汇总
- 博图SCL 选择排序
- 最好用的jpg转pdf软件
- Educational Codeforces Round 126 (Rated for Div. 2)(A-E)
- Python批量修改文件后缀
- ACLSCO链路介绍
- word、excel文档内容更新技术方案
- android edittext的属性