19-11-13-Night-∠
连夜补博客
ZJ:
看见T1就自闭了。(高考数学)(但是好像不是)
三个暴力就结束了。
35
|
Miemeng | 20
00:00:41
|
10
00:00:41
|
10
00:00:41
|
40
00:00:41
|
TJ:
T1
又是凸包凹包口包吕包旧包巨包
那么我们先看下函数$f(x)=a x^2 + b x$
这函数好啊。
都过原点。
然鹅并没有用,
好象还是有点用的。
我们考虑化柿子(话说这玩意有什么柿子可说)
$a_1 x^2+b_1x < a_2 x^2 + b_2 x$
那么就可以分情况讨论了,
$x>0 , a_1 x + b_1 < a_2 x + b_2 $
$x<0 , a_1 x + b_1 > a_2 x + b_2 $
$x=0$直接输出$0$
我们发现可以用一条直线来‘代表’这个二次函数。
于是求$x>0$时的下凸包,$x>0$时的上凸包。
细节较多,尤其是……
还是见代码吧。
- #include <algorithm>
- #include <iostream>
- #include <cstring>
- #include <cstdio>
- #define N 555555
- #define LL long long
- #define LF long double
- #define ans(k) ans[(k)+44444]
- using namespace std;
- int ln,qn;
- struct Lines{
- LL ar,br;
- LL fig(LL x){
- return ar*x*x+br*x;
- }
- }ps[N];
- template <typename T>
- class Mystack{
- T A[N*10];
- public:
- int tp;
- Mystack(){tp=0;}
- T& operator [](const int id){return A[id];}
- bool empty(){return tp==0;}
- int size(){return tp;}
- void clear(){tp=0;}
- void push(const T k){A[tp++]=k;}
- T top(){return A[tp-1];}
- T ttop(){return A[tp-2];}
- void pop(){tp--;}
- void pour(){
- puts("Stack:");
- for(int i=0;i<tp;i++)
- cout<<A[i].ar<<" "<<A[i].br<<endl;
- puts("---------");
- }
- };
- Mystack <Lines> st1,st2;
- LL ans[N];
- bool CMP1(const Lines &a,const Lines &b){
- return a.ar==b.ar?a.br<b.br:a.ar<b.ar;
- }
- bool CMP2(const Lines &a,const Lines &b){
- return a.ar==b.ar?a.br>b.br:a.ar<b.ar;
- }
- LF jud(Lines a,Lines b){
- return 1.0l*(b.br-a.br)/(a.ar-b.ar);
- }
- int main(){
- #ifndef LOCAL
- freopen("A.in" ,"r",stdin );
- freopen("A.out","w",stdout);
- #endif
- int a;
- scanf("%d%d",&ln,&qn);
- for(int i=1;i<=ln;i++){
- scanf("%lld%lld",&ps[i].ar,&ps[i].br);
- }
- sort(ps+1,ps+ln+1,CMP1);
- for(int i=1;i<=ln;i++){
- while(!st1.empty() && ps[i].ar==st1.top().ar) st1.pop();
- while(st1.size()>=2 && jud(st1.top(),st1.ttop()) >= jud(ps[i],st1.ttop()))
- st1.pop();
- st1.push(ps[i]);
- }
- int j=0;
- for(int i=1;i<44444;i++){
- while(j<st1.tp-1 && jud(st1[j],st1[j+1])<=1.*i)j++;
- ans(i)=st1[j].fig(i);
- }
- sort(ps+1,ps+ln+1,CMP2);
- for(int i=1;i<=ln;i++){
- while(!st2.empty() && ps[i].ar==st2.top().ar) st2.pop();
- while(st2.size()>=2 && jud(st2.top(),st2.ttop()) <= jud(ps[i],st2.ttop()))
- st2.pop();
- st2.push(ps[i]);
- }
- j=0;
- for(int i=-1;i>-44444;i--){
- while(j<st2.tp-1 && jud(st2[j],st2[j+1])>=1.*i)j++;
- ans(i)=st2[j].fig(i);
- }
- for(int i=1;i<=qn;i++){
- scanf("%d",&a);
- printf("%lld\n",ans(a));
- }
- }
T2T3咕了,不如右方跳链查询。
19-11-13-Night-∠的更多相关文章
- Java每日一面(Part1:计算机网络)[19/11/13]
作者:晨钟暮鼓c个人微信公众号:程序猿的月光宝盒 1. HTTP相关[1] 1.1 HTTP简介 HTTP协议,即超文本传输协议,属于应用层的协议,他是基于请求和响应模式的无状态的 应用层协议. ...
- 数列F[19] + F[13]的值
已知数列如下:F[1]=1, F[2]=1, F[3]=5,......,F[n] =F[n-1] + 2*F[n-2],求F[19] + F[13]? #include <stdio.h> ...
- iOS app提交审核 11.13条款问题
今年开年到现在.提交app应用一直招拒,这个问题我想不明白,感觉就是一个坑.所以贴出来给大家看看. 发件人 Apple11.13 - Apps that link to external mechan ...
- Notes of Daily Scrum Meeting(11.13)
Notes of Daily Scrum Meeting(11.13) 今天邹欣老师给我们讲课大家还是很有收获的,大家课堂的参与度确实有了很大的提升,而且邹欣老师关于项目Scrum Meeting报告 ...
- 2017/11/13 Leetcode 日记
2017/11/13 Leetcode 日记 463. Island Perimeter You are given a map in form of a two-dimensional intege ...
- VR/AR软件—Mirra测试(截至2017/11/13),使AR/VR创作更加便捷
Mirra(截至2017/11/13)https://www.mirra.co/ 1.主要特点: 目前仅支持VR,不支持AR 在浏览器(仅支持chrome,firefox)上进行创作,但目前不能直接在 ...
- 11.13的C++##不想写结构,更不爱指针
//2019.11.13 卑微的Loving-Q瞎写的程序 报错请更改VS中的SDL检查// 我要去嗨了,在线卑微 1 #include<iostream> #include<std ...
- Update 19.11 for Azure Sphere
今天,微软发布了面向Azure Sphere的19.11更新,其主要亮点就是加入了对开发工具Visual Studio Code和Linux开发环境的支持.具体来讲,本次更新包含3个部分: 1. Az ...
- 「考试」noip模拟9,11,13
9.1 辣鸡 可以把答案分成 每个矩形内部连线 和 矩形之间的连线 两部分 前半部分即为\(2(w-1)(h-1)\),后半部分可以模拟求(就是讨论四种相邻的情况) 如果\(n^2\)选择暴力模拟是有 ...
- 2019-2020 ACM-ICPC Brazil Subregional Programming Contest (11/13)
\(2019-2020\ ACM-ICPC\ Brazil\ Subregional\ Programming\ Contest\) \(A.Artwork\) 并查集,把检测区域能在一起的检测器放在 ...
随机推荐
- 15-Ubuntu-文件和目录命令-查看目录内容-ls-2
4. ls和通配符的使用 通配符适用的地方:shell命令行或者shell脚本中. 正则表达式适用的地方:字符串处理时,一般有一般正则和Perl正则. 正则表达式与通配符有相同的符号但是意义不同!! ...
- 蒟蒻kc的垃圾数列
题目背景 在某教练的强迫之下,我一个蒟蒻居然出题了!!!出题了!!!(数据太水别找我qwq) 好的,JL说好的一题100快拿来 题目描述 首先,给你一个空的长度为n的序列(废话) 然后,你有一系列神奇 ...
- WebService接口测试
- Red Hat Linux安装vsftpd
一.安装分区方案: (1)交换分区,两倍内存 (2)/boot分区 (3)/剩余的所有空间语言选择English(英语) 二. 配置IPIP地址.子网掩码: 编辑 /etc/sysconfig/net ...
- XMLHTTPRequest状态status完整列表
当用户试图通过 HTTP 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回一个表示该请求的状态的数字代码.状态代码可以指明具体请求是否已成功,还可以揭示请求失 ...
- 用AJAX传值参数是中文时可能会乱码
1.ajax代码 function SelectSemesterBySchYear() { // alert('sssssss'); var temp1 = document.getElementBy ...
- 【2-SAT】[JSOI2010]满汉全席
感觉方法和题解差不多,但是题解写的好烦啊...也不是烦,就是很复杂 这里建议开一个数组表示当前这个点选或者不选的编号,这样之后自己理思路也会清楚一点 然而我调了一个小时才发现我是Tarjan写错了.. ...
- bzoj 3579: 破冰派对
题意: 给你一个图,问你有多少个方案把他分成连个新的图.使得一个图是一个团,另外一个是独立集 一些闲话: 以前做过一次这个题..当时听说爆搜可以过,就无脑莽过去了.. 也没有思考为什么爆搜能过,或者有 ...
- 揭秘 Flink 1.9 新架构,Blink Planner 你会用了吗?
本文为 Apache Flink 新版本重大功能特性解读之 Flink SQL 系列文章的开篇,Flink SQL 系列文章由其核心贡献者们分享,涵盖基础知识.实践.调优.内部实现等各个方面,带你由浅 ...
- 扩展gcd求逆元
当模数为素数时可以用费马小定理求逆元. 模数为合数时,费马小定理大部分情况下失效,此时,只有与模数互质的数才有逆元(满足费马小定理的合数叫伪素数,讨论这个问题就需要新开一个博客了). (对于一个数n, ...