hdu 6408 From ICPC to ACM贪心模拟

ACM-ICPC WorldFinal Problems(2000~2010) ACM-ICPC WorldFinal Problems,2000~2010间的所有WF问题集 立即下载

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6408

刚刚到学校火车坐的想死。。

拜读了大佬的代码,有两个思路上的新理解吧。。

1、还是降维吧,给了一个材料费用一个组装费用。将第i天最小的材料费用计算出来。本来想的是要n^2去计算,后来发现只要和前一天进行比对即可,因为两天如果材料来源相同,差别只在于i-1到i天的存储费用

2、计算某天某材料花费时,用ss表示类似存储费用前缀和一样的东西,在存储的时候减去到当前为止的存储费用,取的时候再加上卖电脑那一天的存储费用,结果就是中间的费用和了

 

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
#define mod 1000000007
#define For(i,m,n) for(int i=m;i<=n;i++)
#define Dor(i,m,n) for(int i=m;i>=n;i--)
#define LL long long
#define lan(a,b) memset(a,b,sizeof(a))
using namespace std;

const int N=50005;
int c[N],d[N],m[N],p[N],e[N],R[N],E[N];

        int n;
LL pin()
{
    multiset<pair<LL,int>> w;
    LL s=0,ss=0;
    LL ans=0;

    For(i,0,n-1)
    {
        w.insert(make_pair(m[i]-ss,p[i]));
        s+=p[i]-d[i];
        while(!w.empty()&&d[i]>0)
        {
            auto c=*w.begin();
            w.erase(w.begin());
            if(c.second<=d[i])
            {
                ans+=(LL)(c.first+ss)*c.second;
                d[i]-=c.second;
            }
            else
            {
                ans+=(LL)(c.first+ss)*d[i];
                c.second-=d[i];
                d[i]=0;
                w.insert(c);
            }
        }
        if(d[i])return -1;
        ss+=E[i+1];
        LL req=s-e[i+1];
        s=min(s,(LL)e[i+1]);
        while(req>0)
        {
            auto c=*(--w.end());
            w.erase(--w.end());
            if(c.second<=req)
                req-=c.second;
            else
            {
                c.second-=req;
                req=0;
                w.insert(c);
            }
        }

    }
    return ans;
}

int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        For(i,0,n-1)scanf("%d%d%d%d",&c[i],&d[i],&m[i],&p[i]);
        For(i,1,n-1)scanf("%d%d%d",&e[i],&R[i],&E[i]);

        For(i,1,n-1)
        {
            c[i]=min(c[i],c[i-1]+R[i]);
            m[i]+=c[i];
        }
        m[0]+=c[0];
        printf("%lld\n",pin());

    }
    return 0;
}

 

L2-028 秀恩爱分得快(测试点3说明) 古人云:秀恩爱,分得快。互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度。如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K。任意两个人如果同时出现在若干张照片里,他们之间的亲密度就是所有这些同框照片对应的亲密度之和。下面给定一批照片,请你分析一对给定的情侣,看看他们分别有没有亲密度更高的异性朋友? 阅读详情

相关推荐

Vivado 2023.1及更早版本永久License全功能解锁:HLS、System Generator等IP核使用详解

本文深入解析Vivado 2023.1及更早版本的全功能许可证,详细指导如何解锁HLS、System Generator等高级IP核。通过许可证类型对比、功能验证方法和实战应用指南,帮助FPGA开发者充分利用Vivado工具套件,提升复杂系统设计和算法加速的效率。

weixin_31286719的博客 379

2018 Multi-University Training Contest 8-1012:From ICPC to ACM(模拟+贪心)

  题目大意: 这道题目题意比较复杂,但是仔细分析以后模型还是比较简单的。。。 题意就是接下来有n个月, ci di mi pi 分别表示第 i 个月的原材料价格,客户要求的计算机数量,mi表示生产一台计算机的人工成本,pi表示这个月能生产的计算机数量。 同时我们可以预先储存一些原材料和计算机,对于储存的原材料的数量没有限制,计算机数量有限制,并且储存需要一定的成本。 ei Ri Ei...

污miao汪的博客 388

KiCad插件安装太慢?试试华秋版,再手把手教你装这5个实用插件

本文介绍了KiCad华秋发行版如何解决插件安装慢的问题,并详细推荐了5个实用插件及其安装方法。华秋版优化了国内用户的下载速度,预装了常用扩展包,包括BOM生成器、3D模型增强工具等,显著提升PCB设计效率。

weixin_29184075的博客 547

【数据结构】【平衡树】【贪心】HDU6408 From ICPC to ACM

题意: 题意非常的鬼畜。。。 你经营着一家电脑公司,需要满足一些客户的需♂求。 每个月,你可以购买电脑配件(误),每单位价格为cicic_i 每个月需要制造didid_i台电脑,每制造一台电脑,需要一单位的电脑配件,然后外加mimim_i的人工费。而且每个月最多制造pipip_i台电脑。 然后电脑和配件都可以储存。 从第i个月存到第i+1i+1i+1个月,最多储存eieie_i台电脑,...

氧化钠的博客 475

YOLOv11改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息

本文记录的是基于MobileNet V4的YOLOv11目标检测轻量化改进方法研究。其中MobileViT块旨在以较少的参数对输入张量中的进行建模,结合卷积与 Transformer 的优势,并实现有效的信息编码与融合本文配置了原论文中和三种模型,以满足不同的需求。

Limiiiing的博客 1074

一套C#接口通吃安川/发那科/库卡:工业机器人统一控制框架设计与产线踩坑实录

我们把机器人的通用能力抽象为接口,涵盖连接、运动、IO、寄存器、状态、报警六大类能力,所有品牌适配器都必须实现这个接口。/// 工业机器人统一控制接口// 基础连接// 运动控制// IO与寄存器// 状态与报警// 事件工业机器人统一控制框架的本质,不是把所有品牌的功能都做平,而是找到通用能力的最大公约数,通过分层抽象把品牌差异隔离在底层。上层业务只关注工艺和流程,不需要关心机器人是什么品牌、用什么SDK、通信协议是什么。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 404

HDU6408 From ICPC to ACM

传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6408 一上场读完这题,大概是个费用流防AK题吧,果然晚上dls讲题也说他第一眼费用流线段树加速找增广路(这什么东西哇,然后就跳过了,比完赛看了题解后,感觉以前noip最后3套模拟,cy的题有一道勇者斗恶龙也是这样,先不管用没用,先放进一个堆了,要用的时候再取最优的出来,算一蛤代价。这题有几个需要想到的...

binarycopycode 418

PointPillars代码详解及实现

SourceURL:file://文字文稿1和2D图像的深度学习目标检测很不相同,点云数据具有两个显著特征,为了将图像领域卷积神经网络做模式识别的经验引入三维点云中,一些深度学习方法采用了三维卷积方法或者是将点云投射为2维深度图,还有一类方法是使用鸟瞰视角Bird’s Eye View,来组织点云数据的输入,相比于2维深度图,鸟瞰图不存在遮挡问题但是数据分布更加稀疏造成网络特征学习效率低下。

m0_47313541的博客 661

HDU 6408 From ICPC to ACM(贪心+map)

Description 一个工厂要供应顾客kkk个月的需求,第iii个月工厂买入原料的代价为cicic_i,一份材料可以生产一台电脑,工本费为mimim_i,产量至多为pipip_i,而顾客需求量为didid_i,第iii个月生产出的电脑和买的原料可以存储起来,存储一台电脑一个月的租金为EiEiE_i,储存一份原料一个月的租金为RiRiR_i,仓库可以储存无限的材料,但是至多只能储存eieie_...

ZSQ 554

把外部系统接到 SAP Build Process Automation 的两条路:前台直连与后台编排的完整范式

想把外部系统接入到你的【销售订单管理】审批流程,最稳妥的路径是:在流程里开一个,在 BTP 配好以为核心的 Destination,让前端经由approuter代理、后台通过 Cloud SDK 直连,任务处理用My Inbox或Task APIs,异步对接用。这套组合拳,既满足安全边界与运维规范,又能让前台与后台两个世界各取所需、自然衔接。SAP。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1660

【Windows Server 2019】活动目录 (Active Directory) ——将计算机加入域和脱离域

博文介绍了如何将计算机加入AD域和脱离AD域,包括加入域,验证客户机加入到域后的信息,使用域账户用户在客户机上登录,使用本地账户用户在计算机上登录,脱离域。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 6169

HDU - 6408 - From ICPC to ACM(贪心)

HDU - 6408 - From ICPC to ACM 题意: 已知 k 个月每个月的具体信息,求满足客人需求的最小花费。 每个月的信息如下: ci 表示第 i 个月的原材料价格 di 表示第 i 个月需要卖出的电脑数量(顾客在第 i 个月的需求) mi 表示第 i 个月生产一台电脑的花费 pi 表示第 i 个月能生产的电脑数量   ei 表示第 i 个月可以存到下个月的电...

vloai 526

【2DWT:2维离散小波变换(附Pytorch代码)】

图像信号具有非平稳特性,无法使用一种确定的数学模型来描述,而小波变换的多分辨率分析特性很好地解决了这个问题。小波变化的多分辨率特性使其既可以高效描述图像的平坦区域(低频信息、全局信息),也可以有效处理图像信号的局部突变(高频信息,即图像的边缘轮廓等部分)。小波变换在空域和频域同时具有良好的局部性,使其可以很好地聚焦到图像的任意细节。

NorthSmile的博客 1万+

补题:2018HUD暑期多校训练第八场-From ICPC to ACM(hdu-6408)(贪心+数据结构)

题目链接: hdu-6408 题目大意: 给你k个月,告诉你每个月原材料的价格,用户需求量,组装电脑价格,公司最大产量 以及从本月到下一个月,电脑可存放量,原材料存放价格,电脑存放价格 求k个月下来,公司是否可以满足用户需求,如果可以输出最小成本,否则输出-1 解题思路: 由题目可知,原材料的存储量是无限的,那么我们是否可以贪心的使用原材料价格最小的去组装电脑(当然这里需要考虑上存放...

永不止步的博客 452

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

HDU 6408

题意: 一个公司生产电脑,生产n个月。每个月生产时,原材料的价格、加工费的价格、生产能力、客户需求量是不同的。每个月可以多生产一些电脑,也可以多购买一些原材料储存起来,但每个月储存原材料、电脑的花费也是不一样,而且每个月储存电脑的仓库容量还不一样。问在满足客服要求的前提下,最经济的花费。 题解: 首先是要满足需求,所以我们每个月都按照最大生产力生产,可以理解为假生产,当要卖出去是才是真生产。...

Spy97的博客 460

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

HDU6406 Taotao Picks Apples(2018HDU多校联赛第八场,线段树)

Problem Description There is an apple tree in front of Taotao’s house. When autumn comes, n apples on the tree ripen, and Taotao will go to pick these apples. When Taotao picks apples, Taotao s...

riba2534的博客 752

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

HDU 6407 Pop the Balloons

题意:Ex打气球,气球爆了会吹飞同行同列的气球,求引爆K次气球使所有气球消失的方案数。 行列:N&lt;=12 , M&lt;=20 。K &lt;=20 各种分析,然后发现你只能打K行,每行每列只能打一个,那么就二进制枚举呗(N&lt;=12) 然后一个状压DP就行了, 从左到右枚举列 , 如果这列除了这K行外还有气球存在,那么这列一定要引爆一个,否则可以不引爆,但是最多只能引爆一个。...

Freopen的博客 538

【状压DP】HDU6407 Pop the Balloons

分析: 实质上很水的状压DP题。。。。。 因为m≤12m≤12m\leq12,可以枚举哪些行被消除了,在状压转移删除的列 首先枚举一个maskmaskmask表示要删除哪些行 设dp[i][j]dp[i][j]dp[i][j]表示前i列已经被消除的行的状态为j,其中jjj为maskmaskmask的子集 对于当前这一列,如果每一个有位置的行都被j覆盖了,那么就只能直接转移 如果存在一个...

氧化钠的博客 356

hdu 6301 Distinct Values(贪心)题解

题意:长为n的串,给你m个区间,这些区间内元素不重复,问这样的串字典序最小为? 思路:用set保存当前能插入的元素,这样就能直接插入最小元素了。对操作按l排序,因为排过的不用排,所以两个指针L,R是一直右移的。L右移肯定是增加set中元素,R右移有两种可能:一是L在R右边,R只是负责赶路赶到操作区间;二是L在R左边,那么R右移是在扩大区间,并且对数组中元素进行插入。 代码: #include...

weixin_33842304的博客 156

【2018杭电多校Round8 L】From ICPC to ACM

题意 一共有k个月 第i个月原材料价格为c_i ,制造一台电脑要花费一个原材料和m_i元,最多能生产p_i台电脑,客户需求d_i台, 当月卖出的原材料和电脑不收取存储费用,没用完的原材料和电脑可以留到下个月 第i个月能存放e_i台电脑价格为E_i,存放原材料容量无限价格为R_i 求满足每个月客户需求的最小成本 分析 因为原材料存储容量无限,如果这个月的c_i加上R_i+1小于c_i+1...

weixin_30621711的博客 189

2018 Multi-University Training Contest 8 - From ICPC to ACM

贪心 + 模拟 预处理出最便宜的原材料价格,然后用map储存每种价格的电脑数量。 这里因为每个月价格都在变化,所以可以用相对价格,也就是减去一个sigema(e[i])。 每次选择最小的卖,统计贡献,最后如果超出库存,反着删除即可(相当于没有生产这些电脑) #include <bits/stdc++.h> #define INF 0x3f3f3f3f #define full...

weixin_30739595的博客 170

HDU-1237 纯模拟

Problem Description: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。 Input 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。 Output 对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。 Sample Input...

刷题记录 361

ACM 竞赛 中 时间复杂度分析 及 每种复杂度的最大循环次数

      在竞赛中,一般算机一秒能运行5 x 10^8次汁算,如果题目給出的时间限制カ1s,那么你选择的算法执行的汁算次数最多应该在10^8量级オ有可能解决这个题目。一般 O(n)的算法能解决的数据范围在n &lt; 10^8。       O(n *logn)的算法能解决的数据范围在n &lt;= 10^6。       O(n*sqrt(n) )的算法能解决的数据范围在n &lt;...

Romantic Chopin in C Sharp Minor 8002

2018-12-08 acm日常 HDU - 2005(简单模拟)

J - Problem J HDU - 2005 第几天? 给定一个日期,输出这个日期是该年的第几天。 Input 输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。 Output 对于每组输入数据,输出一行,表示该日期是该年的第几天。 Sample Input 1985/1/20 2006/3/12 Sa...

Gidear 209

ACM:平衡树(1)——Treap

题目来源:          HihoCoder1325   题目描述:     定义一个包含数字的集合,集合的初始情况为空。给定下面两种操作:         插入:向集合中添加一个数字k。         询问:询问集合中不超过k的最大数字。 题目要求对于每次询问,输出对应的答案。  解答:     本题可以用一个线性表来存储集合中的数字,对于每次询问,遍历一

<code> I am a coder </code> 1692

冰水挑战 HDU - 6495(贪心 + DP)

https://vjudge.net/problem/HDU-6495 思路: 用d[i][j]表示前i个挑战做j个体力值的最大值,类似于一种贪心策略,就是让体力值尽可能的大,这样就保证了会有更多的可能去完成更多的挑战。 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int ma...

sunmaoxiang的博客 266
上一篇: hdu 6406
下一篇: codeforces 1023D Array Restoration 线段树
Dale_zero
博客等级 码龄9年 10粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值