Java实现洛谷P1250 种树 (暴力)
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实现洛谷P1250 种树 (暴力)的更多相关文章
- 洛谷P1250种树(贪心)
题目描述 一条街的一边有几座房子.因为环保原因居民想要在路边种些树.路边的地区被分割成块,并被编号成1..N.每个部分为一个单位尺寸大小并最多可种一棵树.每个居民想在门前种些树并指定了三个号码B,E, ...
- HDU 1384 Intervals &洛谷[P1250]种树
差分约束 差分约束的裸题,关键在于如何建图 我们可以把题目中给出的区间端点作为图上的点,此处应注意,由于区间中被标记的点的个数满足区间加法,这里与前缀和类似,对于区间[L..R]来说,我们加入一条从L ...
- 题解——洛谷P1250 种树(差分约束)
一道看一眼就知道差分约束的题目 但是最短路spfa的时候注意松弛条件是 if(dis[u]+w[i]<dis[v[i]]) dis[v[i]]=dis[u]+w[i]; 不能写成 if(dis[ ...
- 洛谷 P1250 种树 题解
差分约束系统,维护前缀和,根据式子d[ b ] < = d[ e + 1 ] - t,可以看出要连e和b - 1,但占用了超级源点0,所以要把区间向后移,这样就可以用超级源点0来保持图的连通性( ...
- 洛谷P1484 种树&洛谷P3620 [APIO/CTSC 2007]数据备份 题解(堆+贪心)
洛谷P1484 种树&洛谷P3620 [APIO/CTSC 2007]数据备份 题解(堆+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/132 ...
- Guard Duty (medium) Codeforces - 958E2 || (bzoj 2151||洛谷P1792) 种树 || 编译优化
https://codeforces.com/contest/958/problem/E2 首先求出N个时刻的N-1个间隔长度,问题就相当于在这些间隔中选K个数,相邻两个不能同时选,要求和最小 方法1 ...
- Java实现 洛谷 Car的旅行路线
输入输出样例 输入样例#1: 1 3 10 1 3 1 1 1 3 3 1 30 2 5 7 4 5 2 1 8 6 8 8 11 6 3 输出样例#1: 47.5 import java.util. ...
- Java实现 洛谷 P1738 洛谷的文件夹
题目描述 kkksc03是个非凡的空想家!在短时间内他设想了大量网页,然后总是交给可怜的lzn去实现. 洛谷的网页端,有很多文件夹,文件夹还套着文件夹. 例如:/luogu/application/c ...
- Java实现洛谷 P1428 小鱼比可爱
题目描述 人比人,气死人:鱼比鱼,难死鱼.小鱼最近参加了一个"比可爱"比赛,比的是每只鱼的可爱程度.参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只 ...
随机推荐
- 《深入理解Java虚拟机》第 3 版里面到底多了哪些知识点?本文竟然得到了本书作者的认可!
这是why的第 47 篇原创文章 荒腔走板 大家好,我是 why.老规矩,先是简短的荒腔走板聊聊生活. 上面的图是前几天拍的,那天晚上下班后,刚刚走进小区就看到了这一轮弯月和旁边那一颗特别特别亮的星星 ...
- qgis控制滚轮转动地图比例尺的变化幅度
需求:在比例尺1万-10万之间,鼠标滚轮转动比例尺的变化幅度为1万重写滚轮事件 void Xx::wheelEvent(QWheelEvent*event){ double curScale = sc ...
- [工具]微软的学习平台Microsoft Learn很好用,推荐一下
1. 什么是Microsoft Learn Microsoft Learn是微软这两年大力推广的全新学习平台,可提供 Microsoft 产品交互式学习体验.基本上无需登录即可使用,但登录后可以使用更 ...
- Python 简明教程 --- 0,前言
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io Life is short, you need Python! -- Bruce Eckel 0,关 ...
- 《C程序设计语言》 练习2-8
问题描述 练习 2-8 编写一个函数rightrot(x, n),该函数返回将x循环右移(即从最右端移出的位将从最左端移入)n(二进制)位后所得到的值. Write a function rightr ...
- 攻防世界-web-高手进阶区018-easytornado
1.查看主页面 2.查看其他页面,/welcome.txt http://111.198.29.45:39004/file?filename=/welcome.txt&filehash=9ae ...
- 搜索引擎优化(SEO)
一.SEM SEM(Search Engine Marketing)即搜索引擎营销.SEM是一种新的网络营销模式.SEM所做的就是全面有效地利用所搜引擎来进行网络行销推广.SEM追求最高的性价比,以最 ...
- 手把手numpy教程【二】——数组与切片
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Numpy专题的第二篇,我们来进入正题,来看看Numpy的运算. 上一篇文章当中曾经提到过,同样大小的数据,使用Numpy的运算速度会 ...
- eclipse导入工程报错-项目或者文件有红叉的解决方案
1.Java的JDK或者Tomcat版本不一致 像这样的我们首先找到项目---->Build Path--->Config BuildPath,将找不到的JDK或者Tomcat进行删除和添 ...
- python 使用xlsxwriter 写入数据时,当数据中链接的后面包含空格时(如:"http://*** "),导出问题打开报错
python 在使用 xlsxwriter组件写入数据时,当数据包含类似“http://*** /”数据时,导出的excel,打开时会提示如下错误: 没有查到相关的资料处理这个问题,可能原因为exce ...