Java实现洛谷P1250 种树 (暴力)
JAVA 实现 洛谷 暴力
2023-09-14 08:58:02 时间
P1250 种树
输入输出样例
输入
9
4
1 4 2
4 6 2
8 9 2
3 5 2
输出
5
PS:
我种最少的树,意味着我的树要最多的被利用,意味着,我的树要尽可能的靠中间种,
也就是我把右区间从小到大排序,如果区间树不够,就从右往左种
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int maxlen = sc.nextInt();
int n = sc.nextInt();
Node[] nodes = new Node[n];
for (int i = 0; i < nodes.length; i++) {
nodes[i] = new Node(sc.nextInt(), sc.nextInt(), sc.nextInt());
}
sc.close();
//排序是按照右面从小到大,
//这里不断利用中间的点,
//相反,我如果按照右面从大到小, 我就是不断取最两边的点
Arrays.sort(nodes);
boolean[] bool = new boolean[maxlen + 1];
int count = 0;
for (int i = 0; i < nodes.length; i++) {
int nums = 0;
//看当前区间有多少种树的
for (int j = nodes[i].left; j <= nodes[i].right; j++) {
if (bool[j]) {
nums++;
}
}
//如果不够的话,在往中间加树,加到符合条件
int j = nodes[i].right;
while (nums < nodes[i].value) {
if (!bool[j]) {
//加树的过程记录加的数量
count++;
nums++;
bool[j] = true;
}
j--;
}
}
System.out.println(count);
}
}
class Node implements Comparable<Node> {
int left;
int right;
int value;
public Node(int left, int right, int value) {
this.left = left;
this.right = right;
this.value = value;
}
@Override
public int compareTo(Node o) {
return this.right - o.right;
}
}
相关文章
- java卸载 安装错误_Java卸载后无法重新安装 提示已安装过[通俗易懂]
- java 实现多态_Java多态的实现原理
- java实现ajax_Ajax&Java
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- java通过拦截器实现项目每次执行sql耗时统计,可配置是否打印
- Java 零拷贝_java clone 深拷贝
- Java 环境下用 PDFBox 实现 PDF 文档转换 JPG 图片的功能
- Java ReEntrantLock 之 Condition条件(Java代码实战-002)详解编程语言
- Java操作MySQL数据库:实现看似不可能的梦想(java连接mysql数据库)
- MySQL封装之Java实现(mysql封装java)
- 数据库Java连接MySQL数据库实现数据添加(java添加mysql)
- Oracle转Java实现跨平台开发的奇妙之旅(oracle转java)
- 策略探索Redis中Java实现的过期策略(redisjava过期)
- Java调用Redis实现高性能数据存储(java调用redis)
- 机制实现Redis中Java的过期机制(redisjava过期)
- Java实现Redis入门指南(redis入门Java)
- Java中使用Redis包实现高效缓存(redis包java)
- MySQL之Java实现主从复制(java mysql主从)
- Oracle数据库中调用Java实现可扩展应用程序(oracle内嵌java)
- Java连接Oracle实现简单快捷的数据传输(java联结oracle)
- Java模拟Oracle实现稳定数据库性能(java模仿oracle)
- 编程Oracle数据库中实现Java编程的突破之道(oracle使用java)
- 利用Redis锁实现Java程序并发控制(redis锁java实现)
- java中实现汉字按照拼音排序(示例代码)
- java实现创建缩略图、伸缩图片比例生成的方法
- Java拖曳鼠标实现画线功能的方法