bzoj1492 货币兑换Cash

ccproxy 6.61 注册机(纯绿/傻瓜/真正去除线程限制) 导读:   软件介绍   1、 CCPROXY 6.61 注册机(纯绿/傻瓜/真正去除线程限制)   ***前言,这次的升级官方改动不大,据说只是为了不被某些软件当病毒***   附件包中解压即免安装版,CcREGTOOLFF.exe为注册机。   本人继续向大家隆重推出《CCPROXY6.61哎呀……破解版》   还是那个提示:   在此之前,本人还是那句老话想提示大家,CCPROXY是 阅读详情

题目:点击打开链接

思路:

令f[i]表示第i天的最大获利,fx[i]表示在第i天最多拥有几张A券,fy[i]表示对应的B券,那么
f[i]=max{fx[j]*a[i]+fy[j]*b[i]}。另外,有fy[i]=f[i]/(a[i]*rate[i]+b[i]) fx[i]=fy[i]*rate[i]。
令fx[j]<fx[k]且k比j更优的条件为:
 fx[j]*a[i]+fy[j]*b[i]<fx[k]*a[i]+fy[k]*b[i],移项化简得:(fy[k]-fy[j])/(fx[k]-fx[j])>-a[i]/b[i]。令左边的为k(i,j),于是我们可以维护一个凸包使k单调递减。由于-a[i]/b[i]不具有单调性因此只能在凸包中进行二分查找。

代码:

#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<list>
#include<numeric>
using namespace std;
#define PI acos(-1.0)
#define LL long long
#define ULL unsigned long long
#define INF 0x3f3f3f3f
#define mm(a,b) memset(a,b,sizeof(a))
#define PP puts("*********************");
template<class T> T f_abs(T a){ return a > 0 ? a : -a; }
template<class T> T gcd(T a, T b){ return b ? gcd(b, a%b) : a; }
template<class T> T lcm(T a,T b){return a/gcd(a,b)*b;}
// 0x3f3f3f3f3f3f3f3f
// 0x3f3f3f3f

const double eps=1e-9;
const int maxn=120000;
struct Query{
    double a,b,rate,k;
    int pos;
}q[maxn],nq[maxn];
struct Point{
    double x,y;
    bool operator<(const Point &rhs)const{
        return x<rhs.x+eps||(f_abs(x-rhs.x)<=eps&&y<=rhs.y+eps);
    }
}p[maxn],np[maxn];
int stk[maxn];
double f[maxn];
double getk(int i,int j){
    if(i==0) return -INF;
    if(j==0) return INF;
    if(f_abs(p[i].x-p[j].x)<=eps) return -INF;
    return (p[i].y-p[j].y)/(p[i].x-p[j].x);
}
void cdq(int L,int R){
    if(L==R){
        f[L]=max(f[L-1],f[L]);
        p[L].y=f[L]/(q[L].a*q[L].rate+q[L].b);
        p[L].x=p[L].y*q[L].rate;
        return;
    }
    int mid=(L+R)/2,sz1=L,sz2=mid+1;
    for(int i=L;i<=R;i++)
        if(q[i].pos<=mid) nq[sz1++]=q[i];
        else nq[sz2++]=q[i];
    for(int i=L;i<=R;i++) q[i]=nq[i];
    cdq(L,mid);
    int top=0;
    for(int i=L;i<=mid;i++){//构造上凸壳
        while(top>=2&&getk(i,stk[top])+eps>getk(stk[top],stk[top-1]))
            top--;
        stk[++top]=i;
    }
    int j=1;
    for(int i=R;i>mid;i--){
        while(j<top&&q[i].k<getk(stk[j+1],stk[j])+eps)
            j++;
        f[q[i].pos]=max(f[q[i].pos],p[stk[j]].x*q[i].a+p[stk[j]].y*q[i].b);
    }
    cdq(mid+1,R);
    sz1=L,sz2=mid+1;
    for(int i=L;i<=R;i++){
        if(sz1<=mid){
            if(sz2<=R){
                if(p[sz1]<p[sz2])
                    np[i]=p[sz1++];
                else
                    np[i]=p[sz2++];
            }
            else
                np[i]=p[sz1++];
        }
        else
            np[i]=p[sz2++];
    }
    for(int i=L;i<=R;i++)
        p[i]=np[i];
}
bool cmp(Query x,Query y){
    return x.k<y.k;
}
int main(){

//    freopen("D:\\input.txt","r",stdin);
//    freopen("D:\\output.txt","w",stdout);
    int n;
    scanf("%d%lf",&n,&f[0]);
    for(int i=1;i<=n;i++){
        scanf("%lf%lf%lf",&q[i].a,&q[i].b,&q[i].rate);
        q[i].k=-q[i].a/q[i].b;
        q[i].pos=i;
    }
    sort(q+1,q+n+1,cmp);
    cdq(1,n);
    printf("%.3f\n",f[n]);
    return 0;
}


基于Simulink的光储系统黑启动能力仿真 本文基于Simulink平台构建了光储系统黑启动仿真模型,详细阐述了储能VF控制、光伏孤岛MPPT和同步并网等核心控制策略。通过分阶段协调控制(储能启动→关键负载→光伏接入→非关键负载→同步并网),实现了60秒内恢复供电、母线电压波动<5%的性能指标。仿真结果表明,协调控制策略相比无序启动可显著提升系统稳定性,避免电压崩溃和负载跳闸。文章还提供了完整的建模步骤、核心代码及进阶优化方向,为微电网应急供电设计提供了实用参考。该模型适用于光伏储能系统的黑启动能力验证和优化研究。 阅读详情

相关推荐

Superpowers:可编程AI协作协议与Skill工程化实践

AI编程正从提示词驱动迈向工程化协作新范式。Superpowers并非传统代码补全工具,而是一套定义清晰、可版本控制、可调试复用的AI协作协议——它将AI能力抽象为带输入校验、执行管道、输出契约和元数据声明的Skill(类DSL构件),再通过状态驱动的Workflow编排实现跨平台、可熔断、含人工Checkpoint的自动化流水线。其核心价值在于解决AI生成代码长期存在的不可复现、不可审计、不可交接三大痛点,支撑OpenAPI转TS、Figma转Vue等高复用场景落地。本文深入解析Skill设计四重契约与P

weixin_31124163的博客 376

bzoj 1492: [NOI2007]货币兑换Cash (dp+cdq分治)

1492: [NOI2007]货币兑换Cash Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 3801  Solved: 1602 [Submit][Status][Discuss] Description 小Y最近在一家金券交易所工作。该金券交易所只发行交易两种金券:A纪念券(以下简称A券)和 B纪念券(以下 简称B券)。每个持有金

clover_hxy的博客 1363

从SIGGRAPH审稿人视角看:什么样的TOG论文更容易被接收?

本文从SIGGRAPH审稿人视角深入解析TOG论文的审稿标准与投稿策略,揭示如何提升论文接收概率。重点探讨创新性、技术深度、实验验证等核心评分维度,并提供写作技巧与审稿意见应对策略,帮助研究者优化ACM Transactions on Graphics投稿质量。

weixin_33721344的博客 108

BZOJ1492:[NOI2007]货币兑换Cash (CDQ分治+斜率优化DP/平衡树维护凸壳)

题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1492题目分析:被一道水题坑了两天…… 首先朴素的O(n2)O(n^2)的DP是很好想的:记f[i]表示第i天不持有任何金券所能获得的最多人民币,很明显f[i]可以由f[i-1]更新而来(就是在1~i-1天就已经卖完所有金券,然后第i天不进行任何操作),还可以枚举一个j,看一下在第j天买入

KsCla 1765

U-Net图像分割实战:从论文解析到PyTorch代码实现

本文深入解析了U-Net图像分割模型的经典架构与核心思想,并提供了从零开始的PyTorch代码实现教程。通过详细拆解编码器-解码器结构、跳跃连接等关键组件,手把手指导读者构建完整的U-Net网络,涵盖数据准备、模型训练、推理部署全流程,是掌握图像分割实战技能的实用指南。

fire9的博客 341

Abaqus梁模型仿真中的常见陷阱与优化策略

本文深入探讨了Abaqus梁模型仿真中的常见陷阱与优化策略,涵盖几何建模、材料属性设置、边界条件处理等关键环节。针对梁截面方向定义、网格划分、复合截面建模等典型问题,提供了实用的Python脚本示例和优化方案,帮助工程师避免计算错误并提升仿真精度。文章特别强调了动力分析中的网格密度要求和材料非线性考虑,为复杂工程应用提供专业指导。

weixin_29099217的博客 459

BZOJ 1492: [NOI2007]货币兑换Cash

CDQ分治使在线凸包变成离线凸包。 好卡精度啊啊啊啊啊啊啊啊啊啊啊啊啊 祖传的dcmp都过不了,疯狂三点近似共线 #include&lt;bits/stdc++.h&gt; #define maxn 100005 #define double long double #define eps 1e-10 using namespace std; int n,s; double A[maxn],B...

Freopen的博客 193

Keil 5安装教程(C51与MDK共存)

目录前言MDK的安装C51的安装安装完成后的验证新建C51工程添加C51程序文件编译测试总结 前言 本篇文章将介绍嵌入式开发工具Keil 5的安装方法,并使MDK(Microcontroller Development Kit,开发stm32时会用到)和C51(51单片机C语言软件开发系统)共存。今后使用Keil 5可同时开发51单片机程序和ARM单片机程序,便于学习与从51到32的过渡。 注: 为防止商业纠纷,本篇文章不涉及文中软件的注册破解,请支持正版。 同时为了便于今后更深入的学习,本文不会介绍软件的

xushu_me的博客 6万+

[bzoj1492]货币兑换Cash

[bzoj1492]货币兑换Cash 不难推出式子  dp[i]=max(A[j]*a[i]+B[j]*b[i]) //A[j]=f[j]/(a[j]+b[j]/rate[j]); //B[j]=f[j]/(rate[j]*a[j]+b[j]); //分别表示全部存入能得到的A,B金券数 cdq分治统计l~mid对mid+1~r的贡献 将左边的按A[i]的大小排序,维护下凸壳(A[i]...

jerome_wei的博客 291

【ROS】usb_cam相机标定

1. 唠叨两句 当我们要用相机做测量用途时,就需要做相机标定了,不然得到的计算结果会有很大误差,标定的内容包括三部分:内参,外参还有畸变参数。所以标定的过程就是要求得上面这些参数。 以前弄这个事估计挺麻烦,需要做实验和计算才能得到,现在通过ros的开源包几分钟就能完成相机标定,感激! 具体的内外参和畸变系数的说明,可以看看Reference里面的第一个链接,写得很详细。 2. 准备工作 要准备三样东西: usb_cam的ROS启动包 相机标定的ROS包 还有一个用于标定的棋盘格 1)usb_cam启动包

Will_Ye的博客 8200

【Aseprite】制作Unity2D瓦片地图素材(平台游戏)

本文章用于记录用Aseprite软件制作2D平台游戏的瓦片地图的方法。

凡心所向,素履以往 5542

bzoj 1492: [NOI2007]货币兑换Cash

Description Input 第一行两个正整数N、S,分别表示小Y 能预知的天数以及初始时拥有的钱数。 接下来N 行,第K 行三个实数AK、BK、RateK,意义如题目中所述 Output 只有一个实数MaxProfit,表示第N 天的操作结束时能够获得的最大的金钱 数目。答案保留3 位小数。 Sample Input 3 100 1 1 1 1 2 2

lqybzx的专栏 1105

17、激光切割焦点位置和入射角对切割质量的影响研究

本研究通过响应面方法(RSM)结合Box-Behnken设计,系统分析了激光功率、切割速度和气体压力对SS 304不锈钢激光切割质量的影响,重点探讨了三种不同喷嘴在不同聚焦条件下的切缝比和条纹深度变化规律。实验结果表明,激光功率、切割速度和气体压力对切割质量具有显著影响,且不同喷嘴因焦点位置差异表现出不同的响应趋势。通过回归建模与优化,确定了最小激光功率、适中切割速度和最大气体压力为最优参数组合,可实现最小切缝比和较优条纹深度。研究为实际激光切割工艺提供了科学的参数选择依据和操作流程建议,有效提升了切割精度

mm9012的博客 124

【NOI2007】【BZOJ1492】货币兑换Cash

BZOJ题面是图片来的. 文字版题面 1797 货币兑换2007年NOI全国竞赛 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master题目描述 Description小 Y 最近在一家金券交易所工作。该金券交易所只发行交易两种金券:A 纪 念券(以下简称 A 券)和 B 纪念券(以下简称 B 券)。每个持有金券的顾客都有 一个自己的帐户。金券的数目可以

CreationAugust is 14 years old forever 1494

android 蓝牙通讯demo

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

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

[BZOJ1492] [NOI2007] 货币兑换Cash(cdq分治+斜率优化)

[BZOJ1492] [NOI2007] 货币兑换Cash(cdq分治+斜率优化) 题面 分析 dp方程推导 显然,必然存在一种最优的买卖方案满足:每次买进操作使用完所有的人民币;每次卖出操作卖出所有的金券. 设dp[i]表示第i天卖出所有金券的能够得到的钱数。则有: \[dp[i]=max(dp[i-1],\frac{dp[j]}{A[j] \times R[j]+B[j] } \t...

weixin_30551963的博客 186

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

bzoj1492 [NOI2007]货币兑换Cash(斜率优化DP+cdq分治)

bzoj1492 [NOI2007]货币兑换Cash 原题地址:http://www.lydsy.com/JudgeOnline/problem.php?id=1492 题意: 金券交易所只发行交易两种金券:A纪念券(以下简称A券)和 B纪念券(以下简称B券)。每个持有金券的顾客都有一个自己的帐户。金券的数目可以是一个实数。每天随着市场的起伏波动,两种金券都有自己当时的价值,即每一单位金券当

Bfk的博客 597

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【BZOJ 1492】 [NOI2007]货币兑换Cash

斜率优化dp+CDQ分治~

Regina8023 1421

bzoj1492: [NOI2007]货币兑换Cash

货币兑换   问题描述      小 Y 最近在一家金券交易所工作。该金券交易所只发行交易两种金券:A 纪  念券(以下简称 A 券)和 B 纪念券(以下简称 B 券)。每个持有金券的顾客都有  一个自己的帐户。金券的数目可以是一个实数。      每天随着市场的起伏波动,两种金券都有自己当时的价值,即每一单位金券  当天可以兑换的人民币数目。我们记录第 K 天中 A 券和 B

thy的专栏 2287

[BZOJ1492][NOI2007]货币兑换Cash

动态规划优化 斜率优化 splay

srand(time(0)) 617

bzoj1492【NOI2007】货币兑换Cash

斜率优化DP+CDQ分治

AaronPolaris 4785

BZOJ 1492 货币兑换Cash

题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1492 题意:有AB两种金券,n天,第一天某人有s的钱。给出每天的三个值Ai,Bi,ratei。每天可以进行的操作有两种:(1)卖掉x%(0&lt;=x&lt;=100):意味着分别将A种金券和B种金券分别卖掉x%,价格分别为Ai,Bi;(2)买进x元的金券:分别以Ai、Bi的价格买进两...

weixin_34247032的博客 125

[BZOJ1492]货币兑换Cash

[BZOJ1492]货币兑换Cash

Ironk的博客 344

【BZOJ1492】[NOI2007]货币兑换Cash 斜率优化+cdq分治

【BZOJ10492】[NOI2007]货币兑换Cash Description 小Y最近在一家金券交易所工作。该金券交易所只发行交易两种金券:A纪念券(以下简称A券)和 B纪念券(以下简称B券)。每个持有金券的顾客都有一个自己的帐户。金券的数目可以是一个实数。每天随着市场的起伏波动,两种金券都有自己当时的价值,即每一单位金券当天可以兑换的人民币数目。我们记录第 K 天中 A券 ...

aodanchui1057的博客 155

BZOJ1492: [NOI2007]货币兑换Cash

先%CDQ… 首先需要分析出一个性质,如果某天决定买入,那么一定花掉当前拥有的所有钱,如果某天决定卖出,那么一定卖掉拥有的所有股票。 于是对dp方程推一推倒一倒啊就是经典的斜率优化了… (其实几个月前做的题我现在懒得推了…>_<…为啥我还要写这篇博客?为啥平衡树维护凸包没人用set写呢!?) set:(边界判起来真麻烦…>_<…不过比手写平衡树要好不少…)#include<set> #inc

MirrorGray的博客 1018

bzoj1492 [NOI2007]货币兑换Cash

经典的1D1D动态规划题目,标准做法是平衡树维护凸壳,但实际上还有更简洁的分治法。 首先分析一下题目,对于任意一天,一定是贪心地买入所有货币或者卖出所有货币是最优的,因为有便宜我们就要尽量去占,有亏损就一点也不去碰。于是我们得到方程: f[i]=max{f[j]/(a[j]*rate[j]+b[j])*rate[j]*a[i]+f[j]/(a[j]*rate[j]+b[j])*b[i...

dengronggua5662的博客 135

bzoj1492 NOI2007 货币兑换Cash

题目描述 题解: 题目都提示了, 很明显要导一波式子: $$dp[i]=max( dp[i-1] , \frac{ dp[j] } { A[j]*R[j]+B[j] } * (A[i]*R[j]+B[i]))$$ 后面那个东西相当与将第j天的R[j]个A和1个B绑在一起。 $dp[i-1]$没什么好说的,关键是后面那个。 看起来还可以提一下。 $$dp[i]=\frac{...

a6t2007的博客 163
上一篇: bzoj3110 K大数查询
下一篇: hdu5977 Garden of Eden
我不会额
博客等级 码龄11年 2粉丝 173原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值