动态规划基础题(第2题):累积和问题,华丽丽超时

【动态规划】数字三角形最大值(一)(递归) 避免 递归函数 的重复计算! 阅读详情

碎碎念

  • 看似越简单问题里面越有陷阱,本题最初的题解华丽丽的有4个case超时。
    • AtCode的比赛,要么0分,要么100,二选一

标签

  • 动态规划、累积和

合集

  • 【动态规划】累积和

题目地址

010 - Score Sum Queries

  • https://atcoder.jp/contests/typical90/tasks/typical90_j

问题描述

ABC 大学には N 人の一年生が在籍しています。クラスは 2 つあり、学籍番号 i 番の生徒のクラスは Ci_ii​ 組です。今日は期末試験が返却され、学籍番号 i 番の生徒の点数は Pi_ii​ 点でした。

以下の形式の質問が Q 個与えられます。j = 1, 2, …\dots…, Qそれぞれについて答えてください。

  • 学籍番号 Lj_jj​ ∼\sim∼ Rj_jj​ 番の 1 組生徒における、期末試験点数の合計
  • 学籍番号 Lj_jj​ ∼\sim∼ Rj_jj​ 番の 2 組生徒における、期末試験点数の合計
  • これら 2 つの値をそれぞれ求めよ。

制約

  • 1 ≤\leq≤ N ≤\leq≤ 100000
  • 1 ≤\leq≤ Ci_ii​ ≤\leq≤ 2
  • 0 ≤\leq≤ Pi_ii​ ≤\leq≤ 100
  • 1 ≤\leq≤ Q ≤\leq≤ 100000
  • 1 ≤\leq≤ Lj_jj​ ≤\leq≤ Rj_jj​ ≤\leq≤ N
  • 入力は全て整数

入力

入力は以下の形式で標準入力から与えられます。

N
C1 P1
C2 P2
⋮
CN PN
Q
L1 R1
L2 R2
⋮
LQ RQ

出力

学籍番号 Lj_jj​ ∼\sim∼ Rj_jj​番の 1 組生徒における期末試験点数の合計を Aj_jj​、学籍番号 Lj_jj​ ∼\sim∼ Rj_jj​ 番の 2 組生徒における期末試験点数の合計を Bj_jj​ として、以下の形式で出力してください。

A1 B1
A2 B2
⋮
AQ BQ

入力例 1

7
1 72
2 78
2 94
1 23
2 89
1 40
1 75
1
2 6

出力例 1

63 261

学籍番号 2 ∼\sim∼ 6 番の 1 組生徒における、期末試験合計点は 23+40=63 です。
また、学籍番号 2 ∼\sim∼ 6 番の 2 組生徒における、期末試験合計点は 78+94+89=261 です。


入力例 2

7
1 72
2 78
2 94
1 23
2 89
1 40
1 75
10
1 3
2 4
3 5
4 6
5 7
1 5
2 6
3 7
1 6
2 7

出力例 2

72 172
23 172
23 183
63 89
115 89
95 261
63 261
138 183
135 261
138 261

入力例 3

1
1 100
3
1 1
1 1
1 1

出力例 3

100 0
100 0
100 0

一方の組の生徒が存在しないケースもあります。


入力例 4

20
2 90
1 67
2 9
2 17
2 85
2 43
2 11
1 32
2 16
1 19
2 65
1 14
1 51
2 94
1 4
1 55
2 90
1 89
1 35
2 81
20
3 17
5 5
11 11
8 10
3 13
2 6
3 7
3 5
12 18
4 8
3 16
6 8
3 20
1 12
1 6
5 16
3 10
17 19
4 4
7 15

出力例 4

175 430
0 85
0 65
51 16
116 246
67 154
0 165
0 111
213 184
32 156
175 340
32 54
299 511
132 336
67 244
175 314
51 181
124 90
0 17
120 186

题解

小码匠

  • 很暴力,很超时,华丽丽掉进陷阱
  • 时间复杂度:ON
void coder_solution() {
    // 提升cin、cout效率
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n;
    cin >> n;
    vector<pair<int, long long >> c_p(n);
    for (int i = 0; i < n; i++) {
        cin >> c_p[i].first >> c_p[i].second;
    }
    int q;
    cin >> q;
    int temp, temp_2;
    long long dp_1 = 0;
    long long dp_2 = 0;
    for (int i = 0; i < q; i++) {
        cin >> temp >> temp_2;
        for (int j = temp - 1; j < temp_2; j++) {
            if (c_p[j].first == 1) {
                dp_1 += c_p[j].second;
            } else {
                dp_2 += c_p[j].second;
            }
        }
        cout << dp_1 << " " << dp_2 << endl;
        dp_1 = 0;
        dp_2 = 0;
    }
}

小码匠二次题解

  • AC
  • 时间复杂度:O+N
void best_solution() {
    // 提升cin、cout效率
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n;
    cin >> n;
    vector<long long> one(n + 1);
    vector<long long> tow(n + 1);
    one[0] = 0;
    tow[0] = 0;
    long long C, P;
    for(int i = 1; i <= n; i++) {
        cin >> C >> P;
        if(C == 1) {
            one[i] = one[i - 1] + P;
            tow[i] = tow[i - 1];
        } else {
            tow[i] = tow[i - 1] + P;
            one[i] = one[i - 1];
        }
    }
    int q;
    cin >> q;
    int L, R;
    for(int i = 0; i < q; i++) {
        cin >> L >> R;
        cout << one[R] - one[L - 1] << " " << tow[R] - tow[L - 1] << endl;
    }
}

待补知识点

  • 继续学习累积和
信奥赛CSP-J复赛集训(DP专题)(2):大朋友的数字 阅读详情

相关推荐

DINOv2 基于自定义数据集进行图片分类预测

(前提是安装好pytorch)1. pip安装2. 下载dinov2提供的预训练模型,需要自行前往网站上查找dinov2模型进行下载。模型需要下载三个文件:下载完成后将上述三个文件放置在本地一个名为dinov2_base的文件夹中即可。

sinat_34770838的博客 6665

Aizu 0558 Cheese

チーズ ()問題今年も JOI 町のチーズ工場がチーズの生産を始め,ねずみが巣から顔を出した.JOI 町は東西南北に区画整理されていて,各区画は巣,チーズ工場,障害物,空き地のいずれかである.ねずみは巣から出発して全てのチーズ工場を訪れチーズを 1 個ずつ食べる.この町には,N 個のチーズ工場があり,どの工場も1種類のチーズだけを生産している.チーズの硬さは工場によって異なっており,硬さ 1 から...

superkunn的博客 287

用Python玩转ROS机械臂:YOLO目标检测+MoveIt!自动抓取仿真教程

本文详细介绍了如何利用Python集成YOLO目标检测与ROS的MoveIt!运动规划库,实现机械臂的智能抓取仿真。通过Gazebo仿真环境,从视觉感知、坐标转换到运动规划与执行,构建了一套完整的自动化抓取系统,为机器人视觉抓取应用提供了可复现的实践方案。

ppp33的博客 552

入门级动态规划:2018年第九届蓝桥杯省赛B组第四题—测试次数( 摔手机 )

目录 下面列出用动态规划如何解决此问题 原题描述: x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。 各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。 x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。塔的每一层高度都是一样的,与地球上稍有不同的是,他们的...

Belous的博客 1万+

从星形到三角形:永磁同步电机FOC+SVPWM控制的相位偏移与扇区重构

本文深入探讨了将FOC+SVPWM控制方案从星形接法永磁同步电机移植到三角形接法时遇到的核心挑战。文章重点解析了由绕组连接方式差异导致的30度相位偏移问题,并详细阐述了如何为此重构扇区判断逻辑、矢量作用时间计算以及电流采样变换,为工程师提供了从理论到实践的完整移植指南。

ujm5678901的博客 544

FoundationPose实战:从零部署到Demo运行全记录

本文详细记录了FoundationPose从零部署到Demo运行的全过程,包括Ubuntu环境配置、项目部署、依赖安装及常见问题解决方案。特别针对复现过程中的关键步骤如CUDA版本选择、Eigen3安装等提供了实用技巧,帮助开发者高效完成FoundationPose的部署与调试。

weixin_27102543的博客 268

DP学习之装箱问题

CodeVS 1014 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。 要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。 INPUT: V N 每个物品的体积 OUTPUT: 箱子剩余空间 *********************************************华丽丽的分...

T3649907181的博客 287

1、硬件工程师笔面试真题汇总(2025版本)

答:按照使用习惯,电源指示灯用红色,信号指示灯用绿色这两种颜色的LED 灯技术最成熟,价格最便宜通孔是贯穿整个PCB 的过孔盲孔是从PCB 表层连接到内层的过孔埋孔是埋在PCB 内层的过孔。大多数PCB厂家的加工能力是这样的:大于等于8mil 的过孔可以做机械孔小于等于6mil 的过孔需要做激光孔对小于等于6mil 的微型孔,在钻孔空间不够时,允许一部分过打在PCB 焊盘上。

XU157303764的博客 2万+

经典算法题:数字三角形寻找最大路径

题目:数字三角形,从顶部出发,在每一结点可以选择向左走或得向右走,一直走到底层,要求找出一条路径,该路径上的数字和最大,输出这个最大值。(1)样例输入:第一行是数塔层数N(1&lt;=N&lt;=100)。第二行起,从一个数字按数塔图形依次递增,共有N层。51311 812 7 26 6 14 15 812 7 13 24 11思路:递归解决用二维数组 d[ l ][ r ] 存数字三角形 if ...

大树叶 技术专栏 3141

YOLOv5基于深度学习的道路缺陷检测系统

然而,由于长期的自然侵蚀、车辆磨损等因素,道路表面容易出现裂缝、坑洼等缺陷。这些缺陷不仅会影响驾驶舒适性,还可能引发交通事故,尤其是在恶劣天气或夜间行车条件下。随着人工智能技术的快速发展,基于深度学习的道路缺陷检测技术能够在降低人力成本的同时提高检测效率,为道路维护提供了新的解决方案。本项目构建了基于YOLOv5的道路缺陷检测系统,结合PyQt5开发了用户友好的UI界面,具备实时检测和图片分析功能。工具对图片进行标注,生成YOLO格式的标注文件。上传包含道路裂缝或坑洼的图片,系统会标注出缺陷的位置及类别。

YOLO 1076

DO-254标准详解:航空电子硬件设计保证指南全方位解析

RTCA DO-254, 也被称为《机载电子硬件设计保证指南》,是航空电子硬件设计和验证中的关键标准,旨在为确保机载电子硬件的安全性提供设计保证。自2000年首次发布以来,DO-254就成为了民航和军用飞机中电子硬件设计认证的基准文件。随着航空硬件技术的进步和日益复杂化,确保硬件设计的准确性、可靠性和安全性变得至关重要。本标准是由RTCA和EUROCAE共同开发的,适用于涉及机载硬件的航空公司、飞机制造商、供应商和认证机构。

qq_41854911的博客 3682

poj 3016 K-Monotonic 左偏树+动态规划

又是一个神奇而又优美的数据结构——左偏树 左偏树是什么?左偏树是一棵二叉树,是可合并的堆,它具有“左偏”的性质——简单地说就是左儿子比右儿子“长”,以来维持一定的效率 左偏树能做什么?刚才说了,左偏树是可合并的堆,堆能干的他基本都能干,而合并操作可以达到O(logn)的时间复杂度,而且作为可合并堆,左偏树的实现非常简单 具体的内容就不在这赘述了,百度上有很多更好的资料可以参考 题目

翊月之影 1443

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

[洛谷]P2008 大朋友的数字 (#动态规划 -1.3)

题目背景 在NOIP2013的赛场上,常神牛华丽丽的手残了,小朋友的数字一题只得了10分。于是,他要恶搞一下这道题。 题目描述 有一批大朋友(年龄15岁以上),他们每人手上拿着一个数字,当然这个数字只有1位,也就是0到9之间。每个大朋友的分数为在他之前的最长不下降子序列中所有数之和。(这个序列必须以它作为结尾!)如有多个最长不下降子序列,那么取编号字典序最小的。现在告诉你有n个大朋友,以及他...

A.pro的博客 453

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

数字三角形路径最小值c语言题目,经典算法题:数字三角形寻找最大路径

题目:数字三角形,从顶部出发,在每一结点可以选择向左走或得向右走,一直走到底层,要求找出一条路径,该路径上的数字和最大,输出这个最大值。(1)样例输入:第一行是数塔层数N(1<=N<=100)。第二行起,从一个数字按数塔图形依次递增,共有N层。51311 812 7 266 14 15 812 7 13 24 11思路:递归解决用二维数组 d[ l][ r] 存数字三角形if (...

weixin_35859737的博客 725

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

2018.3.4 2、bcatch

2.接苹果(bcatch.pas/c/cpp) 题目描述     很少有人知道奶牛爱吃苹果。农夫约翰的农场上有两棵苹果树(编号为 1 和 2),每一 棵树上都长满了苹果。奶牛贝茜无法摘下树上的苹果,所以她只能等待苹果从树上落下。但 是,由于苹果掉到地上会摔烂,贝茜必须在半空中接住苹果(没有人爱吃摔烂的苹果)。贝 茜吃东西很快,所以她接到苹果后仅用几秒钟就能吃完。      每一分钟,两棵苹果树其中...

chang_yl的博客 511

Codeforces Round #323 (Div. 2) D题 (LIS)

题目大意:给出一个数列,有n个数,往后循环T次,问最长非下降子序列 分析:由于T的范围过大,无法用普通的DP求解,需要稍微处理下。 首先,我们可以发现如果只遍历第一个序列,然后推后续的想法是错误的。因为处理中间那些段时,我们的取值不全都是1。所以我们要多处理至少100段。 然后,我们能够确定初始数列中出现次数最多的项,必定会在最长子序列中一直出现。 接着,就可以用普通的DP来求解这

Apple.Daily的专栏 500

洛谷P2008 大朋友的数字

五个人分数分别为 (1),(1+7),(1+5),(1+7+9)(1),(1+7),(1+5),(1+7+9) (还有一个 (1,5,9)(1,5,9)),(1+5+6)(1+5+6)。五个人分数分别为 (1),(1+2),(1+2+5),(1+2+3),(1+2+3+4)(1),(1+2),(1+2+5),(1+2+3),(1+2+3+4)。这样,每一步都会根据前一个元素的状态来更新当前元素的状态,最终得到每个位置的最长非递减子序列的和。对于 100%100% 的数据,1≤𝑛≤1041≤n≤104。

2301_81482480的博客 589

P2008 大朋友的数字【动态规划】

在 NOIP2013 的赛场上,常神牛华丽丽的手残了,小朋友的数字一题只得了10分。于是,他要恶搞一下这道题。

2302_80415058的博客 917

【NOIP】CODE[VS] 1044 拦截导弹 动态规划 序列型DP

NOIP 1999 ,上世纪的题233,有点久远但很经典qwqqq (扯淡)—————–华丽丽的分割线—————— 题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截

Loi_MeiCo の 博客 1005

Leetcode 139, Word Break

Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words. For example, given s = "leetcode", dict = ["leet"

nianhua120的专栏 286

NOIP2008 普及组T3 传球游戏 解题报告-S.B.S.

题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师在此吹哨子时,传球停止,此时,拿着球没有传出去的那个同学就是败者,要给大家表演一个节目。 聪明的小蛮提出一个有趣的问题:有多少种不同的

SBS的博客 1415

九度题目1528:最长回文子串

题目1528:最长回文子串 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:781 解决:239 题目描述: 回文串就是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。 回文子串,顾名思义,即字符串中满足回文性质的子串。 给出一个只由小写英文字符a,b,c...x,y,z组成的字符串,请输出其中最长的回文子串的长度。 输入:

程序猿之洞 1852

HDU 1176 免费馅饼 (DP+数塔问题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1176 题目大意:在一个0到10的闭区间中,会不定期有馅饼掉落,主角一开始在5号位置,他每秒只能移动一个位置,比如第一秒主角在5号位置,第二秒主角只能在4,5,6号位置。输入N组数据,问主角最大能接多少饼。 虽然一眼就看出来是用DP了,但一开始选择了记忆化搜索(因为最近都在用这个方法),然后华丽丽的...

Nero的博客 284
上一篇: 动态规划基础题(第1题):被变换的菲波那切数列
下一篇: 动态规划基础题(第3题):AC累积和
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小码匠和老码农

喜欢作者

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值