博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 1016 E - Rest In The Shades
阅读量:6697 次
发布时间:2019-06-25

本文共 1807 字,大约阅读时间需要 6 分钟。

思路:

相似

红色的长度等于(y - s) /  y 倍的 A' 和 B' 之间的 fence的长度

A' 是 p 和 A 连线和 x 轴交点, B'同理

交点也可以用相似求,然后lower_bound找到交点在哪里,然后通过预处理的fence长度的前缀和就可以求了,处理好边界

#pragma GCC optimize(2)#pragma GCC optimize(3)#pragma GCC optimize(4)#include
using namespace std;#define fi first#define se second#define pi acos(-1.0)#define LL long long//#define mp make_pair#define pb push_back#define ls rt<<1, l, m#define rs rt<<1|1, m+1, r#define ULL unsigned LL#define pll pair
#define pii pair
#define piii pair
#define pdd pair
#define mem(a, b) memset(a, b, sizeof(a))#define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);#define fopen freopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);//headconst int N = 2e5 + 5;pdd f[N];double sum[N];int main() { int n, q, l, r; double s, a, b, x, y; scanf("%lf %lf %lf", &s, &a, &b); scanf("%d", &n); for (int i = 1; i <= n; i++) scanf("%lf %lf", &f[i].fi, &f[i].se); sum[0] = 0; for (int i = 1; i <= n; i++) { sum[i] = sum[i-1] + f[i].se - f[i].fi; } scanf("%d", &q); while(q--) { scanf("%lf %lf", &x, &y); double c1 = (a*y - s*x)/(y - s); double c2 = (b*y - s*x)/(y - s); int t = lower_bound(f+1, f+n+1, pdd(c1, 0)) - f; double ans = 0; if(t == 1) l = 1; else { l = t; if(c1 < f[t-1].se) ans += f[t-1].se - c1; } int tt = lower_bound(f+1, f+n+1, pdd(c2, 0)) - f; if(tt == 1) r = tt-1; else { r = tt-1; if(c2 < f[tt-1].se) ans -= f[tt-1].se - c2; } if(r >= l) ans += sum[r] - sum[l-1]; printf("%.10f\n", ans * (y - s) / y); } return 0;}

 

转载于:https://www.cnblogs.com/widsom/p/9453494.html

你可能感兴趣的文章
LeetCode 321. Create Maximum Number
查看>>
如何保证MongoDB的安全性?
查看>>
学习过程中的一些想法
查看>>
PHP 处理金额
查看>>
vue如何实现单页缓存方案分析
查看>>
WEB/H5性能优化总结
查看>>
js转换字符串为base64位
查看>>
vue-i18n使用及踩坑记录
查看>>
@Java | Thread & synchronized - [ 线程同步锁 基本使用]
查看>>
从拿到班车手册.xls到搜索附近班车地点
查看>>
Python学习之路20-数据模型
查看>>
黄文俊:Serverless小程序后端技术分享
查看>>
《netty实战》阅读笔记(2)——Netty 的数据容器ByteBuf
查看>>
Vue 教程第四篇—— Vue 实例化时基本属性
查看>>
3分钟学会SVN:SVN快速上手
查看>>
ZooKeeper(二)ZooKeeper能做什么?
查看>>
【Java学习】JDBC可以再深一点理解
查看>>
阿里云上Kubernetes集群联邦
查看>>
react 项目总结
查看>>
ES6:Set和Map
查看>>