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. 实时实例分割的Deep Snake:CVPR2020论文点评
  2. MaximumGap的思想
  3. 凸优化 [Convex Optimization] — [美] 鲍德(Stephen Boyd),Lieven Vandenberghe 著,王书宁,许鋆,黄晓霖 译
  4. 《中餐厅》弹幕数据分析,我不要你觉得,我只要我觉得!
  5. 8086汇编常用代码总结(个人向),包含换行函数(过程),执行输出,结束程序
  6. linux验证cuda安装成功_Linux环境CUDA 4.0入门:验证安装
  7. Java常见面试知识点:继承、接口、多态、代码块
  8. numpy将ndarray数据拼接合并
  9. pythonspark实践_基于Python的Spark Streaming Kafka编程实践
  10. 13.1.DataGrid的增、删、改、查前台页面
  11. 给2021的Java一些建议,赶紧收藏!
  12. c++求两点的距离利用友元_用c++定义两个坐标点,计算两点间距离;进而计算线段的面积...
  13. linux 下的emoji在MariaDB中的字符集修改
  14. 用SPFA判断是否存在负环
  15. spark-shell如何粘贴换行代码
  16. jquery修改带!important的css样式
  17. 用jQuery实现.net 2.0 treeview客户端无刷新操作的实例
  18. Open3D 欧式聚类
  19. 修复 海盗船 k70 lux 未检测到设备(k70 no device detected)
  20. 4399PK3366 拭目以待

热门文章

  1. Java实现几种常见排序方法
  2. 【NOIP2013】货车运输
  3. unity, eulerAngle
  4. 在Linux CentOS上编译CoreCLR
  5. 如果我要...(研究版)
  6. where to park your bike?
  7. what to look if you want to debug your docsify based website
  8. 博士选题的态度:商量着来
  9. 利物浦大学图书馆官网西交利物浦大学图书馆官网
  10. 对管理学的认识 知乎摘抄