当前位置: 首页 > news >正文

P1250 种树

目录

  • 写在前面
  • 题目链接
  • 思路
  • 注意
  • 代码

写在前面

咕了这么久的博客也该写写了,最近吃饭都吃不饱的博主实在是没什么动力学习.....

题目链接

P1250 种树

思路

想要种树种得少,就要一棵树在多个区间同时出现。
所以,在重叠部分种尽可能多的树即可。
然而重叠部分一定在区间的尾部。
所以先对结束苇子进行排序,然后依次在区间的尾部从前往后种树直到满足要求,对于下一个区间,看看差多少树,就在结尾补多少。

于是贪心的思想就很容易出来了:

1.按结束位置排序
2.对每个区间一次处理

1.从前往后扫描区间,统计已有的树的个数
2.若已选点超过要求个数,则continue
3.否则从后往前,添加缺少的覆盖点

3.输出ans

注意

注意$n,m$的含义,被坑了!

代码

#include<bits/stdc++.h>
using namespace std;
const int N=300006;
struct node
{
    int u,v,w;
}a[N];
int ans;
int n,m,used[N];
int cmp(node a,node b)
{
    return a.v<b.v;
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=m;++i)
    {
        cin>>a[i].u>>a[i].v>>a[i].w;
    }
    sort(a+1,a+1+m,cmp);
    for(int i=1;i<=m;++i)
    {
        int js=0;
        for(int j=a[i].u;j<=a[i].v;++j)
        {
            if(used[j]) js++;
        }
        if(js>=a[i].w) continue;
        for(int j=a[i].v;j>=a[i].u;--j)
        {
            if(!used[j])
            {
                used[j]=1;
                js++;
                ans++;
                if(js==a[i].w) break;
            }
        }
    }
    cout<<ans;
    return 0;
}

转载于:https://www.cnblogs.com/pyyyyyy/p/11211934.html

相关文章:

  • MySQL索引简介
  • Centos7 yum安装mysql(完整版)
  • 大话设计模式笔记(九)の外观模式
  • sort(桶排序+hash)
  • P1306 斐波那契公约数(ksm+结论)
  • [Dxperience.8.*]报表预览控件PrintControl设置
  • “”(十六进制值 0x1D)是无效的字符
  • 每个开发人员现在应该下载的十种必备工具
  • 【海量视频】2013年上半年BPM厂商'K2'市场活动资料集锦
  • 2019牛客暑期多校训练营(第二场) - J - Go on Strike! - 前缀和预处理
  • OS的发展和分类
  • VBScript 内置函数
  • P1020 导弹拦截(nlogn求最长不下降子序列)
  • P1090 合并果子(哈弗曼树)
  • 推荐阅读链接
  • Angular Elements 及其运作原理
  • Docker: 容器互访的三种方式
  • HTTP--网络协议分层,http历史(二)
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Joomla 2.x, 3.x useful code cheatsheet
  • Logstash 参考指南(目录)
  • Lucene解析 - 基本概念
  • Node 版本管理
  • python 装饰器(一)
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • 基于遗传算法的优化问题求解
  • 蓝海存储开关机注意事项总结
  • 前端自动化解决方案
  • 如何在 Tornado 中实现 Middleware
  • 使用 QuickBI 搭建酷炫可视化分析
  • 使用Swoole加速Laravel(正式环境中)
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • NLPIR智能语义技术让大数据挖掘更简单
  • 阿里云ACE认证学习知识点梳理
  • 回归生活:清理微信公众号
  • 数据库巡检项
  • # 数论-逆元
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • $.each()与$(selector).each()
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (五)c52学习之旅-静态数码管
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET与 java通用的3DES加密解密方法
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • @Mapper作用
  • @SuppressWarnings(unchecked)代码的作用
  • [bzoj1006]: [HNOI2008]神奇的国度(最大势算法)
  • [C++] 多线程编程-thread::yield()-sleep_for()
  • [Excel] vlookup函数
  • [Foreman]解决Unable to find internal system admin account
  • [math]判断线段是否相交及夹角
  • [Mvc]在ASP.NET MVC中使用Repeater
  • [MySQL复制异常]Cannot execute statement: impossible to write to binary log since statement is in row for