首页 > 其他分享 >枚举

枚举

时间:2023-06-13 17:26:26浏览次数:42  
标签:10 int 贝茜 枚举 include 干草

1.饥饿的牛

来源:USACO 2023 February Contest Bronze
原题链接

题目描述

贝茜是一头饥饿的牛。

每天晚上,如果牛棚中还有干草的话,贝茜都会吃掉其中的一捆。

初始时,牛棚中没有干草。

为了让贝茜不被饿死,农夫约翰制定了 \(N\) 个给贝茜送干草的计划。

其中第 \(i\) 个计划是在第 \(d_i\) 天的白天给贝茜送去 \(b_i\) 捆干草。

这些计划互不冲突,保证 \(1≤d1<d2<…<dN≤T\)。

请你计算,贝茜在第 \(1∼T\) 天中有多少天有干草吃。

输入格式

第一行包含两个整数 \(N\) 和 \(T\)。

接下来 \(N\) 行,每行包含两个整数 \(di\) , \(bi\)。

输出格式

输出贝茜在第 \(1∼T\) 天中有干草吃的天数。

数据范围

\(1≤N≤10^5\),
\(1≤T≤10^14\),
\(1≤di≤10^14\),
\(1≤bi≤10^9\)。

输入样例

2 5
1 2
5 10

输出样例

3

算法:(枚举)\(O(n)\)

算法内容

由于T的范围过大,所以不能枚举每一天,
我们可以采取枚举每一次送草的点,一共\(N\)个点

C++代码

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

typedef long long LL;

int main()
{
    int n;
    LL T;

    scanf("%d%lld", &n, &T);
    //res记录答案
    //cur表示上一次送完草后还剩的草
    //last表示上次送草的前一天
    LL res = 0, cur = 0, last = 0;
    for (int i = 1; i <= n; i ++ ) //枚举区间右端点
    {
        LL d, b;
        scanf("%lld%lld", &d, &b);
        LL len = d - 1 - (last + 1) + 1;
        LL days = min(len, cur);

        res += days;
        cur = cur - days + b;
        last = d - 1;
    }
    
    //特殊处理最后一个区间
    res += min(cur, T - (last + 1) + 1);
    printf("%lld\n", res);
    
    return 0;
}

标签:10,int,贝茜,枚举,include,干草
From: https://www.cnblogs.com/lhycoder/p/enumerate.html

相关文章

  • 枚举的方法、枚举案例 - 状态机、组织枚举、策略枚举、枚举工具类 - EnumSet 和 EnumM
    引入编写季节类(Season),该类只有四个对象(spring,summer,autumn,winter)概念枚举(enum)全称为enumeration,是JDK1.5中引入的新特性。语法publicenumColor{//默认添加publicstaticfinalRED,GREEN,BLUE;}本质尽管枚举看起来像是一种新的数据类型,实际上,枚举就是一种受限制......
  • POJ 3498 March of the Penguins(枚举+最大流)
    题意:在X,Y坐标系中有N(N<=100)个冰块...有些冰块上有若干只企鹅..每只企鹅一次最多跳M距离..一个冰块在有Mi个企鹅离开..就会消失..问有哪些冰块可以作为集合点..就是所有企鹅都能成功到这个冰块上来.思路:枚举每一块冰块,看看最大流能否等于企鹅总数即可      建图:把每块......
  • C# 智能枚举
    publicclassPriorityStatus:SmartEnum<PriorityStatus>{publicstaticreadonlyPriorityStatusBacklog=new(nameof(Backlog),0);publicstaticreadonlyPriorityStatusCritical=new(nameof(Critical),1);protectedPriorityStatus(stringname......
  • Python中的枚举类型及其用法
    >>>fromenumimportEnum#导入模块中的类>>>classColor(Enum):#创建自定义枚举类red=1blue=2green=3>>>Color.red#访问枚举类的成员<Color.red:1>>>>type(Color.green)#查看枚举类成员的类型<enum'Color'>>&g......
  • atomic_enum rust 原子枚举类型
    https://docs.rs/atomic_enum/latest/atomic_enum/#[atomic_enum]#[derive(PartialEq)]enumCatState{Dead=0,BothDeadAndAlive,Alive,}letstate=AtomicCatState::new(CatState::Dead);state.store(CatState::Alive,Ordering::Relaxed);assert......
  • 逍遥自在学C语言 | 枚举的那些事儿
    前言在C语言中,枚举是一种方便组织和表示一组相关常量的工具。枚举类型有助于提高代码的可读性和可维护性。本文将介绍C语言枚举的基本概念、语法和用法,以及一些高级技巧。一、人物简介第一位闪亮登场,有请今后会一直教我们C语言的老师——自在。第二位上场的是和我们一起......
  • Java中枚举类的特殊用法-使用枚举实现单例模式和策略模式
    上面针对枚举类实现单例模式和策略模式有所涉及,下面补充。Java中使用枚举类实现单例模式为什么可以这样做?枚举类不能new,因此保证单例枚举类不能被继承类不加载时,不会实例化使用枚举类创建的单例还有一个好处,就是即使使用反射,也无法打破它的单例性质新建枚举类publicenumSingleEn......
  • Enum01_都有常量了为何要有枚举类
    ​ 我们在不引入ENUM的情况下使用Integer(String啥的肯定也可以)定义四个不同的季节,由于这个是static和final的,肯定是能通过类OGNL直接调用且不能被改变的。publicclassSeason{/***使用Integer来定义春夏秋冬(其他类型是自然可以)*/publicst......
  • 2023年6月3日,枚举,枚举底层实现
    1.枚举1.枚举枚举是一种受限制的类,枚举第一行必须创建对象,枚举不能显示继承父类(枚举没有父类),所有的自定义枚举类默认继承Enum类packagecom.wz.enum01;publicenumSeason{spring("春天","春雨绵绵"),summer("夏天","烈日炎炎"),autumn("秋天","硕果累累"),......
  • 域用户枚举和密码喷洒攻击横向移动
    域用户枚举和密码喷洒攻击横向移动目录域用户枚举和密码喷洒攻击横向移动一、域内用户枚举攻击原理二、域内用户枚举工具三、密码喷洒攻击原理四、密码喷洒工具一、域内用户枚举攻击原理正常域用户登录主机,我们可以通过"netuser/domain"来列举出域内的用户。但是当我们用非......