【问题描述】
有一种别样“小猫钓鱼”扑克游戏。有 N 张牌,每张牌都有一个花色和点数。游戏的规则:扑克接龙时,若前面有同样花色的牌,你可以将这两张牌连同之间的牌都取走,得到的分值为取走牌点数之和。这里说的是可以,不是必须。给定扑克接龙的顺序,求最多的得分。
【输入格式】
第一行一个整数 N。
第二行 N 个整数,依次表示 1~N 张牌的花色。
第三行 N 个整数,依次表示 1~N 张牌的点数。
【输出格式】
一个整数,为游戏可以得到最大得分。
【输入样例】
7
1 2 1 2 3 2 3
1 4 3 4 3 4 5
【输出样例】
23
数据范围:1<=n<=3000
【解题思路】
简单的DP+利用前缀和求出数据中某一段的和。
【参考程序】

#include<iostream>
#include<cstdio>
using namespace std;
int n,c[3001],f[3001],dp[3001];
int main()
{
scanf("%d",&n);
for (int i=1;i<=n;i++) scanf("%d",&c[i]);
for (int i=1;i<=n;i++)
{
scanf("%d",&f[i]);
f[i]=f[i-1]+f[i];
}
for (int i=1;i<=n;i++)
{
dp[i]=dp[i-1];
for (int j=1;j<i;j++)
if (c[i]==c[j])
dp[i]=max(dp[i],dp[j-1]+f[i]-f[j-1]);
}
cout<<dp[n];
return 0;
}

最新文章

  1. Spring Bean后处理器以及容器后处理器【转】
  2. WLAN拓扑介绍-07
  3. poj 3233 矩阵快速幂+YY
  4. 应用程序如何找到DLL文件?
  5. Android AndroidManifest学习笔记
  6. SSIS结合BCP及SQL Server作业实现定时将数据导出打包实现数据同步
  7. Spring与Ibatis整合入门
  8. html5标签placeholder使用
  9. Swift UI
  10. uva 10401 Injured Queen Problem(dp)
  11. #, about:blank,javascript:路径比较
  12. swoole使用 常用案例
  13. python 面向对象进阶之元类metaclass
  14. 【DWM1000】 code 解密2一 工程初始化代码分析
  15. 如何使用PowerDesigner设计数据库关系模式
  16. RocEDU.课程设计2018 第二周进展 博客补交
  17. 得到ImageView中drawable显示的区域的计算方法
  18. h5预加载代码
  19. Jackson JSON Processor
  20. 北京Uber优步司机奖励政策(4月17日)

热门文章

  1. 数据结构(二十七)Huffman树和Huffman编码
  2. (二)Kinect关节识别
  3. 微服务SpringCloud之服务网关zuul二
  4. Windows下NFS服务器SFU设置(可以共享linux系统)
  5. 有Bug?你的代码神兽选对了吗
  6. Linux系统运行级别和关机重启命令介绍
  7. Android Studio Module 引入aar
  8. 配置Docker镜像加速
  9. python写购物车小程序
  10. Laravel用户认证