题目要求

P5638题目链接




分析

交了两版本优化的Java代码,全T了最后5个点。

第一版是用了前缀和来写的:

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int num = scanner.nextInt(), radius = scanner.nextInt();long[] sum_array = new long[num];for (int i = 0; i < num-1; i++) {sum_array[i+1] = sum_array[i] + scanner.nextLong();}scanner.close();long count = sum_array[radius];for(int i = 1; i < num-radius; i++) {count = Math.max(count, (sum_array[i+radius]-sum_array[i]));}System.out.println(sum_array[num-1]-count);}
}

第二个版本用了DP来写的(参考了大佬的讲解):

import java.util.Scanner;public class Main {public static void main(String[] args) {//        Scanner scanner = new Scanner(System.in);
//        int num = scanner.nextInt(), radius = scanner.nextInt();
//        long[] sum_array = new long[num];
//        for (int i = 0; i < num-1; i++) {//            sum_array[i+1] = sum_array[i] + scanner.nextLong();
//        }
//        scanner.close();
//        long count = sum_array[radius];
//        for(int i = 1; i < num-radius; i++) {//            count = Math.max(count, (sum_array[i+radius]-sum_array[i]));
//        }
//        System.out.println(sum_array[num-1]-count);Scanner scanner = new Scanner(System.in);int num = scanner.nextInt(), radius = scanner.nextInt();long[][] dp = new long[num+1][2];long[] array = new long[num];for (int i = 1; i < num; i++) {array[i] = scanner.nextLong();}scanner.close();for(int i = 2; i <= num;i++) {dp[i][0] = dp[i-1][0] + array[i-1];if(i > radius) {dp[i][1] = dp[i-radius][0];}dp[i][1] = Math.min(dp[i-1][1]+array[i-1], dp[i][1]);//状态转移方程}System.out.println(dp[num][1]);}
}

AC代码(C++语言描述)

#include<bits/stdc++.h>
using namespace std;
long long sum_array[1000001];
long long num, radius;int main() {cin >> num >> radius;for(int i = 0; i < num-1; i++) {long long x;cin>>x;sum_array[i+1] = sum_array[i] + x;}long long count = sum_array[radius];for(int i = 1; i < num - radius; i++) {count=max(count, sum_array[i + radius] - sum_array[i]);}cout << sum_array[num-1]-count << endl;return 0;
}

光骓者的荣耀(洛谷P5638题题解,弃坑Java拥抱C++)相关推荐

  1. 线性存储的最短平均检索时间(洛谷P1253题题解,Java语言描述)

    题目要求 P1253题目链接 分析 很像 ~洛谷P1223题题解~,也是一种类似SJF的贪心法. 排个序,由于两个不大于10000的数,乘起来还是int,就使用int属性吧. 数据量小,所以Scann ...

  2. 队列模拟约瑟夫问题(洛谷P1996题题解,Java语言描述)

    题目要求 P1996题目链接 分析 以前就研究过"约瑟夫环"问题: <单循环链表求解约瑟夫环问题(Java语言描述)> <杀人游戏~约瑟夫环(洛谷P1145题题解 ...

  3. 浮点高精求和(洛谷P2393题题解,弃坑Java拥抱C++)

    题目要求 P2393题目链接 分析 这题实则是变态的大浮点加法,众所周知的是浮点不精确,按照IEEE754来. 原先使用Java写的,但下面分析一下为什么不能用Java写. 这代码本来是这么写的: i ...

  4. 贪心策略摘果子(洛谷P1478题题解,Java语言描述)

    题目要求 P1478题目链接 分析 本题的低配版题目链接 → 题解 那个题就是纯水题没啥可写的,我除了贴代码无话可说,但这题吧,虽然不算难,但也可一说. 建议大家移步这里 → 精辟题解 这位爷写了本题 ...

  5. 修改数组(洛谷P7285题题解,C++语言描述)

    题目要求 P7285题目链接 分析 这题虽然是红题,但是因为很有趣且是 Special Judge ,所以写篇题解. 乍一看,这题好麻烦啊,要综合考虑xxx和yyy,达到x−yx-yx−y的最优化. ...

  6. 麦森数(洛谷P1045题题解,Java语言描述)

    题目要求 题目链接 分析 这题挺经典的,快速幂取模算法,如果求出大数再取模就可能T掉. 之前有篇文章写了这个算法:<快速幂算法详解&&快速幂取模算法详解> 既然是Java, ...

  7. 枚举求解单词方阵(洛谷P1101题题解,Java语言描述)

    题目要求 P1101题目链接 分析 可以用DFS做,但我立下了个Flag,所以就用了朴素的枚举来做.... 结果,我的天哪,做了好几个小时-- 其实这种地图题,真的适合 DFS or BFS or D ...

  8. 快速幂||取余运算【模板】(洛谷P1226题题解,Java语言描述)

    题目要求 P1226题目链接 分析 标准的快速幂取模算法板子,之前这个算法我在这篇文章中讲过了:<快速幂算法详解&&快速幂取模算法详解>. 这里选择使用比较简单的API实现 ...

  9. 求子集元素之和(洛谷P2415题题解,Java语言描述)

    题目要求 P2415题目链接 分析 这题我觉得--当个数学题做就好了嘛. 有一个数N的情况:result = 1 * N 有两个数N1.N2的情况:result = 2 * (N1+N2) 有三个数N ...

最新文章

  1. 轴等比缩放_CAD教程:自由缩放命令的操作流程
  2. 关于浮点数计算时的精度问题
  3. 教怎样写好一份“漏洞报告”
  4. 【整理】内向交货(Inbound Delivery)
  5. 多图上传 - Web Uploader
  6. [vue] 如果现在让你从vue/react/angularjs三个中选择一个,你会选哪个?说说你的理由
  7. Trunk Vlan
  8. ubuntu 命令记忆
  9. 如何查看Windows8.1计算机体验指数评分
  10. Android模拟器adb命令介绍
  11. 帝豪gl车机系统降级_美好的陪伴、舒心的用车,帝豪GL,32000公里用车有感
  12. 【谷粒商城】k8s、devops集群篇(4/4)
  13. WPS使用格式刷复制样式之后重新排序
  14. Downloading https://ultralytics.com/assets/Arial.ttf to /data/..../.config/Ultralytics/Arial.ttf
  15. Java实验报告手写_java实验1实验报告(20135232王玥)
  16. 圆管当量直径_非圆形管道当量直径的计算公式为:de=4A/X。式中X表示( )
  17. python -m http.server 8000
  18. 2022-2027年中国自动化立体仓库行业发展前景及投资战略咨询报告
  19. “Microsoft Office Word 遇到问题需要关闭”的解决方法
  20. 怎样将笔记本改装成触摸屏

热门文章

  1. hdu 2489 Minimal Ratio Tree
  2. Python之路 day1 基础1 变量 for while 用户输入
  3. Java--File文件操作
  4. PAT (Advanced Level) Practise:1001. A+B Format
  5. POJ 2054 Color a Tree
  6. ORACLE 进入sqlplus的协议适配器错误
  7. NCRE四级网络工程师考题详解----对等计算模型(P2P)
  8. indexOf、lastIndexOf、substring等详解
  9. PLSQL中文显示乱码(问号)
  10. python定义字典列表_Python基础语法(四)—列表、元组、字典、集合、字符串