光骓者的荣耀(洛谷P5638题题解,弃坑Java拥抱C++)
题目要求
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++)相关推荐
- 线性存储的最短平均检索时间(洛谷P1253题题解,Java语言描述)
题目要求 P1253题目链接 分析 很像 ~洛谷P1223题题解~,也是一种类似SJF的贪心法. 排个序,由于两个不大于10000的数,乘起来还是int,就使用int属性吧. 数据量小,所以Scann ...
- 队列模拟约瑟夫问题(洛谷P1996题题解,Java语言描述)
题目要求 P1996题目链接 分析 以前就研究过"约瑟夫环"问题: <单循环链表求解约瑟夫环问题(Java语言描述)> <杀人游戏~约瑟夫环(洛谷P1145题题解 ...
- 浮点高精求和(洛谷P2393题题解,弃坑Java拥抱C++)
题目要求 P2393题目链接 分析 这题实则是变态的大浮点加法,众所周知的是浮点不精确,按照IEEE754来. 原先使用Java写的,但下面分析一下为什么不能用Java写. 这代码本来是这么写的: i ...
- 贪心策略摘果子(洛谷P1478题题解,Java语言描述)
题目要求 P1478题目链接 分析 本题的低配版题目链接 → 题解 那个题就是纯水题没啥可写的,我除了贴代码无话可说,但这题吧,虽然不算难,但也可一说. 建议大家移步这里 → 精辟题解 这位爷写了本题 ...
- 修改数组(洛谷P7285题题解,C++语言描述)
题目要求 P7285题目链接 分析 这题虽然是红题,但是因为很有趣且是 Special Judge ,所以写篇题解. 乍一看,这题好麻烦啊,要综合考虑xxx和yyy,达到x−yx-yx−y的最优化. ...
- 麦森数(洛谷P1045题题解,Java语言描述)
题目要求 题目链接 分析 这题挺经典的,快速幂取模算法,如果求出大数再取模就可能T掉. 之前有篇文章写了这个算法:<快速幂算法详解&&快速幂取模算法详解> 既然是Java, ...
- 枚举求解单词方阵(洛谷P1101题题解,Java语言描述)
题目要求 P1101题目链接 分析 可以用DFS做,但我立下了个Flag,所以就用了朴素的枚举来做.... 结果,我的天哪,做了好几个小时-- 其实这种地图题,真的适合 DFS or BFS or D ...
- 快速幂||取余运算【模板】(洛谷P1226题题解,Java语言描述)
题目要求 P1226题目链接 分析 标准的快速幂取模算法板子,之前这个算法我在这篇文章中讲过了:<快速幂算法详解&&快速幂取模算法详解>. 这里选择使用比较简单的API实现 ...
- 求子集元素之和(洛谷P2415题题解,Java语言描述)
题目要求 P2415题目链接 分析 这题我觉得--当个数学题做就好了嘛. 有一个数N的情况:result = 1 * N 有两个数N1.N2的情况:result = 2 * (N1+N2) 有三个数N ...
最新文章
- 轴等比缩放_CAD教程:自由缩放命令的操作流程
- 关于浮点数计算时的精度问题
- 教怎样写好一份“漏洞报告”
- 【整理】内向交货(Inbound Delivery)
- 多图上传 - Web Uploader
- [vue] 如果现在让你从vue/react/angularjs三个中选择一个,你会选哪个?说说你的理由
- Trunk Vlan
- ubuntu 命令记忆
- 如何查看Windows8.1计算机体验指数评分
- Android模拟器adb命令介绍
- 帝豪gl车机系统降级_美好的陪伴、舒心的用车,帝豪GL,32000公里用车有感
- 【谷粒商城】k8s、devops集群篇(4/4)
- WPS使用格式刷复制样式之后重新排序
- Downloading https://ultralytics.com/assets/Arial.ttf to /data/..../.config/Ultralytics/Arial.ttf
- Java实验报告手写_java实验1实验报告(20135232王玥)
- 圆管当量直径_非圆形管道当量直径的计算公式为:de=4A/X。式中X表示( )
- python -m http.server 8000
- 2022-2027年中国自动化立体仓库行业发展前景及投资战略咨询报告
- “Microsoft Office Word 遇到问题需要关闭”的解决方法
- 怎样将笔记本改装成触摸屏
热门文章
- hdu 2489 Minimal Ratio Tree
- Python之路 day1 基础1 变量 for while 用户输入
- Java--File文件操作
- PAT (Advanced Level) Practise:1001. A+B Format
- POJ 2054 Color a Tree
- ORACLE 进入sqlplus的协议适配器错误
- NCRE四级网络工程师考题详解----对等计算模型(P2P)
- indexOf、lastIndexOf、substring等详解
- PLSQL中文显示乱码(问号)
- python定义字典列表_Python基础语法(四)—列表、元组、字典、集合、字符串