码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • DP53 取数游戏


    题解:

    dp[L][R]:表示从左端取L个,从右端取R个

    状态转移: dp[L][R]=max(dp[L][R],max(dp[L-1][R]+a[L]*b[L+R],dp[L][R-1]+a[n-R+1]*b[L+R]));

    描述

    给定两个长度为 n 的整数列 A 和 B ,每次你可以从 A 数列的左端或右端取走一个数。假设第 i 次取走的数为 A_x \Ax​ ,则第i次取走的数的价值 v_i = b_i \times a_x \vi​=bi​×ax​  ,现在希望你求出 \sum_{i=1}^n v_i \∑i=1n​vi​ 的最大值。

    输入描述:

    第一行输入一个正整数 n ,表示数列 A 和 B 的长度。

    第二行和第三行各输入 n 个正整数,分别表示数列 A 和 B 的元素

    输出描述:

    按题目要求输出最大值

    示例1

    输入:

    2
    1 1000
    2 1

    复制输出:

    2001

    复制

    示例2

    输入:

    5
    1 3 5 2 4
    1 2 3 4 5

    复制输出:

    52

    复制说明:

    第一次从左边取走a1,v1=a1⋅b1=1,
    第二次从左边取走a2,v2=a2⋅b2=6,
    第三次从右边取走a5,v3=a5⋅b3=12,
    第四次从右边取走a4,v4=a4⋅b4=8,
    

    第五次取走剩下的a3,v5=a3⋅b5=25。

    总价值∑vi=1+6+12+8+25=52

    1. #include <iostream>
    2. using namespace std;
    3. int a[1005];
    4. int b[1005];
    5. int dp[1005][1005];
    6. //dp[i][j]表示从坐标去i个右边取j个
    7. int main() {
    8. int n;
    9. scanf("%d",&n);
    10. for(int i=1;i<=n;i++)
    11. {
    12. cin>>a[i];
    13. }
    14. for(int i=1;i<=n;i++)
    15. {
    16. cin>>b[i];
    17. }
    18. for(int L=0;L<=n;L++)
    19. {
    20. for(int R=0;R+L<=n;R++)
    21. {
    22. if(L>0&&R==0)
    23. {
    24. dp[L][R]=max(dp[L-1][R]+a[L]*b[L],dp[L][R]);
    25. }
    26. else if(L==0 &&R>0)
    27. {
    28. dp[L][R]=max(dp[L][R],dp[L][R-1]+a[n-R+1]*b[R]);
    29. }
    30. else if(L>0 &&R>0)
    31. {
    32. dp[L][R]=max(dp[L][R],max(dp[L-1][R]+a[L]*b[L+R],dp[L][R-1]+a[n-R+1]*b[L+R]));
    33. }
    34. }
    35. }
    36. int ans=0;
    37. for(int i=0;i<=n;i++)
    38. {
    39. ans=max(dp[i][n-i],ans);
    40. }
    41. cout<<ans<<"\n";
    42. return 0;
    43. }

  • 相关阅读:
    css3带你实现3D转换效果
    电脑硬盘被格式化了还能恢复吗?
    【pytest官方文档】解读- 如何安装和使用插件
    【C++】C++基础知识(二)---数据类型
    VB.net webbrowser 自定义下载接口实现
    详细javaweb基础
    启动Java应用的黑魔法:初始化性能解密@PostConstrut,InitialzingBean,init-method,BeanPostProcessor
    改进的DBSCAN算法(附open3d python代码)
    龟兔赛跑:如何使用TortoiseSVN客户端和P4EXP
    Java#22(内部类)
  • 原文地址:https://blog.csdn.net/qq_42434171/article/details/126967927
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号