动态规划入门(三)
来源:互联网 发布:Centos安装jdk 编辑:程序博客网 时间:2024/06/05 20:40
例1.挖地雷
这是一道经典的题目,重要的是设状态。
我们设f[i]表示以第i个地窟开始挖地雷所能得到的最大效应,这是不难写出状态转移方程!
#include<stdio.h>#include<stdlib.h>#include<string.h>int a[1001],b[1001][1001],f[1001],p[1000001];int main(){ int i,j,k,n,m; scanf("%d",&n); for(i=1;i<=n;i++)scanf("%d",&a[i]); while(!feof(stdin)){ int x,y; scanf("%d%d",&x,&y); if(x==0 && y==0)break; b[x][y]=1; } int ans=0; for(i=n;i>=1;i--){ f[i]=a[i]; for(j=i+1;j<=n;j++) if(b[i][j] && f[j]+a[i]>f[i]){ f[i]=a[i]+f[j];p[i]=j; } if(f[i]>f[ans])ans=i; } k=ans; printf("%d",ans);ans=p[ans]; while(ans!=0){ printf("-%d",ans); ans=p[ans]; } printf("\n%d\n",f[k]); return 0;}
推荐几篇动态规划的博客
六,五,四,三,二,一
0 0
- 动态规划入门(三)
- 动态规划入门<三>
- 动态规划入门三---背包问题(1)
- 动态规划入门(二)
- 动态规划入门(四)
- 动态规划入门(五)
- 动态规划入门(六)
- 动态规划入门(转)
- 浅谈动态规划(三)
- 算法(三):动态规划
- 动态规划入门(三)DP 基本思想 具体实现 经典题目 POJ1159 POJ1458 POJ1141
- 防卫导弹(动态规划入门题)
- 关于动态规划(入门篇)
- 关于动态规划(入门篇)
- Tyvj1044数字三角形(动态规划入门)
- 转载:关于动态规划(入门篇)
- 动态规划(dp)入门解题报告
- [动态规划]POJ3616(dp入门题)
- 集合相等问题
- 解决ubuntu16.04软件中心闪退问题
- C语言的变长参数 va_arg
- redis初学
- 腾讯面试题:给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?
- 动态规划入门(三)
- ajax 省份地区三级联动
- 西部数据移动硬盘识别不了
- Qt之LiteIDE中漂亮的几款QSS
- E/MediaRecorder: start failed: -38
- VNC连接Linux桌面
- Pb的事务处理机制
- Tanks案例笔记(二、坦克创建与控制)
- Java中.next()和.nextLine()的区别