首页 > 其他分享 >P2854 [USACO06DEC] Cow Roller Coaster S

P2854 [USACO06DEC] Cow Roller Coaster S

时间:2024-03-26 21:44:23浏览次数:23  
标签:node Coaster int 线段 seg start 最优 P2854 Roller

原题链接

题解

1.当没有花费限制的时候,我们可以将其抽象为简单的背包问题
2.如果有了花费限制,那么我们就再加一维条件

3.如果一个线段能用,那么它前面一定是铺满的,那我们令线段按起点排序,通过某种运算,保证放这个线段时,前面的线段组成是最优的
比如在 \(i\) 点结尾位置花费 \(j\) 所达到的最优值,这个最优值与后面线段怎么摆无关,所以可以存起来减少重复运算,这也是dp的核心

code

#include<bits/stdc++.h>
using namespace std;
struct node
{
    int start,len,v,c;
}seg[10005];
bool cmp(node a,node b)
{
    if(a.start!=b.start) return a.start<b.start;
    return a.len<b.len;
}

int f[1005][1005]={0};
int main()
{
    int l,n,b;
    cin>>l>>n>>b;
    for(int i=1;i<=n;i++)
    {
        cin>>seg[i].start>>seg[i].len>>seg[i].v>>seg[i].c;
    }

    sort(seg+1,seg+1+n,cmp);

    for(int i=0;i<=l;i++)
    {
        for(int j=1;j<=n;j++)
        {
            int start=seg[j].start;
            if(start==i)
            {
                int ends=start+seg[j].len;
                if(i==0) f[ends][seg[j].c]=max(seg[j].v,f[ends][seg[j].c]);
                for(int k=seg[j].c;k<=b;k++) if(f[start][k-seg[j].c]) f[ends][k]=max(f[start][k-seg[j].c]+seg[j].v,f[ends][k]);
            }
        }
    }

    int ans=0;
    for(int i=1;i<=b;i++) ans=max(ans,f[l][i]);
    cout<<(ans?ans:-1);
    return 0;
}

标签:node,Coaster,int,线段,seg,start,最优,P2854,Roller
From: https://www.cnblogs.com/pure4knowledge/p/18097667

相关文章

  • nestJs中 Guards ,Interceptors ,Pipes ,Controller ,Filters的执行顺序
    执行顺序:Guards(守卫):Guards是最先执行的中间件,用于确定是否允许请求继续处理。Guards在请求被路由到控制器之前执行,通常用于身份验证、角色检查或权限验证。如果Guards返回一个布尔值 false 或者抛出一个异常,请求处理流程将终止,不会执行后续的Pipes、Interceptors或控......
  • NXP ECSPI controller简介
    spi协议可参考:https://www.cnblogs.com/lethe1203/p/18083528 ECSPI(EnhancedConfigurableSerialPeripheralInterface)是由NXPSemiconductors(原飞利浦半导体部门)开发的,imx6ull上一共有四组spi接口,每组寄存器都是一样的,都是以第一组为例。 典型的SPIBURST传输图: ECSP......
  • Exynos4412 IIC Controller
    学习资料来源:https://www.bilibili.com/video/BV14o4y1Y7A1?p=10&vd_source=432ba293ecfc949a4174ab91ccc526d6寄存器描述来自Exynos4412User'sManual 在Exynos4412芯片中,使用IIC,重要寄存器如下:Multi-masterI2C-buscontrolregister–I2CCONMulti-masterI2C-busc......
  • 全局异常捕获(@RestControllerAdvice)介绍和使用
    @RestControllerAdvice是什么@RestControllerAdvice是Spring框架提供的一个注解,用于定义全局异常处理器和全局数据绑定设置。它结合了@ControllerAdvice和@ResponseBody两个注解的功能。@ControllerAdvice@ControllerAdvice是一个用于定义全局控制器增强(即全局异常处理和......
  • nginx-ingress-controller限制上传文件大小问题
    参考:https://www.cnblogs.com/pitaiyang/p/17975041报错信息nginx-ingress-controller限制上传文件大小为1M如果上传文件大于1M则会在浏览器报以下错误#RequestEntityTooLarge解决方法修改ingress配置文件增加以下配置annotations:#nginx.org/client-max-b......
  • Asp.net Core关于自定义ControllerFeatureProvider的记录
    最近看公司的项目,发现公司对于自定义发现控制器搞了个方法,然后研究了一下,发现神奇现象基本原理可以查看 深入解析ASP.NETCoreMVC的模块化设计[上篇]-Artech-博客园(cnblogs.com) 大佬的博客这个是控制器的部分代码 publicclassApplicationServiceControl......
  • Exynos4412 Uart Controller
    参考视频:https://www.bilibili.com/video/BV14o4y1Y7A1?p=4&vd_source=432ba293ecfc949a4174ab91ccc526d6 寄存器描述来自Exynos4412User'sManualuart寄存器需要关注的点有:1、如何设置帧格式?2、如何设置uart接收和发送模式?3、如何设置uart的波特率?4、发送和接收都是哪......
  • @RestController
    @RestController是SpringFramework中的一个注解,主要用于标识一个类是RESTful服务的控制器(Controller)。在SpringMVC中,通常使用@Controller注解来定义控制器类,而@RestController是@Controller的一个特殊版本,它结合了@Controller和@ResponseBody注解的功能。具体......
  • RestController:Spring Framework 中用于创建 RESTful Web 服务的注解
    RestController 是SpringFramework中用于创建RESTfulWeb服务的注解。它简化了构建RESTfulWeb服务的过程,使得开发者能够更专注于业务逻辑的实现,而不是底层的HTTP请求和响应处理。一、RestController的基本概念RestController 是SpringWeb模块中的一个核心注......
  • MFMailComposeViewController 发送邮件
    通过MFMailComposeViewController发送邮件,需预先登录邮箱账号的情况下;具体实现与配置参数请参考如下:首先,引入MFMailComposeViewController库#import<MessageUI/MessageUI.h>其次,实现相关api方法if([MFMailComposeViewControllercanSendMail]){......