Time Limit: 1 second
Memory Limit: 128 MB

【问题描述】

 有一个整数序列,我们不知道她的长度是多少(即序列中整数的个数),但我们知道在某些区间中至少有多少个整数,用区间
[ai,bi,ci]来描述它,[ai,bi,ci]表示在该序列中处于[ai,bi]这个区间的整数至少有ci个。现在给出若干个这样的区间,
请你求出满足条件的最短序列长度是多少。如果不存在则输出 -1。
【输入格式】

第一行包括一个整数n(n<=1000),表示区间个数;
  以下n行每行描述这些区间,第i+1行三个整数ai,bi,ci,由空格隔开,其中0<=ai<=bi<=1000 而且 1<=ci<=bi-ai+1。

【输出格式】

文件输出只有一个整数表示满足要求序列长度的最小值。

Sample Input

5
3 7 3
8 10 3
6 8 1
1 3 1
10 11 1

Sample Output

6

【题目链接】:http://noi.qz5z.com/viewtask.asp?id=t081

【题解】

先把n个ai,bi,ci按照ai第一关键字,bi第二关键字升序排;
然后逆序处理n个关系;
优先选ai..bi这个区间里面的前面部分(当然如果这个区间里面有些数字已经被选了就不用再选了),这样优先选前面的部分,就能让前面的关系更容易利用公共的部分;就是这样的贪心吧.
转换成编程语言就是升序枚举啦^_^
(想不出来什么情况会无解..)

【完整代码】

#include <cstdio>
#include <algorithm>
using namespace std;
const int MAXN = 1000+100;struct abc
{int a,b,c;friend bool operator < (abc x,abc y){if (x.a==y.a){if (x.b==y.b)return true;elsereturn x.b<y.b;}elsereturn x.a < y.a;}
};int n;
bool bo[MAXN];
abc t[MAXN];int main()
{//freopen("F:\\rush.txt","r",stdin);scanf("%d",&n);for (int i = 1;i <= n;i++)scanf("%d%d%d",&t[i].a,&t[i].b,&t[i].c);sort(t+1,t+1+n);for (int i = n;i >= 1;i--){for (int j = t[i].a;j <= t[i].b;j++)if (bo[j]){t[i].c--;if (t[i].c==0)break;}if (t[i].c!=0){for (int j = t[i].a;j <= t[i].b;j++)if (!bo[j]){t[i].c--;bo[j] = true;if (t[i].c==0)break;}}}int si = 0;for (int i = 0;i <= 1000;i++)if (bo[i])si++;printf("%d\n",si);return 0;
}

转载于:https://www.cnblogs.com/AWCXV/p/7626662.html

【t081】序列长度(贪心做法)相关推荐

  1. 【NLP】选择目标序列:贪心搜索和Beam search

    构建seq2seq模型,并训练完成后,我们只要将源句子输入进训练好的模型,执行一次前向传播就能得到目标句子,但是值得注意的是: seq2seq模型的decoder部分实际上相当于一个语言模型,相比于R ...

  2. LeetCode 376. 摆动序列(贪心 动态规划)

    文章目录 1. 题目 2. 解题 2.1 贪心 2.2 动态规划 1. 题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个 ...

  3. BZOJ 1046: [HAOI2007]上升序列【贪心+二分状态+dp+递归】

    1046: [HAOI2007]上升序列 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4987  Solved: 1732 [Submit][St ...

  4. linux系统fasta程序,快速计算fasta序列长度的方法

    最近看了一下进入PLoB的网页来路分析,看到有同学搜索计算fasta序列长度.其实自己在之前的数据分析中也遇到过相关的问题,这里给大家分享两种我常用的方法. 方法一:linux下用awk计算fasta ...

  5. 使用Python计算fasta文件的序列长度

    使用Python计算fasta文件的序列长度 在这里插入代码片使用Python计算fasta文件的序列长度 #!/usr/bin/python #-- coding:utf-8 -- import s ...

  6. 仅用笔记本电脑解析90%蛋白质,单卡推理序列长度破万!Colossal-AI开源方案让AlphaFold推理提速5倍,显存降低75%

    蛋白质是生命的物质基础,几乎支持着生命的所有功能.弄清楚蛋白质折叠成什么形状被称为 "蛋白质折叠问题",在过去的50年里一直是生物学的一个巨大挑战.AlphaFold将Transf ...

  7. LeetCode 1718. 构建字典序最大的可行序列(贪心+回溯)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个整数 n ,请你找到满足下面条件的一个序列: 整数 1 在序列中只出现一次. 2 到 n 之间每个整数都恰好出现两次. 对于每个 2 到 n 之间 ...

  8. 每天一道LeetCode-----计算最长的元素连续序列长度

    Longest Consecutive Sequence 原题链接Longest Consecutive Sequence 给定一个序列,寻找最长的连续元素序列,对于示例而言,给定的序列中存在1,2, ...

  9. python查找序列元素的最大值和最小值_pthon基础知识(索引、切片、序列相加、乘法、检查元素是否是序列成员、计算序列长度、最大最小值)...

    序列   数据存储方式  数据结构 python 列表.元组.字典.集合.字符串 序列: 一块用于存放多个值的连续内存空间,并且按一定顺序排列,可以通过索引取值 索引(编号): 索引可以是负数 从左到 ...

最新文章

  1. Linux下,各种解压缩命令集合
  2. 【Android 逆向】修改 Android 系统文件 ( Android 逆向中需要经常修改的文件和目录 | 在 root 后的设备中获取 / 目录的 rw 权限后注意事项 )
  3. 跳一跳python源码_使用Python实现跳一跳自动跳跃功能
  4. [转]java Socket InputStream 阻塞 问题
  5. 项目经济规模的估算方法_估算英国退欧的经济影响
  6. 机器学习中qa测试_如何对机器学习做单元测试
  7. 苏州大学计算机组成题库11,苏州大学计算机组成题库(范文).doc
  8. XNA实现不停循环的路的效果
  9. javascript 生成 UUID GUID 浏览器环境 NodeJS环境 纯JavaScript函数
  10. 轻松搞懂Java中的自旋锁
  11. ubuntu18.4解决问题: Installation failed. See log at /var/log/cuda-installer.log for details.
  12. 学习笔记三:衍生兄弟——过冲和振铃
  13. linux shell 宏定义_一篇教会你写90%的shell脚本
  14. 【Excel】乱序不同行数的两列数据对比匹配
  15. mac 版本navicate 如何安装破解版
  16. 如何解决“Component ‘MSCOMCTLOCX‘ or one of its dependencies .....“
  17. java拼音字符串的顺序,Java字符串按照汉语拼音排序
  18. “买家秀“与“卖家秀”
  19. ROS综合学习记录(一)---cmd_vel转换为阿克曼模型的速度变换
  20. 淘宝无线端店铺权重提升方法技巧步骤

热门文章

  1. 永远不要让女生帮你寄领带
  2. 管理心得之学术,交通,作息,心态
  3. 如何清理镜子上的水渍:亲测有效
  4. 正如孙正义的时间机器的理论
  5. 博弈之 取石子1——6)
  6. yii2和laravel比较
  7. 生成器和生成器表达式
  8. Q1全球智能机销量增长3.9% 三星苹果华为居三甲
  9. Mac系统安装和配置tomcat步骤详解
  10. 软件工程第八次作业-2017282110249