【AcWing题解/Google Kickstart2019 Round B Problem B】能量石

搞定ESD(七):静电放电问题典型案例分析(二) 静电放电噪声耦合的方式主要是:传导耦合与辐射耦合,辐射耦合主要以磁场耦合、 电场耦合为主要形式。电场耦合发生的主要条件是:静电放电高频在参考地平面寄生电感中产生电平波动,平行于参考地平面上的较长信号布线就很容易通过分布电容发生电场耦合。根据高速信号回流路径的特性可知,其回流路径是贴近信号布线下方,或者信号两侧,若信号回流路径跨分割后,环路面积会随之增大;信号环路面积大从EMI角度看其空间辐射更强,从EMS角度看则更容易耦合外部噪声干扰(雷击浪涌、EFT、ESD、RS)。 阅读详情

原题链接:https://www.acwing.com/problem/content/description/736/
难度:困难(?)
涉及知识点:01背包、贪心算法

题意分析

给定一些能量石,对于第 i i i 块能量石,其初始能量值为 E i E_i Ei​,每秒会减少 L i L_i Li​ 单位的能量,吃完这块能量石需要 S i S_i Si​ 秒并且会立刻得到这块能量石的能量。能量石的的能量最多降到 0,不会为负数。求杜达最后能获得多少能量。

分析与解决

这一题乍一看确实是没有思路的,但是我们细想一下,在基于闫氏DP思考法即在集合角度思考DP 问题时,往往是考虑了整个集合,那么存不存在一个子集,让我们的注意力都集中在某一个子集中呢?当然有,这个子集就是最优解子集。
考虑在最优解子集 a a a 中, 元素的排列为
a 1 , a 2 , a 3 , a 4 , a 5 , . . . , a n − 2 , a n − 1 , a n a_1,a_2,a_3,a_4,a_5,...,a_{n-2},a_{n-1},a_n a1​,a2​,a3​,a4​,a5​,...,an−2​,an−1​,an​
对于一组相邻的元素 a i a_i ai​ 和 a j a_j aj​,如果我先吃 a i a_i ai​ 再吃 a j a_j aj​,那么所获取的能量为 E i + E j − S i × L j E_i+E_j-S_i\times L_j Ei​+Ej​−Si​×Lj​;反之所获得的能量为 E j + E i − S j × L i E_j+E_i-S_j\times L_i Ej​+Ei​−Sj​×Li​,由于这是最优解子集,我们必然可以得出如下不等式
E i + E j − S i × L j ≥ E j + E i − S j × L i ① E_i+E_j-S_i\times L_j\geq E_j+E_i-S_j\times L_i① Ei​+Ej​−Si​×Lj​≥Ej​+Ei​−Sj​×Li​①
整理得
S i × L j ≤ S j × L i ② S_i\times L_j\leq S_j\times L_i ② Si​×Lj​≤Sj​×Li​②
逆向推理,也就是如果一个集合能够满足这两个不等式,就一定是最优解子集,那么我们就可以在输入数据出通过 s o r t sort sort 排序构造出最优解子集。然后在最优解子集里做 01 背包即可。

AC代码

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>

using namespace std;

const int N = 1e4 + 10;

struct Stone
{
    int s, e, l;
    bool operator< (const Stone &W) const
    {
        return s * W.l < l * W.s;
    }
}stone[N];
int T, n;
int f[N];

int main()
{
    cin >> T;
    
    for (int C = 1; C <= T; C++)
    {
        int m = 0;
        cin >> n;
        for (int i = 1; i <= n; i++)
        {
            int s, e, l;
            cin >> s >> e >> l;
            stone[i] = {s, e, l};
            m += s;
        }
        
        sort(stone + 1, stone + n + 1);
        
        memset(f, -0x3f3f3f3f, sizeof f);
        f[0] = 0;
        
        for (int i = 1; i <= n; i++)
        {
            int s = stone[i].s, e = stone[i].e, l = stone[i].l;
            for (int j = m; j >= s; j--)
            {
                f[j] = max(f[j], f[j - s] + e - (j - s) * l);
            }
        }
        
        int res = 0;
        for (int i = 0; i <= m; i++) res = max(res, f[i]);
        printf("Case #%d: %d\n", C, res);
    }
    return 0;
}
200、从反激到LLC:工程师的成长之路 文章摘要: 本文以工程师视角探讨从反激式到LLC电源设计的思维转变。通过48V通信电源故障案例,揭示LLC谐振电容ESR温度特性引发的隐患,强调LLC需精确计算与测试。对比反激与LLC的核心差异:反激需控制寄生参数(如漏感尖峰、电容ESR),而LLC的关键在于频率响应和死区时间优化。作者提出三大思维转变:从匝比计算转向增益曲线分析,从时域波形观察转向频域频谱诊断,从元件更换转向参数调整。最后给出实战建议,包括建立故障库、关注元件参数细节及示波器调试技巧,指出工程师需从"控制"思维升级为"谐振"思维,实现技术 阅读详情

相关推荐

Mathtype公式下标深度调整技巧:解决固定行距下的显示不全问题

本文针对在Word等文档中设置固定行距时,Mathtype公式下标显示不全的问题,提供了专业解决方案。核心在于调整Mathtype软件内部的“下标深度”参数,通过修改单个公式或批量格式化全文,使公式完美适配固定行距,确保下标清晰完整,且不影响文档整体排版。

pepsi的博客 1501

【刷题】动态规划——背包问题:能量石(Google Kickstart2019 Round B Problem B)【贪心,01背包,价值随体积增大而减小】

题目链接

qq_42581685的博客 489

别再手动调参数了!用3ds Max的tyDiffusion插件,5分钟搞定AI动态纹理生成

本文介绍了3ds Max的tyDiffusion插件如何通过AI技术快速生成动态纹理,大幅提升3D美术师的工作效率。从火焰、水流到布料飘动,tyDiffusion能在5分钟内完成传统手工需要数小时的任务,且效果更自然。文章详细解析了插件的核心功能、实战配置及进阶应用,帮助用户轻松实现AI动态纹理生成。

weixin_30919429的博客 670

Google Kickstart2019 Round B Problem B 能量石

思路是贪心加01背包 题目描述 岩石怪物杜达生活在魔法森林中,他在午餐时收集了 N 块能量石准备开吃。 由于他的嘴很小,所以一次只能吃一块能量石。 能量石很硬,吃完需要花不少时间。 吃完第 i 块能量石需要花费的时间为 Si 秒。 杜达靠吃能量石来获取能量。 不同的能量石包含的能量可能不同。 此外,能量石会随着时间流逝逐渐失去能量。 第 i 块能量石最初包含 Ei 单位的能量,并且每秒将失去 Li 单位的能量。 当杜达开始吃一块能量石时,他就会立即获得该能量石所含的全部能量(无论实际吃

qq_33269561的博客 377

在Matlab中开发AutoSAR模型的流程(自下而上)

前面介绍了AutoSAR软件组件开发的两种方式,其中自下向上的方式,是从模型出发,流程如下。

小胡同学的工程师学习之路 5367

量化实战:如何用Barra多因子模型给你的投资组合做一次‘风险体检’?

本文详细介绍了如何利用Barra多因子模型对投资组合进行全面的风险体检,帮助投资者识别行业和风格因子的风险暴露。通过实战案例和Python代码示例,展示了数据采集、风险归因和组合优化的完整流程,提升投资组合的风险调整收益。

weixin_27215337的博客 323

Kick Start 2019 round B 题解

A. Building Palindromes easy code : github B. Energy Stones knapstack 变种. 题意 nnn 块石头,每块石头有 3 个参数, 初始能量 eee, 每秒能量损失 lll, 吃完所需要的时间 sss, 若石头能量损失到0,或者负数,该石头能量为0. 求吃完说有石头所能够得到的最大能量值 link :https://codingco...

taotao 的大学墓志 972

golang 线上事故

golang 线上事故 最近公司要做大促的一些活动。并且单量,qps持续上涨。之前使用的是django python 语言做的一个服务端。目前已经部署的国家里面最多的国家会有300+个实例。大促期间还可能会增加一个实例数。这么多的实例部署,回滚的时间都会特变长,除了问题也不好定位。并且如此多的一个机器,连接数* 实例数也会导致DB等其他服务扛不住这么大的并发。所以决定上go服务解决性能问题。 ...

lcf枫的博客 1537

Google Kickstart2019 Round B Energy Stones

Google Kickstart2019 Round B Problem B problem: 解题思路 一种较优秀的解法(贪心 + 背包dp) 假设最优解的能量石排列长度为k(1<=k<=n)k(1<=k<=n) 因为去掉了那些没有贡献的宝石,位置为: a1,a2,a3…aka1,a2,a3…ak。 那么对于任意两个位置i=al,j=al+1(1<=l<k)i=al,j=al+1(1<=l<k) 交换后两个宝石的贡献总和不会变得更大,即(假设之前的总时间

aconacon的博客 344

延迟相乘叠加求和 DMAS (Field II 仿真代码)

(Delay Multiply and Sum, DMAS)算法,最初是为雷达微波系统设计的,研究者们对 DMAS 波束合成方法进行了修改,并应用超声成像。结果表明,DMAS 波束合成在模拟和实验中的表现都优于传统的延时叠加(Delay and Sum, DAS),这种新方法带来的主要改进是对比度分辨率明显提高(即主瓣和侧瓣更窄),从而增加了动态范围,提高了 B 型超声图像质量。与传统 DAS 相似,DMAS 算法通过对来自超声换能器阵元的信号应用几何计算延迟来聚焦接收到的波束。

weixin_38452364的博客 3083

RT-DETR改进前必看 - Ultralytics调参 1:1还原RT-DETR官方版本实验环境,更方便改进

的项目文件中集成了YOLOv3v5v6v8v9v10rt-detr11以及其中不同大小的模型结构,更方便我们学习和使用。的参数配置在路径下,其中中设置了模型在训练Train验证Val/Test预测Predict可视化Visualize导出Export超参数Hyperparameters、以及跟踪Tracker的相关参数。在调参过程中主要涉及训练Train和超参数Hyperparameters。下面主要介绍一下初始超参数Hyperparameters。

Limiiiing的博客 7962

Problem B. Paragliding Google Kickstart Round D 2018

获取气球时只能向下45°滑行而不能向上滑。对于每一个Tower a和气球b,如果abs(p[a]-x[b])&lt;=h[a]-y[b]则可以取到气球,小数据直接N^2枚举即可。 大数据必然是O(N)的,但开始也没发现什么类似单调性的规律去减少枚举。一直在纠结如果离气球b最近的tower a无法获得气球,而更远的tower c可以获得气球a该如何处理,这样很难减少枚举上限。&gt;&lt;后来得...

TimeForMiracles 507

2026年经典爬虫案例专栏|第17篇:学术论文爬虫实战——知网与万方数据采集

字段名说明数据类型title论文标题字符串authors作者列表列表abstract摘要字符串keywords关键词列表列表journal发表期刊字符串year发表年份整数volume卷号字符串issue期号字符串pages页码范围字符串citations引用次数整数downloads下载次数整数doiDOI编号字符串url论文链接字符串学术论文爬虫是科研工作的重要辅助工具,可以帮助研究人员高效地收集和管理论文数据。

2201_76125261的博客 1062

Problem B. Center Google Kickstart Round B 2017

这一题第一眼看到就感觉很像三分搜索。先考虑一个简单的版本,加入center的X坐标固定,那么Y坐标从1000到-1000移动,对于某一个点(Xi,Yi),对应的cost fi(Y)=max(|X-Xi|,|Y-Yi|)*Wi是先减小,到达max(|X-Xi|,|Y-Yi|)=|X-Xi|后变成一个常数,再增大。是一个凹函数。对于每个点的变化规律都是如此,那么所有点的cost加起来也是凹函数。int

TimeForMiracles 1553

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Google Kickstart2019 Round B Energy Stones 贪心 + dp

一、内容 二、思路 首先我们需要获取能量的最大值,可以把时间看作花费,能量看做价值,那么就是在一堆物品中选取出价值最多的01背包问题。 但是由于价值会根据时间而变化,暴力的方法就是枚举所有可能的顺序,每个顺序进行一次01背包,但是时间肯定不允许,所以我们进行贪心。 首先我们设第i, i + 1个物品的属性分别为 Si, Ei, Li 和 Si+1, Ei+1, Li+1 那么我们...

Tizzi的博客 831

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Problem B. Milk Tea Google Kickstart Round E 2018

题意:给定N个二进制数,求出一个二进制数使得其和N个二进制数的complaint之和最小。complaint=不相同的bit的个数。另外有M个constraint,求出的二进制数不能出现在constraint中。 如果没有constraint,最优解opt贪心即可求出来。假设sum[p]是N个二进制数bit p的1的个数之和,那么opt[p]=max(sum[p],N-sum[p])。 入手点...

TimeForMiracles 973

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Google Kickstart2019 Round B Problem B Energy Stones 贪心+DP

题目描述 岩石怪物杜达生活在魔法森林中,他在午餐时收集了N块能量石准备开吃。 由于他的嘴很小,所以一次只能吃一块能量石。 能量石很硬,吃完需要花不少时间。 吃完第 i 块能量石需要花费的时间为Si秒。 杜达靠吃能量石来获取能量。 不同的能量石包含的能量可能不同。 此外,能量石会随着时间流逝逐渐失去能量。 第 i 块能量石最初包含Ei单位的能量,并且每秒将失去Li单位的能量。 当杜达开始吃一块能量...

正月看雪花的博客 447

Problem B. Combining Classes Google Kickstart Round G 2018

题意:每个班级的分数是[L_i,R_i],区间内的分数有且只有一个。一共N个班级,有Q个query,问第K高的分数是多少。 有点类似于区间合并问题。先将区间转成左闭右开的[l,r),从小到大排序后扫描区间,遇到左端点+1,遇到右端点-1,扫描之后就得知每个点被几个区间覆盖了。 然后再求后缀和,对于每个点x,suffixsum[x]表示分数&gt;=x的个数。通过二分搜索lower_bound可...

TimeForMiracles 646

AcWing 734 能量石 题解 (动态规划—DP—背包问题)

原题链接 #include<bits/stdc++.h> using namespace std; const int N =110, M = 10010; int n; int f[N][M]; struct Stone{ int s, e, l; }stone[N]; bool cmp(Stone a, Stone b){ return a.s * b.l < b.s * a.l;//在吃a消耗的时间内b消耗的能量小于,吃b时间内a消耗的能量,就将a排在b前面,这样可以使

qiaodxs的博客 288

AcWing 734 能量石

题目描述: 岩石怪物杜达生活在魔法森林中,他在午餐时收集了N块能量石准备开吃。 由于他的嘴很小,所以一次只能吃一块能量石。能量石很硬,吃完需要花不少时间。 吃完第 i 块能量石需要花费的时间为Si秒。杜达靠吃能量石来获取能量。不同的能量石包含的能量可能不同。 此外,能量石会随着时间流逝逐渐失去能量。第 i 块能量石最初包含Ei单位的能量,并且每秒将失去Li单位的能量。 当杜达开始吃一块能...

昂昂累世士的博客 492

能量石

思路 这道题思路是一个贪心加dp的方法,怎么贪心是一个问题,贪心是对于一个问题发现它的性质,然后简化问题的一个思想,所以我们要看看题目到底有什么性质可以用。 对于两块能量石 i 和 i+1 先吃 i 的能吃到的能力为 e(i)+e(i+1)-s(i) * l(i-1), 后吃 i 号能量石的能量为e(i)+e(i+1)-s(i+1) * l(i) 这样比较下来 当s(i) * l(i-1) &l...

萌新的博客 518

【背包问题】能量石

【DP】能量石

Tanzq的博客 336

734 能量石(贪心 + 零一背包问题)

1. 问题描述: 岩石怪物杜达生活在魔法森林中,他在午餐时收集了 N 块能量石准备开吃。由于他的嘴很小,所以一次只能吃一块能量石。能量石很硬,吃完需要花不少时间。吃完第 i 块能量石需要花费的时间为 Si 秒。杜达靠吃能量石来获取能量。不同的能量石包含的能量可能不同。此外,能量石会随着时间流逝逐渐失去能量。第 i 块能量石最初包含 Ei 单位的能量,并且每秒将失去 Li 单位的能量。当杜达开始吃一块能量石时,他就会立即获得该能量石所含的全部能量(无论实际吃完该石头需要多少时间)。能量石中包含的能量最多降低

二哈 408

能量石(dp+贪心)

思路:我们假设最优解的选择是a1,a2…an,对于任意的2个石头我调换吃的顺序假设调换后贡献增大对应i,j位置i<j,假设之前的总耗时是t可以发现Ei−t∗Li+Ej−(t+Si)∗Lj>Ei+Ej−t∗Lj−(t+Sj)∗LiEi-t*Li+Ej-(t+Si)*Lj>Ei+Ej-t*Lj-(t+Sj)*LiEi−t∗Li+Ej−(t+Si)∗Lj>Ei+Ej−t∗Lj−(t+Sj)∗Li化简后得Si∗Lj<=Sj∗LiSi*Lj<=Sj*LiSi∗Lj<=...

Ray.C.L的博客 719

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 232

【算法拾光】链表 哈希表|K个一组翻转链表 + 两数之和

K个一组翻转链表需分段反转,借助哑节点与前驱指针维护连接,避免断链;两数之和利用哈希表实现O(1)查找,空间换时间,高效定位目标组合。前者考察链表指针操作,后者聚焦映射关系构建,均为面试高频题。

wuqingyigexiaoba的博客 318
上一篇: 【洛谷题解/AcWing题解/NOIP2006提高组】P1064/AcWing481 金明的预算方案
下一篇: 【洛谷题解/AcWing题解/SCOI2005】P1896/AcWing1064 互不侵犯
oier_Asad.Chen
博客等级 码龄7年 15粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

oier_Asad.Chen

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值