2016年第四届湘潭大学新生趣味程序设计竞赛 解题报告(动态规划)
2016-12-19 03:06
337 查看
Estrella's Travel | ||
Accepted : 106 | Submit : 269 | |
Time Limit : 1000 MS | Memory Limit : 65536 KB |
Estrella's Travel题目描述Estrella喜欢旅行,她准备去自己心仪的城市看风景。她精心选择了一条线路,准备自驾游。自驾线路是一条链路,上有n+1座城市,编号依次为0∼n,Estrella住在0号城市,目的地是n号城市。Estrella为了环保,驾驶了一辆纯电动车,所以最多只能一次行驶m个城市的距离。如果Estrella在某个城市(包括n号城市)停留,自然会需要一些费用,当然每个城市的花费是不一样,Estrella想知道,这个花费最小是多少?输入多组数据输入。每组数据第一行两个整数n(1<n<1000),m(1≤m<n)。 第二行n个整数ai(0<ai≤1000),表示编号为1,2,⋯,n的城市的停留花费。 输出对于每个数据,输出一行,表示总的花费。样例输入5 2 1 2 3 4 5 6 2 6 5 4 3 2 1 样例输出9 9 样例解释第1个样例,依次到城市1,3,5,所以花费为1+3+5=9;第2个样例,依次到城市2,4,6,所以花费为5+3+1=9。 |
#include<stdio.h> int min(int a,int b) { if(a>b) return b; else return a; } int main() { int a[1005],dp[1005],t,n,m,i,j; while(~scanf("%d%d",&n,&m)) { dp[0]=0; for(i=1;i<=n;i++) scanf("%d",&a[i]); for(i=1;i<=n;i++) { t=1e6; if(i<=m) { for(j=0;j<i;j++) t=min(t,dp[j]); dp[i]=t+a[i]; } else { for(j=i-m;j<i;j++) t=min(t,dp[j]); dp[i]=t+a[i]; } } printf("%d\n",dp ); } return 0; }
相关文章推荐
- 2016年第四届湘潭大学新生趣味程序设计竞赛
- 2016年第四届湘潭大学新生趣味程序设计竞赛
- 2016年第四届湘潭大学新生趣味程序设计竞赛
- 2016年第四届湘潭大学新生趣味程序设计竞赛
- 2016年第四届湘潭大学新生趣味程序设计竞赛
- 2016年第四届湘潭大学新生趣味程序设计竞赛
- 2016年第四届湘潭大学新生趣味程序设计竞赛
- 2016年第四届湘潭大学新生趣味程序设计竞赛
- 2016年第四届湘潭大学新生趣味程序设计竞赛
- 2016年第四届湘潭大学新生趣味程序设计竞赛
- 2016年第四届湘潭大学新生趣味程序设计竞赛 题解
- 2016年第四届湘潭大学新生趣味程序设计竞赛
- 2016年第四届湘潭大学新生趣味程序设计竞赛
- 2016年第四届湘潭大学新生趣味程序设计竞赛 题解
- 2016年第四届湘潭大学新生趣味程序设计竞赛
- 打酱油路过,2016年第四届湘潭大学新生趣味程序设计竞赛-Java
- 2016年第四届湘潭大学新生趣味程序设计竞赛
- UESTC-第五届ACM趣味程序设计竞赛第四场(正式赛)--不完全解题报告
- 2013级新生程序设计基础竞赛-正式赛 F 异或最大值 解题报告