F. Rain and Umbrellas (dp)

本文解析了F.RainandUmbrellas问题,采用动态规划方法求解带伞行走的最小疲劳值。阐述了如何处理降雨区间与伞分布的数据,并通过实例代码展示了算法实现细节。
题目链接:F. Rain and Umbrellas
题意:

给出一段区间[0,a],这个区间上有部分子区间是下雨的,通过该区间需要有伞,区间上有部分点的位置有伞,每把伞有对应的重量,疲劳值的拿伞的路程*伞的重量,问通过该区间最小疲劳值。

思路:

这题用dp,dp[i]表示到i点的最小疲劳值,rain[i]表示i点是否下雨,0没下雨,1下雨。ub[i]表示i点是否有伞。直接存伞的重量,注意,一个点可能有多把伞,因此我们要存最小的重量的伞。
如果该点没有雨:dp[i]=dp[i-1]
该点下雨的话:dp[i]=min(dp[i],dp[j]+ub[j]*(i-j)) j从0遍历到i-1;
最后dp[a]就是最后答案。
注意:
1.有可能无法通过,先判断第一把伞的位置,如果第一把伞的位置大于第一段下雨区间,就无法通过,不然就肯定能通过;
2.区间处理,比如3-7,要么全部左开右闭,要么左闭右开。

代码:

#include<iostream>
#include<vector>
#include<cstring>
#include<string>
using namespace std;
const long long INF=0x3f3f3f3f;
int vis[2005],ub[2005],dp[2005];
int main()
{
    memset(vis,0,sizeof(vis));
    memset(ub,0,sizeof(ub));
    memset(dp,INF,sizeof(dp));
    int n,a,m,i,j,l,r;
    cin>>a>>n>>m;
    for(i=0;i<n;++i)
    {
        cin>>l>>r;
        //标记下雨区间,我是采取左开右闭
        for(j=l+1;j<=r;++j)
        vis[j]=1; 
    }
    //处理雨伞重量
    for(i=0;i<m;++i)
    {
        cin>>l>>r;
        if(!ub[l])ub[l]=r;
        else if(ub[l]>r)ub[l]=r;
    }
    dp[0]=0;
    for(i=0;i<=a;++i)
    {
        if(!vis[i])
        dp[i]=dp[i-1];
        else{
            for(j=0;j<=i;++j)
            {
            //该点下雨的话,dp求最小值。
                if(ub[j])
                {

                    dp[i]=min(dp[i],dp[j]+(i-j)*ub[j]);
                }
            }
        }
    }
    if(dp[a]==INF)cout<<-1;
    else cout<<dp[a];
    return 0;
}
【电力系统】单机无穷大电力系统短路故障暂态稳定Simulink仿真(带说明文档)内容概要:本文档围绕“单机无穷大电力系统短路故障暂态稳定Simulink仿真”展开,提供了完整的仿真模型与说明文档,重点研究电力系统在发生短路故障后的暂态稳定性问题。通过Simulink搭建单机无穷大系统模型,模拟不同类型的短路故障(如三相短路),分析系统在故障期间及切除后的动态响应,包括发电机转子角度、转速、电压和功率等关键参数的变化,进而评估系统的暂态稳定能力。该仿真有助于理解电力系统稳定性机理,掌握暂态过程分析方法。; 适合人群:电气工程及相关专业的本科生、研究生,以及从事电力系统分析、运行与控制工作的科研人员和工程师。; 使用场景及目标:①学习电力系统暂态稳定的基本概念与分析方法;②掌握利用Simulink进行电力系统建模与仿真的技能;③研究短路故障对系统稳定性的影响及提高稳定性的措施(如故障清除时间优化);④辅助课程设计、毕业设计或科研项目中的系统仿真验证。; 阅读建议:建议结合电力系统稳定性理论知识进行学习,先理解仿真模型各模块的功能与参数设置,再运行仿真并仔细分析输出结果,尝试改变故障类型或系统参数以观察其对稳定性的影响,从而深化对暂态稳定问题的理解。
本研究聚焦于运用MATLAB平台,将支持向量机(SVM)应用于数据预测任务,并引入粒子群优化(PSO)算法对模型的关键参数进行自动调优。该研究属于机器学习领域的典型实践,其核心在于利用SVM构建分类模型,同时借助PSO的全局搜索能力,高效确定SVM的最优超参数配置,从而显著增强模型的整体预测效能。 支持向量机作为一种经典的监督学习方法,其基本原理是通过在高维特征空间中构造一个具有最大间隔的决策边界,以实现对样本数据的分类或回归分析。该算法擅长处理小规模样本集、非线性关系以及高维度特征识别问题,其有效性源于通过核函数将原始数据映射至更高维的空间,使得原本复杂的分类问题变得线性可分。 粒子群优化算法是一种模拟鸟群社会行为的群体智能优化技术。在该算法框架下,每个潜在解被视作一个“粒子”,粒子群在解空间中协同搜索,通过不断迭代更新自身速度与位置,并参考个体历史最优解和群体全局最优解的信息,逐步逼近问题的最优解。在本应用中,PSO被专门用于搜寻SVM中影响模型性能的两个关键参数——正则化参数C与核函数参数γ的最优组合。 项目所提供的实现代码涵盖了从数据加载、预处理(如标准化处理)、基础SVM模型构建到PSO优化流程的完整步骤。优化过程会针对不同的核函数(例如线性核、多项式核及径向基函数核等)进行参数寻优,并系统评估优化前后模型性能的差异。性能对比通常基于准确率、精确率、召回率及F1分数等多项分类指标展开,从而定量验证PSO算法在提升SVM模型分类能力方面的实际效果。 本研究通过一个具体的MATLAB实现案例,旨在演示如何将全局优化算法与机器学习模型相结合,以解决模型参数选择这一关键问题。通过此实践,研究者不仅能够深入理解SVM的工作原理,还能掌握利用智能优化技术提升模型泛化性能的有效方法,这对于机器学习在实际问题中的应用具有重要的参考价值。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
用c++:# P13022 [GCJ 2021 Qualification] Moons and Umbrellas ## 题目描述 Cody-Jamal 正在创作他最新的抽象艺术作品:一幅由一排渐亏的月亮和闭合的雨伞组成的壁画。不幸的是,贪婪的版权流氓声称渐亏的月亮看起来像大写字母 C,而闭合的雨伞看起来像字母 J,并且他们拥有 CJ 和 JC 的版权。因此,每当壁画中出现 CJ 时,Cody-Jamal 必须支付 $\mathbf{X}$,而出现 JC 时则需支付 $\mathbf{Y}$。 ![](https://cdn.luogu.com.cn/upload/image_hosting/sqo2l8si.png) Cody-Jamal 不愿让他们破坏自己的艺术,因此不会更改已经画好的部分。但他决定,可以通过策略性地填充尚未完成的空白部分来最小化版权费用。 例如,如果 `CJ?CC?` 表示壁画的当前状态,其中 `C` 代表渐亏的月亮,`J` 代表闭合的雨伞,而 `?` 代表需要填充为渐亏月亮或闭合雨伞的空白部分。他可以将壁画完成为 `CJCCCC`、`CJCCCJ`、`CJJCCC` 或 `CJJCCJ`。第一种和第三种选择需要支付 $\mathbf{X} + \mathbf{Y}$ 的版权费用,而第二种和第四种则需要支付 $2 \cdot \mathbf{X} + \mathbf{Y}$。 给定费用 $\mathbf{X}$ 和 $\mathbf{Y}$ 以及一个表示壁画当前状态的字符串,如果 Cody-Jamal 以最小化成本的方式完成壁画,他需要支付多少版权费用? ## 输入格式 输入的第一行给出测试用例的数量 $\mathbf{T}$。接下来是 $\mathbf{T}$ 行。每行包含两个整数 $\mathbf{X}$ 和 $\mathbf{Y}$ 以及一个字符串 $\mathbf{S}$,分别表示两项费用和壁画的当前状态。 ## 输出格式 对于每个测试用例,输出一行 `Case #x: y`,其中 $x$ 是测试用例编号(从 1 开始),$y$ 是 Cody-Jamal 在完成壁画后需要支付的最小版权费用。 ## 输入输出样例 #1 ### 输入 #1 ``` 4 2 3 CJ?CC? 4 2 CJCJ 1 3 C?J 2 5 ??J??? ``` ### 输出 #1 ``` Case #1: 5 Case #2: 10 Case #3: 1 Case #4: 0 ``` ## 输入输出样例 #2 ### 输入 #2 ``` 1 2 -5 ??JJ?? ``` ### 输出 #2 ``` Case #1: -8 ``` ## 说明/提示 **样例解释** 样例 #1 是题目描述中解释的情况。最小费用为 $\mathbf{X} + \mathbf{Y} = 2 + 3 = 5$。 在样例 #2 中,Cody-Jamal 已经完成了壁画,因此无法选择。壁画中有两个 `CJ` 和一个 `JC`。 在样例 #3 中,无论是将 `?` 替换为 `C` 还是 `J`,都会在第二和第三个字符或第一和第二个字符之间形成一个 `CJ`。 在样例 #4 中,Cody-Jamal 可以将壁画全部填充为 `J`。由于这既不包含 `CJ` 也不包含 `JC`,因此不需要支付版权费用。 以下附加样例 2 符合测试集 3 的限制,但不会在提交的解决方案中运行。 在测试集 3 的样例 #1 中,Cody-Jamal 可以最优地将壁画完成为 `JCJJCC` 或 `JCJJJC`。无论哪种方式,壁画中都有一个 `CJ` 和两个 `JC`。 **数据范围** - $1 \leq \mathbf{T} \leq 100$。 - $\mathbf{S}$ 中的每个字符为 $\mathbf{C}$、$\mathbf{J}$ 或 $\mathbf{?}$。 **测试集 1(5 分,可见判定结果)** - $1 \leq \mathbf{S}$ 的长度 $\leq 10$。 - $1 \leq \mathbf{X} \leq 100$。 - $1 \leq \mathbf{Y} \leq 100$。 **测试集 2(11 分,可见判定结果)** - $1 \leq \mathbf{S}$ 的长度 $\leq 1000$。 - $1 \leq \mathbf{X} \leq 100$。 - $1 \leq \mathbf{Y} \leq 100$。 **额外奖励!** 如果某些版权持有者反而会支付 Cody-Jamal 广告费而不是向他收费呢?Cody-Jamal 获得报酬的情况用负成本表示。 **测试集 3(1 分,隐藏判定结果)** - $1 < \mathbf{S}$ 的长度 $< 1000$。 - $-100 \leq \mathbf{X} \leq 100$。 - $-100 \leq \mathbf{Y} \leq 100$。 翻译由 DeepSeek V3 完成
07-07
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值