FJNU1196 汪老司机
来源:互联网 发布:数据防泄密软件 编辑:程序博客网 时间:2024/04/29 20:15
#include <iostream>#include <cstring>#include <algorithm>using namespace std;int main(){ int maxn=10005;//注意数组的边界 int T; cin>>T; while(T--){ int n,k; cin>>n>>k; long long array[maxn][3];//将两条路定义为一个二维数组 long long dp[maxn][15][3];//定义一个三维数组,第二位表示在换了J次路后的耗油量 int i,j; for(j=1;j<=2;j++) for(i=1;i<=n;i++) cin>>array[i][j]; memset(dp,0x7f,sizeof(dp));//初始化DP,且初始值要够大 dp[1][0][1]=array[1][1];//开始选择第一条路不需要进行换路,直接赋值 dp[1][0][2]=array[1][2]; for(i=2;i<=n;i++){ dp[i][0][1]=dp[i-1][0][1]+array[i][1]; //表示第一次换路后的情况 dp[i][0][2]=dp[i-1][0][2]+array[i][2]; for(j=1;j<=min(i,k);j++){ //接下来遍历所有换路不换路的情况 dp[i][j][1]=min(dp[i-1][j][1],dp[i-1][j-1][2])+array[i][1]; dp[i][j][2]=min(dp[i-1][j][2],dp[i-1][j-1][1])+array[i][2]; } } long long ans=100000000000000; for(j=0;j<=k;j++) ans=min(ans,min(dp[n][j][1],dp[n][j][2]));//由于题目给的最大耗油量够大,必须与题给的最大耗油量进行比较取最小值 cout<<ans<<endl; } return 0;}
0 0
- FJNU1196 汪老司机
- Django 老司机
- 老司机开车记
- 老司机开车
- 老司机代码
- 老司机带新手
- 老司机链接
- 老司机java
- 老司机漫谈C++
- 小园丁与老司机
- mysql老司机之路
- 老司机谈谈双一流
- FJNU第二十届低年级程序设计竞赛(正式赛)-Problem C-汪老司机(简单DP)
- 老司机总结出21条即学即用经验
- 老司机总结的21条即学即用经验
- 老司机总结21条行车细节
- 老司机总结21条行车细节
- 一篇老司机的Mac设置指南
- 算法训练 删除数组零元素
- Redis配置后端启动
- Android中实现帐号密码登录及进行内存缓存逻辑(仿QQ)
- JQ选择器
- sizeof 和 strlen 的深入理解
- FJNU1196 汪老司机
- File
- 为什么一般用vector<string> 而非 vector<char*>
- 杂谈之flex布局
- 设计模式之观察者模式
- 《Thinking in Java》第二版P346—关于HashMap的思考
- Ajax实现登录时的用户名验证(Servlet 响应)
- Jedis 的使用
- C++中的C_str()函数简单用法