P1004

题意

  • 类似一个比较小的方格(N<=9),有的点是0,有的点有数, A->B的路径经过的点加上该点代表的数,求两次A->B的最大解(最优解)
  • 一个令人恼的问题是两条路径如果有重合点,那么势必回算两次,所以是不合题意的。而先得一次的最大解,并不一定是两次的最优解
  • 这里可以控制两条路径dp[i][j][k][l],(i,j),(k,l)是两条路径,然后可以动态规划做(如何处理重复经过的点呢,可以想一想!!)
  • 据说有些大佬可以用dfs和网络流做
  • dp可以优化到O(n^2) 不过自己还没掌握

代码

int maxPath(){
for(int i=1;i<=N;i++){
for(int j=1;j<=N;j++){
for(int k=1;k<=N;k++){
for(int l=1;l<=N;l++){
dp[i][j][k][l]=std::max(std::max(dp[i-1][j][k-1][l],dp[i-1][j][k][l-1]),std::max(dp[i][j-1][k-1][l],dp[i][j-1][k][l-1]))+mp[i][j]+mp[k][l];
if(i==k&&j==l) dp[i][j][k][l]-=mp[i][j];
}
}
}
}
return dp[N][N][N][N];
}

最新文章

  1. 通过JDBC进行简单的增删改查(以MySQL为例)
  2. WPF实现TextBox水印效果
  3. aix DNS 配置以及网络命令traceroute和nslookup 和 dig 命令
  4. 2016第20周四java基础概念
  5. cocos2d-html5的jsb模式下如何在编译时自动将js编译为jsc
  6. I - Tunnel Warfare - hdu 1540(区间合并更新)
  7. webstorm 激活码
  8. C#面试题记录
  9. 分布式协调服务Zookeeper集群监控JMX和ZkWeb应用对比
  10. sql server 与 sql server compact 互相数据导入
  11. Busybox构建根文件系统和制作Ramdisk
  12. STM32L476应用开发之八:便携式气体分析仪项目总结
  13. poj3009 Curling 2.0(很好的题 DFS)
  14. Oracle 11g透明网关连接Sqlserver
  15. java基础----&gt;数组的基础使用(二)
  16. hdu1527下沙小面的(二)
  17. Termux中安装gcc-7/gfortran-7实操过程,安装成功可以编译Fortran,c/c++
  18. 使用windows live writer发表的博客
  19. 浅谈cocosd之autorelease\retain\release的理解
  20. ES6之class 中 constructor 方法 和 super 的作用

热门文章

  1. C++调用C#编写的DLL【转】
  2. 【hiho一下 第九周】 状态压缩·二
  3. linux_ubuntu 连接xftp
  4. 【explain】MySQL联表查询中的驱动表
  5. WinSCP介绍、安装、使用
  6. NEFU 119
  7. Android 开发最佳实践
  8. CRM实施中应避免的5大问题
  9. JAVA程序设计(11)-----面对对象0基础设计 麻将 创建麻将牌 然后洗牌 发牌~ 恩 就这样
  10. android创建桌面快捷键shortcut