D. A Shade of Moonlight

http://codeforces.com/contest/989/problem/D

emm……贪心吧。

首先呢,那个月亮是一个点,并不是一个长度为1,在[-0.5,0.5]之间的线段,我被Note忽悠了

思路:确保最后一个点消失时能被风吹到原点

设下标为1的是从左往右,下标为2的是从右往左,最后一个点有方程式:

s1+t=s2-t+l

得t=(s2-s1+l)/2

该点的坐标为

x=s1+t=(s2+s1+l)/2

风速最小为

wmin=x/t=(s2+s1+l)/(s2-s1+l)<=wmax

也就是

Math.abs(s1+s1+l)<=Math.abs(s2-s1+l)*wmax

因为我们假设了s1是从左往右的,自然有v1=1,v2=-1,s1<s2

这个题有2个必要优化,一是sort优化:因为只要知道(i,j)的对数,所以下标可以打乱,将所有点放入一个队列,sort,从小找到大,遇到第一个可以的,后面一定都可以,因为两朵云间距离越短风速就要越大嘛

 1 import java.util.Arrays;
 2 import java.util.Scanner;
 3
 4
 5 public class Main {
 6
 7     public static void main(String[] args) {
 8         Scanner io = new Scanner(System.in);
 9         int n = io.nextInt(), l = io.nextInt(), wmax = io.nextInt();
10         long[] p1 = new long[n], p2 = new long[n];
11         int top1 = 0, top2 = 0;
12
13         for (int i = 0; i < n; i++) {
14             int s = io.nextInt(), v = io.nextInt();
15             if (v == 1) p1[top1++] = s;
16             else p2[top2++] = s;
17         }
18         Arrays.sort(p1, 0, top1);
19         Arrays.sort(p2, 0, top2);
20
21         long ans = 0;
22         for (int i = 0, j = 0; i < top1; i++) {
23             while (j < top2 &&
24                     (p1[i] > p2[j] ||
25                             Math.abs(p1[i] + p2[j] + l) >=
26                                     (p2[j] - p1[i] + l) * wmax)) j++;
27             ans += top2 - j;
28         }
29         System.out.println(ans);
30     }
31
32 }

原文地址:https://www.cnblogs.com/towerbird/p/11251840.html

时间: 2024-10-08 17:57:01

D. A Shade of Moonlight的相关文章

Codeforces 989D A Shade of Moonlight

A Shade of Moonlight 列列式子发现, 对于同一个云来说只有反向的云才能和它相交, 然后我们发现这个东西有单调性,然后二分就好啦. #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk make_pair #define PLL pair<LL, LL> #define PLI pair<LL, int> #define PI

[CF989D]A Shade of Moonlight:几何+二分答案+玄学的思路

题意: 一条一维数轴上,有n个左端点为xi,长度l的区间.以向右为正方向,第i个区间的移动速度为vi+w(vi=1或-1,|w|<=wmax,所有区间的w相同). 输入n,l,wmax,vi. 输出无序数对(i,j)的个数,使第i个区间和第j个区间有一个合法的w的取值,在某一时刻同时覆盖原点(不包括区间左.右边界). (n<=1e5) 思路: 因为w的取值是不定的,所以可以看成是每个区间以vi的速度运动,而原点以-w的速度运动. 很容易画出一个时间-位置图像(横轴位置,纵轴时间),其中橙色区域

UVALive 6092 Catching Shade in Flatland --枚举+几何计算

题意:x=[-200,200],y=[-200,200]的平面,一天中太阳从不同角度射到长椅(原点(0,0))上,有一些树(用圆表示),问哪个时刻(分钟为单位)太阳光线与这些圆所交的弦长总和最长.太阳距离原点总是500m.(这些圆不会互相相交,每个圆都不包括原点或者不经过原点) 解法:直接暴力24*60分钟,找出此时的角度,然后求出直线方程,再枚举每个圆,求出弦长.注意这里每个圆都不包括原点,所以直线与圆的交点一定在同一侧,所以..我当时想多了,没看清题目.把他当成可以包含原点了,代码超长,幸好

用shade 打包,过滤掉一些不想打进big jar内的文件

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals&

施用 maven shade plugin 解决 jar 或类的多版本冲突

施用 maven shade plugin 解决 jar 或类的多版本冲突 使用 maven shade plugin 解决 jar 或类的多版本冲突java 应用经常会碰到的依赖的三方库出现版本冲突,下面举一个具体的例子. Dubbo 是一个分布式的服务框架,其中的一种 rpc 实现(dubbo 协议)使用 hessian 3.2.0 来做序列化,另外一种实现(hsf协议)同样使用了 hesssian,但使用的版本是 3.0.14.如果现在一个应用中同时使用了 dubbo 协议和 hsf 协议

[Apache Maven Shade Plugin] [example] [001] 官方例子:includes-excludes

链接地址:[Selecting Contents for Uber JAR](http://maven.apache.org/plugins/maven-shade-plugin/examples/includes-excludes.html) apache网站在国内打开太慢了.因此我将这些有用的资源收集起来,保存在博客中! Apache Maven Shade Plugin:是一个Maven打包的插件.其官网英文定义如下:This plugin provides the capability

Moonlight项目概述

Moonlight,一个文明式知识管理系统. 背景 在社会分工极大细化的时代,当我们想靠自己(或小团体)动手制作一个现代产品的时候,绝大部分人会茫然而不知所措,无从下手.我开发的Moonlight系统就是想给这样的人一份指引,就像在黑夜里的一抹月光. 特点 文明式科技树 UGC CMDB 能力等级评定 技术选型 Web框架:JFinal v1.9 前端:Amaze UI v2.2 PS:我选的是没接触过的新技术,是国产开源的代表,从头开始. 开发路线 v0.1 Todo List MVC基础架构

Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:2.0:shade

Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:2.0:shade (default) on project QMServer: Execution default of goal org.apache.maven.plugins:maven-shade-plugin:2.0:shade failed: A required class was missing while executing org.apach

maven shade插件小记

maven shade plugin插件小用 项目中一直使用assembly插件来整合依赖包到一个胖jar,在做这个akka http项目的时候,在scala ide的run/debug中都执行正常,打包后执行就一直报报不到configuration项目的问题. 判断是assembly在解压合并相关配置jar包中的同名配置文件时丢失所致,例如引用中使用了akka-http与akka相关的jar包,它们都有reference.conf,没有进行合并,找到了问题根本原因. 解决方法: 使用maven