[NOI2017]蔬菜

本文介绍了NOI2017竞赛中关于蔬菜变质问题的解题思路。题目要求考虑水果逐渐变质的情况,采用贪心策略,按照变质时间从后往前填充,同时利用并查集进行优化。对于不同天数的情况,可以先确定最大天数的解决方案,然后根据实际天数选取相应的水果。
摘要由CSDN通过智能技术生成

一、题目

点此看题

二、解法

每个水果是逐渐变质的,我们可以想到不守交规这道贪心题,也就是我们先按权值从大到小排序,然后从变质的最后时间往前填充就行了,至于 s s s的额外收益,新建一个水果就行了。

虽然变质是分阶段的,但是我们不需要把水果拆开,填充的时候逐渐增加水果的质量即可。我们还要用并查集优化填充的过程,填满 m m m就不再填了。

还有一个问题,我们只能针对一个固定的天数做这些操作,但是多组天数怎么办呢?我们可以先跑出一个极大天数填入的物品方案,对于一个较小的天数这些物品都是可以随便取的, i i i天我们就取权值前 i m im im大的物品。

#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
#define up 100000
#define ll long long
const int M = 100005;
int read()
{
   
    int num=0,flag=1;char c;
    while((c=getchar())<'0'||c>'9')if(c=='-')flag=-1;
    while(c>='0'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值