博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 1016 E - Rest In The Shades
阅读量:6682 次
发布时间: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

你可能感兴趣的文章
C、C++控制台程序、Windows API程序、MFC程序理解与比较
查看>>
纷争再起:Flutter-UI绘制解析
查看>>
JVM故障分析排障用到的一些命令和工具
查看>>
查看 UUID
查看>>
关于 rabbitmq和kafka 的一点点理解
查看>>
svn查看日志显示连接服务器失败。你想使用缓存中的数据吗?
查看>>
【译】学习vi编辑器——前言
查看>>
怎样利用缓存服务器来负载均衡
查看>>
aop/log4j 打日志
查看>>
博客论坛无法邮箱认证解决方法
查看>>
DY模拟器模拟PIX做防火墙failover
查看>>
PXE网络安装Linux
查看>>
图解VMware内存机制
查看>>
【翻译】Win with APIs by keeping it simple
查看>>
1月15日.xyz域名总量10强:新网排名降至第八
查看>>
1月末中国域名商解析量13强:西数破百万指日可待
查看>>
分布式项目规范总结
查看>>
阿里创新自动化测试工具平台--Doom
查看>>
Centos 5.5-yum安装配置LNMP
查看>>
跟 陌生人吃饭-这样的网站你认为如何?
查看>>