hihocoder #1500 : EL SUENO 树DP

本文探讨了一个游戏中的优化问题,即如何以最低成本成功刺杀游戏内的邪恶组织领袖ELSUENO。通过建立树状结构来表示目标间的上下级关系,并利用01背包算法优化刺杀路径与成本。

#1500 : EL SUENO

时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

In a video game, Little Hi is going to assassinate the leader of an evil group, EL SUENO.

There are N high-value targets in the group, numbered from 1 to N. Each target has another target as his direct superior except for EL SUENO who has no superior. So the superior-subordinate hierarchy forms a tree-like structure. EL SUENO is at the root.

The cost of assassinating the i-th target is Ci. Before assassinating a target Little Hi has to obtain enough information about him. For the i-th target, Little Hi needs INi units of information. By assassinating a target Little Hi will obtain some information about the target's direct superior. More specifically, the i-th target has IPi units of information about his superior. So in order to assassinate EL SUENO, Little Hi needs to assassinate some of his direct subordinates so that the sum of information obtained is enough; assassinating the subordinates needs to assassinate their direct subordinates ... until it reaches some targets require zero information in advance. (Luckily if a target has no subordinate he always requires zero information.)

How Little Hi wants to know what is the minimum cost for successful assassinating EL SUENO.  

输入

The first line contains an integer N.

Then follow N lines. Each line describes a target with 4 integers, Fi, INi, IPi, Ci.  

Fi is i-th target's superior. For EL SUENO his Fi is zero.

INi is the amount of information needed to assassinate the i-th target. For a target has no subordinates his INi is always zero.

IPi is the amount of information the i-th target has about his superior Fi.

Ci is the cost of assassinating the i-th target.

For 30% of the data, 1 <= N <= 10, 0 <= INi, IPi <= 100

For 60% of the data, 1 <= N <= 100, 0 <= INi, IPi <= 1000

For 100% of the data, 1 <= N <= 2000, 0 <= Fi <= N, 0 <= INi, IPi <= 20000, 1 <= Ci <= 1000.

It is guaranteed that the N targets form a tree structure.

输出

The minimum cost. If Little Hi is not able to assassinate EL SUENO output a number -1.

样例输入
6
2 1 2 2
0 4 0 2
2 0 2 5
2 0 2 6
1 0 1 2
1 0 1 3
样例输出
11
.

.

题意:

输入 F,IN,IP,C数组

n个人构成一个树的关系,要杀死第i个人 必须要in[i]的储蓄值,而这个值只能从杀死他的后代来得到,每杀死一个后代,能对其直接祖先贡献IP[i]的储蓄值

恩 还有杀死一个人要额外代价C[i]

最后问你杀死根节点的最小代价是多少


每一层直接做01背包

注意 这个和裸的01背包有点微小的不同是,我们枚举容量j的时候当遇到J<volume[i] 时,也就是放不下了时,我们就可以停止循环了

而在本题中j<ip[i]时,也就是这个人的贡献值超过了所需要的储蓄值时,我们还需要更新答案,这种情况是合法的,仅此不同。


#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2005;
vector<int > mp[N];
ll n;
ll f[N];
ll in[N];
ll ip[N];
ll c[N];
ll dfs(int x)
{
    ll dp[20020];
    dp[0]=0;
    for(int i=1;i<=in[x];i++)dp[i]=1e16;
    for(int i=0;i<mp[x].size();i++)
    {
        int v=mp[x][i];
        ll tmp=dfs(v);
        for(int j=in[x];j>0;j--)
            dp[j]=min(dp[j],dp[max(j-ip[v],0LL)]+c[v]+tmp);
    }
    return dp[in[x]];
}
int main()
{

    int n;
    cin>>n;
    int root;
    for(int i=1;i<=n;i++)
    {
        cin>>f[i]>>in[i]>>ip[i]>>c[i];
        if (!f[i])root=i;
        mp[f[i]].push_back(i);
    }
    ll ans=dfs(root);
    if (ans>=1e16) cout<<-1<<endl;
    else
    cout<<ans+c[root]<<endl;
    return 0;
}



【采用BPSK或GMSK的Turbo码】MSK、GMSK调制二比特差分解调、turbo+BPSK、turbo+GMSK研究(Matlab代码实现)【采用BPSK或GMSK的Turbo码】MSK、GMS内容概要:本文主要介绍了采用BPSK或GMSK调制方式的Turbo码相关技术研究,重点涵盖GMSK调制下的二比特差分解调方法、Turbo码与BPSK/GMSK调制相结合的系统性能分析,并提供了完整的Matlab代码实现方案。研究内容包括调制解调原理、编码结构设计、误码率仿真及系统优化等关键环节,旨在通过仿真手段验证所提出方案的有效性和可靠性,帮助研究人员深入理解现代数字通信系统中的关键技术和其实现方法。; 适合人群:具备一定通信原理和Matlab编程基础,从事无线通信、信号处理、编码理论等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握GMSK调制与Turbo码结合的系统设计与仿真方法;②学习二比特差分解调算法在实际通信系统中的应用;③通过Matlab代码实现提升对数字调制解调和信道编码技术的理解与实践能力;④为相关课题研究、毕业设计或工程项目提供参考和技术支持。; 阅读建议:建议读者结合文中提供的Matlab代码逐模块运行与调试,对照通信系统基本原理深入理解各环节功能,重点关注调制解调过程与Turbo译码的协同工作机制,并尝试修改参数以观察系统性能变化,从而达到理论与实践相结合的学习效果。
代码转载自:https://pan.quark.cn/s/a4b39357ea24 LA 1010 逻辑分析仪被视作一种效能卓越的数字信号分析设备,其核心功能在于对数字通信协议,例如I²C,进行检测与解构。本资源将集中阐述LA 1010的操作流程以及如何借助该设备对I²C协议的波形展开分析。 确保逻辑分析仪被正确地连接至目标系统是极为关键的环节。在运用LA 1010的过程中,必须将分析仪的通道0与通道1分别对应连接至目标装置的SCL(时钟)与SDA(数据)线路。务必保证连接的稳固性且无任何干扰因素,以此确保数据采集的精确度。 随后,需要设定采样参数。采样频率对于能否成功捕捉到信号具有决定性的作用。针对I²C协议,通常选用的采样频率范围介于100kHz到400kHz之间,这一范围的选择取决于实际应用场景中I²C总线的运行速度。然而,LA 1010所能达到的最高采样速率可能高达500MHz,因此需要根据具体需求进行相应的调整。此外,还必须精心挑选适配目标设备工作电压的电压等级,例如3.3V、5V或1.8V。 在软件操作层面,需要选取恰当的通道与协议种类,即I²C。一旦启动采样,逻辑分析仪便开始记录相关数据。软件界面通常会实时展示波形图,为观察与分析提供便利。 关于I²C协议波形的解读,我们可以遵循以下步骤: 1. 总线处于空闲状态时:SCL与SDA均维持在高电平位置,这表明总线当前未进行数据传输。 2. 传输起始信号:当SCL处于高电平期间,SDA线从高电平转换至低电平,此动作标志着数据传输的开始。 3. 地址、数据及应答的识别:在每一个SCL高电平脉冲的持续时间内,SDA线上的电平状态代表了数据位。地址与数据的传输均为双向过程,而读写标识则由SDA线上的电平来...
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 在当前文档中,我们将详细研究在C#开发平台中借助BouncyCastle.Crypto库1.8.10版本达成中国的国家标准密码学方案,涵盖SM2、SM3以及SM4这几项技术。这些密码学方案在中国网络安全保障与数据维护领域具有核心地位,为本地化安全解决方案提供了坚实的技术支撑。 让我们首先掌握这三个国家密码算法的基本原理: 1. **SM2算法**:SM2是一种基于椭圆曲线密码体系(ECC)的公钥加密方案,主要用于数字签名和加密操作。它提供了一种高效且安全的身份确认和数据防护机制。 2. **SM3算法**:SM3是一种密码学哈希函数,与SHA-256类似,能够将任意长度的输入信息压缩为固定长度的摘要,常用于数据完整性的检验和确认。 3. **SM4算法**:SM4是一种分组密码方案,采用128位的分组大小和128位的密钥,适用于对称加密,广泛用于无线网络传输和存储数据的加密处理。 接下来,我们将逐步解析如何运用BouncyCastle.Crypto库在C#环境下实现这些密码学方案: **1. 引入库与配置开发环境** 在C#应用程序中,需要通过NuGet包管理工具或手动方式添加BouncyCastle库的引用。务必确保安装的是1.8.10版本。 ```csharp using Org.BouncyCastle.Crypto; using Org.BouncyCastle.Crypto.Parameters; using Org.BouncyCastle.Security; ``` **2. 实施SM2的加签与解签** SM2的签名过程和验证操作涉及椭圆曲线运算。必须创建一个私...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值