Java实现蓝桥杯 算法提高 线段和点
算法提高 线段和点
时间限制:1.0s 内存限制:256.0MB
提交此题
问题描述
  有n个点和m个区间,点和区间的端点全部是整数,对于点a和区间[b,c],若a>=b且a<=c,称点a满足区间[b,c]。
  求最小的点的子集,使得所有区间都被满足。
输入格式
  第一行两个整数n m
  以下n行 每行一个整数,代表点的坐标
  以下m行 每行两个整数,代表区间的范围
输出格式
  输出一行,最少的满足所有区间的点数,如无解输出-1。
样例输入
5 5
2
6
3
8
7
2 5
3 4
3 3
2 7
6 9
样例输出
2
数据规模和约定
  1<=n,m<=10000
  0<=点和区间的坐标<=50000
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.Comparator;
public class xianduanhedian {
	private static InputStream is = System.in;
	public static int nextInt() {
		try {
			int i;
			while ((i = is.read()) < 45 || i > 57) {
			}
			int mark = 1, temp = 0;
			if (i == 45) {
				mark = -1;
				i = is.read();
			}
			while (i > 47 && i < 58) {
				temp = temp * 10 + i - 48;
				i = is.read();
			}
			return temp * mark;
		} catch (IOException e) {
			e.printStackTrace();
		}
		return -1;
	}
	static class Node {
		public int start;
		public int end;
		public Node(int start, int end) {
			this.start = start;
			this.end = end;
		}
	}
	public static void main(String[] args) {
		int n = nextInt();
		int m = nextInt();
		int point[] = new int[n];
		for (int i = 0; i < n; i++)
			point[i] = nextInt();
		Node node[] = new Node[m];
		for (int i = 0; i < m; i++)
			node[i] = new Node(nextInt(), nextInt());
		Arrays.sort(point);
		Arrays.sort(node, new Comparator<Node>() {
			public int compare(Node o1, Node o2) {
				return o1.end - o2.end;
			}
		});
		int currentPoint = 0;
		int count = 0;
		int j = 1;
		for (int i = 0; i < m; i++) {
			int x = node[i].start;
			int y = node[i].end;
			if (x <= currentPoint)
				continue;
			int temp = -1;
			for (j -= 1; j < n; j++) {
				if (point[j] <= y) {
					temp = point[j];
				} else {
					break;
				}
			}
			if (temp == -1) {
				count = 0;
				break;
			} else {
				currentPoint = temp;
				count++;
			}
		}
		System.out.println(count);
	}
}
Java实现蓝桥杯 算法提高 线段和点的更多相关文章
- Java实现 蓝桥杯 算法提高 进攻策略加强(暴力)
		试题 算法提高 进攻策略加强 问题描述 植物大战僵尸这款游戏中,还有一个特别的玩儿法:玩家操纵僵尸进攻植物. 首先,僵尸有m种(每种僵尸都是无限多的),玩家可以选择合适的僵尸来进攻.使用第i种僵尸需要 ... 
- Java实现 蓝桥杯 算法提高 小X的购物计划
		试题 算法提高 小X的购物计划 问题描述 小X打算去超市shopping.小X没什么钱,只有N元.超市里有M种物品,每种物品都需要money,在小X心中有一个重要度.有的物品有无限件,有的物品只有几件 ... 
- Java实现 蓝桥杯 算法提高 天天向上(DP)
		试题 算法提高 天天向上 问题描述 A同学的学习成绩十分不稳定,于是老师对他说:"只要你连续4天成绩有进步,那我就奖励给你一朵小红花."可是这对于A同学太困难了.于是,老师对他放宽 ... 
- Java实现 蓝桥杯 算法提高 欧拉函数(数学)
		试题 算法提高 欧拉函数 问题描述 老师出了一道难题,小酱不会做,请你编个程序帮帮他,奖金一瓶酱油: 从1-n中有多少个数与n互质? |||||╭══╮ ┌═════┐ ╭╯让路║═║酱油专用车║ ╰ ... 
- Java实现 蓝桥杯 算法提高 计算超阶乘(暴力)
		试题 算法提高 计算超阶乘 问题描述 计算1*(1+k)(1+2k)(1+3k)-(1+n*k-k)的末尾有多少个0,最后一位非0位是多少. 输入格式 输入的第一行包含两个整数n, k. 输出格式 输 ... 
- Java实现蓝桥杯-算法提高 P1003
		算法提高 P1003 时间限制:1.0s 内存限制:256.0MB 作为一名网络警察,你的任务是监视电子邮件,看其中是否有一些敏感的关键词.不过,有些狡猾的犯罪嫌疑人会改变某些单词的字母顺序,以逃避检 ... 
- Java实现蓝桥杯 算法提高 八皇后 改
		**算法提高 8皇后·改** 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大. 输入格式 一个8*8的棋 ... 
- Java实现 蓝桥杯 算法提高 高精度减法(JDK方法)
		试题 算法提高 高精度减法 问题描述 高精度减法 输入格式 两行,表示两个非负整数a.b,且有a > b. 输出格式 一行,表示a与b的差 样例输入 1234567890987654321 99 ... 
- Java实现 蓝桥杯 算法提高 分解质因数(暴力)
		试题 算法提高 分解质因数 问题描述 给定一个正整数n,尝试对其分解质因数 输入格式 仅一行,一个正整数,表示待分解的质因数 输出格式 仅一行,从小到大依次输出其质因数,相邻的数用空格隔开 样例输入 ... 
随机推荐
- OpenWrt R2020.3.19 反追踪 抗污染 加速 PSW 无缝集成 UnPnP NAS
			固件说明 基于Lede OpenWrt R2020.3.19版本Lienol Feed及若干自行维护的软件包 结合家庭x86软路由场景需要定制 按照家庭应用场景对固件及软件进行测试,通过后发布 设计目 ... 
- 【Spark】SparkStreaming的容错机制
			文章目录 检查点机制 驱动器程序容错 工作节点容错 接收器容错 处理保证 检查点机制 Metadata checkpointing -- 将定义流计算的信息存入容错的系统如HDFS. Data che ... 
- Badboy录制脚本时,提示脚本错误的解决方法
			如下,录制时发生错误: 
- 关于oracle怎么看清楚字段的一些实践
			在oracle存储过程或者平时编码中会有很多时候对不上字段,这时候在字段逗号后面可以主动加上--数字. 还有的是应该注意尽量让每个字段都占有一行的空间.下面部分截图说明 
- 数据库-第八章 数据库编程-8.1 嵌入式SQL
			嵌入式SQL 一.嵌入式SQL的处理过程 1.嵌入式SQL语句的基本格式 2.嵌入式SQL的处理过程 3.主语言访问数据库的基本步骤 ⅰ建立数据库连接 ⅱ定义必要的主变量和数据通信区 ⅲ访问数据库并返 ... 
- PHPExcel生成Excel文件---提示导出文件或者文件扩展名不一致,或导出的文件或文件扩展名无效
			$data = Db::name('shop_cart')->where('phone','15555555555')->select(); $objPHPExcel = new PHPE ... 
- Redis学习笔记(九) AOF持久化
			除了RDB持久化功能之外,Redis还提供了AOF持久化功能.与RDB持久化通过保存数据库中的键值对来记录数据库状态不同,AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的. 服务 ... 
- Jenkins 插件 Role Strategy Plugin 使用
			Manage and Assign Roles 1. Manage Roles Global Role 在此处,我们划分了四种权限,分别为: admin:超级管理员角色,管理整个服务: devops: ... 
- flask之gevent-websocket的IO多路复用长连接通信
			本节目录: (一)笔记总结: (二)gevent-websocket+flask+javascript实现WS即时通信 (1)无昵称群聊 (2)有昵称群聊 (3)私聊 三种通信模型简述: (1)轮询: ... 
- [A*算法]基于Unity实现A*算法(二)
			写在前面:上一篇当时是非常简单的了解一下A*,昨天还有一些问题没解决,就暂时把自己查阅的文坛摘抄了过来(毕竟人家写的比我要好的多 :> ) 今天终于解决了,就又写了这一篇,正好我自己再梳理一遍, ... 
