首页 > 其他分享 >太阳(蓝桥杯14届)

太阳(蓝桥杯14届)

时间:2024-04-11 14:57:30浏览次数:30  
标签:14 double 太阳 蓝桥 length static sc public nextDouble

https://www.lanqiao.cn/problems/3529/learning/?subject_code=2&group_code=5&match_num=14&match_flow=1&origin=cup

 1 import java.util.*;
 2 // 1:无需package
 3 // 2: 类名必须Main, 不可修改
 4 import java.util.Map.Entry;
 5 
 6 public class Demo1 {
 7     // 区间树,储存影子的区间
 8     static TreeMap<Double, Double> m = new TreeMap<>();
 9 
10     public static void main(String[] args){
11         Scanner sc=new Scanner(System.in);
12         
13         int n=sc.nextInt();
14         double x=sc.nextDouble();
15         double y=sc.nextDouble();
16         
17         List<Line> lines=new ArrayList<>();
18         
19         for (int i = 0; i < n; i++) {
20             double left=sc.nextDouble();
21             double height=sc.nextDouble();
22             double length=sc.nextDouble();
23             
24             lines.add(new Line(left, height, length));
25         }
26         
27         lines.sort((l1,l2)->Double.compare(l2.y, l1.y));
28         
29         long res=0;
30         
31         for(Line o:lines) {
32             double l=GetTouYing(o.leftx,o.y,x,y);
33             double r=GetTouYing(o.rightx, o.y, x, y);
34             if(!QuaryCover(l,r)) res++;
35             AddRange(l,r);
36         }
37         
38         sc.close();
39         System.out.print(res);
40     }
41     
42     public static void AddRange(double l,double r) {
43         Entry<Double,Double> L=m.floorEntry(l);
44         Entry<Double,Double> R=m.floorEntry(r);
45         
46         if(L != null && L.getValue()>=l) l=L.getKey();
47         if(R != null && R.getValue()>=r) r=R.getValue();
48         
49         m.subMap(l, r).clear();
50         m.put(l, r);
51     }
52     
53     public static boolean QuaryCover(double l,double r) {
54         Entry<Double,Double> L=m.floorEntry(l);
55         return L != null && L.getValue()>=r;
56     }
57     
58     public static double GetTouYing(double x1,double y1,double x2,double y2) {
59         return x1 - y1 * (x1 - x2) / (y1 - y2);
60     }
61     
62     public static class Line {
63         double leftx;
64         double rightx;
65         double y;
66         double length;
67         
68         Line(double left,double height,double length){
69             this.leftx=left;
70             this.y=height;
71             this.length=length;
72             this.rightx=left+length;
73         }
74     }
75 }

 

标签:14,double,太阳,蓝桥,length,static,sc,public,nextDouble
From: https://www.cnblogs.com/saucerdish/p/18129177

相关文章

  • 信息学奥赛一本通:1404:我家的门牌号
    题目描述】我家住在一条短胡同里,这条胡同的门牌号从1开始顺序编号。若其余各家的门牌号之和减去我家门牌号的两倍,恰好等于n,求我家的门牌号及总共有多少家。数据保证有唯一解。【输入】一个正整数n。n<100000。【输出】一行,包含两个正整数,分别是我家的门牌号及总共......
  • 信息学奥赛一本通:1403:素数对
    【题目描述】两个相差为2的素数称为素数对,如5和7,17和19等,本题目要求找出所有两个数均不大于n的素数对。【输入】一个正整数n(1≤n≤10000)。【输出】所有小于等于n的素数对。每对素数对输出一行,中间用单个空格隔开。若没有找到任何素数对,输出empty。【输入样例】......
  • SIPA INAF U8145 危地马拉的贫困和不平等关系分析
    问题集3:SIPAINAFU8145危地马拉的贫困和不平等关系分析定于4月5日星期五晚上11:59,上传到Courseworks上的一个pdf文件中在本练习中,您将对危地马拉的贫困和不平等现象进行评估。数据来自《生活条件百科全书》(ENCOVI)2000年,由国家统计研究所(INE)收集危地马拉国家统计研究所,在世界银行......
  • 【NC214362】第 k 小
    题目第k小堆(优先队列)思路这道题是求一个数据流中的第kkk小数,我们可以维护一个大根堆,堆的容量为k......
  • 第十二届蓝桥杯省赛真题(C/C++大学B组)
    目录#A空间#B卡片#C直线#D货物摆放#E路径#F时间显示#G砝码称重#H 杨辉三角形#I双向排序#J括号序列#A空间#include<bits/stdc++.h>usingnamespacestd;intmain(){ cout<<256*1024*1024/4<<endl; return0;}#B卡片#include<bit......
  • 2024SMU蓝桥训练2补题
    C-密文搜索思路:不难。voidsolve(){//C--密文搜索可以不是字符串哈希--因为只需要知道相同长度字符串对字母出现情况,可以对字符串进行!!!排序!!!stringstr;cin>>str;intn,ans=0;cin>>n;unordered_map<string,int>mp;for(inti=1;i<=n;i++){......
  • 前端学习-vue视频学习014-组件通信
    尚硅谷视频教程通信方式1propsparent传child--只能传递非函数//Parent.vue<template><divclass="parent"><h3>parent</h3> <h3>car:{{car}}</h3> <Child:car="car"/></div></templat......
  • P8791 [蓝桥杯 2022 国 AC] 内存空间 题解
    题面一道比较简单模拟题,但是要分类讨论一.读完题你应该知道的1.输入一共有T+1行,输入含有空格。(处理1)2.对于每一行变量定义的语句,只会出现一种变量类型,type只可能是int或long,只有一个分号。(处理1,处理2)3.统计内存过程中用B做单位,保证一定有输出,但在输出时要换......
  • P8779 [蓝桥杯 2022 省 A] 推导部分和
    并查集板子题#include<bits/stdc++.h>#defineR(x)x=read()#defineRLL(x)x=readLL()usingnamespacestd;typedeflonglongLL;constintN=1e5+5;inlineintread(){intx=0,f=1;charch=getchar();while(ch<'0'|......
  • 蓝桥杯单片机基于西风模板超声波底层
    超声波是外设需要重新自己编写c文件和h文件在c文件中需要编写两个函数一个是波的初始化一个是方波的读取voidWave_Init(){unsignedchari;for(i=0;i<8;i++){TX=1;发送信号Delay(12)us哦Tx=0在延时12us}这样波的初始化就好了}unsignedcharWave_Read(){unsig......