gym101808 E

提问:我是什么品种的傻逼?

哇看到积水兴高采烈啊。然后就走上了一条不归路。

为什么不归呢,因为我这个法子就是不对的,我总是在想很多很多点围成的一块区域,然后求这一块区域的面积。

然后尝试了各种扫描方法,递增序列,找最低,找最高啊什么的。

自闭。

搜题解:考虑所有相邻的两个点,和他们两边的制高点。那么面积可能是 梯形(制高点高),直角三角形(相交),0.

然后就完了。。。

哇小学数学题难死了啊。

我是智障啊。

 

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef double db;
 4 const int N = 1e5+5;
 5 const db eps=1e-6;
 6 const db pi=acos(-1);
 7 int sign(db k){
 8     if (k>eps) return 1; else if (k<-eps) return -1; return 0;
 9 }
10 int cmp(db k1,db k2){ return sign(k1-k2);}
11 struct point {
12     db x,y;
13     point operator + (const point &k1) const{return (point){k1.x+x,k1.y+y};}
14     point operator - (const point &k1) const{return (point){x-k1.x,y-k1.y};}
15     point operator * (db k1) const{return (point){x*k1,y*k1};}
16     point operator / (db k1) const{return (point){x/k1,y/k1};}
17     db abs(){ return sqrt(x*x+y*y);}
18     db dis(point k1){ return (*this-k1).abs();}
19 };
20 db cross(point k1,point k2){ return k1.x*k2.y-k1.y*k2.x;}
21 db dot(point k1,point k2){ return k1.x*k2.x+k1.y*k2.y;}
22 point proj(point k1,point k2,point q){
23     point k=k2-k1;return k1+k*(dot(q-k1,k)/k.abs());
24 }
25 point getLL(point k1,point k2,point k3,point k4){
26     db w1=cross(k1-k3,k4-k3),w2=cross(k4-k3,k2-k3); return (k1*w2+k2*w1)/(w1+w2);
27 }
28 db area(vector<point> A){ //
29     db ans=0;
30     for (int i=1;i<A.size()-1;i++)
31         ans+=cross(A[i]-A[0],A[i+1]-A[0]);
32     return ans/2;
33 }
34 int t,n;
35 point a[N];
36 db pre[N],las[N];//
37 vector<point> v;
38 int main(){
39     //freopen("awsl.in","r",stdin);
40     scanf("%d",&t);
41     while (t--){
42         memset(pre,0, sizeof(pre));
43         memset(las,0, sizeof(las));
44         memset(a,0, sizeof(a));
45         scanf("%d",&n);
46         for(int i=1;i<=n;i++){
47             scanf("%lf%lf",&a[i].x,&a[i].y);
48         }
49         for(int i=1;i<=n;i++){
50             pre[i]=max(pre[i-1],a[i].y);
51         }
52         for(int i=n;i>=1;i--){
53             las[i]=max(las[i+1],a[i].y);
54         }
55         db ans = 0;
56         for(int i=1;i<n;i++){
57             if(a[i].y>a[i+1].y){
58                 db cut = min(min(las[i+1],pre[i+1]),min(las[i],pre[i]));
59                 if(cut>=a[i].y){
60                     ans+=(cut-a[i].y+cut-a[i+1].y)*(a[i+1].x-a[i].x)/2;
61                 } else if(cut>a[i+1].y){
62                     point p1 = point{1.0,cut};
63                     point p2 = point{2.0,cut};
64                     point xxx = getLL(p1,p2,a[i],a[i+1]);
65                     ans+=(xxx.y-a[i+1].y)*(a[i+1].x-xxx.x)/2;
66                 }
67             } else{
68                 db cut = min(min(las[i+1],pre[i+1]),min(las[i],pre[i]));
69                 if(cut>=a[i+1].y){
70                     ans+=(cut-a[i].y+cut-a[i+1].y)*(a[i+1].x-a[i].x)/2;
71                 } else if(cut>a[i].y){
72                     point p1 = point{1.0,cut};
73                     point p2 = point{2.0,cut};
74                     point xxx = getLL(p1,p2,a[i],a[i+1]);
75                     ans+=(xxx.y-a[i].y)*(xxx.x-a[i].x)/2;
76                 }
77             }
78         }
79         printf("%.10f\n",ans);
80     }
81 }
View Code

 

转载于:https://www.cnblogs.com/MXang/p/10495135.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394852.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【站点部署】解析二级域名并部署站点

开设原因 : 近期在学健身, 上一份工作辞掉后, 在北京找了家私人教练培训学校, 进行为期四个月的健身培训, 这个比在健身房找私教专业多了, 被健身房私人教练坑慘了, 说多了都是泪, 已经培训了将近一个半月, 学习了基础私教, 普拉提, 这在学习康复课程, 之后还有功能性 和 综合格…

恶意软件伪装“正规军”,撕开Booster Cleaner“画皮”下的真相

经常使用手机浏览器阅读小说的用户都知道&#xff0c;在浏览器页面经常会出现一些推广游戏应用、手机清理应用等应用的弹窗广告。有时出于方便&#xff0c;我们也会选择直接点开这些弹窗广告进行应用下载。但这种行为并不安全&#xff0c;部分恶意应用会先伪装成“正规军”诱导…

python初学者代码示例_python基础示例

7、写代码 &#xff08;1&#xff09;实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!_name "seven"_pwd "123"name input("username:").strip() pwd input("password:").strip()if name _…

Lucene 基础理论 (zhuan)

http://www.blogjava.net/hoojo/archive/2012/09/06/387140.html**************************************** 1. 全文检索系统与Lucene简介 1.1 什么是全文检索与全文检索系统 全文检索是指计算机索引程序通过扫描文章中的每一个词&#xff0c;对每一个词建立一个索引&#xff0…

div固定大小文字溢出自动缩小_【高并发】高并发环境下如何防止Tomcat内存溢出?看完我懂了!!

写在前面随着系统并发量越来越高&#xff0c;Tomcat所占用的内存就会越来越大&#xff0c;如果对Tomcat的内存管理不当&#xff0c;则可能会引发Tomcat内存溢出的问题&#xff0c;那么&#xff0c;如何防止Tomcat内存溢出呢&#xff1f;我们今天就来一起探讨下这个问题。防止To…

linux下的ssh端口号修改,如何在 Linux 中更改 SSH 端口

默认情况下&#xff0c; SSH 侦听端口 22 。 更改默认 SSH 端口可以降低被自动攻击的风险&#xff0c;从而为服务器增加额外的安全层。和更改默认端口相比&#xff0c;将防火墙配置为仅允许从特定主机访问端口 22 则更加简单和安全。本教程介绍如何更改 Linux 中的默认 SSH 端口…

linux gnome启动命令,如何在Gnome Shell上自动启动程序

登录Gnome Shell时自动打开应用程序是提前设置工作区的好方法。在Gnome Shell上自动启动程序的最简单方法是使用Tweaks应用程序。在本指南中&#xff0c;我们将介绍如何安装Gnome Tweaks应用程序以轻松配置自动程序启动。让我们开始吧&#xff01;通过GUI自动启动程序默认情况下…

php 动态加载html内容_ThinkPHP5.1+Swoole实现的开源内容管理框架

一款支持Swoole的开源内容管理框架&#xff0c;基于ThinkPHP5.1开发&#xff0c;同时支持PHP-FPM和Swoole双模式&#xff0c;让WEB开发更快!主要特性更改框架协议为MIT,让你更自由地飞基于ThinkPHP 5.1重构&#xff0c;但核心代码兼容5.0版本&#xff0c;保证老用户最小升级成本…

SM4密码算法(附源码)

SM4是我们自己国家的一个分组密码算法&#xff0c;是国家密码管理局于2012年发布的。网址戳→_→&#xff1a;http://www.cnnic.NET.cn/jscx/mixbz/sm4/具体的密码标准和算法官方有非常详尽的PDF文档以供查阅&#xff0c;戳→_→&#xff1a;http://218.241.108.63/wiki/images…

linux隐藏apache信息,Apache防盗链和隐藏版本信息-linux-centos运维

有需要服务器方面的需求和咨询&#xff0c;可以联系博主 QQ 7271895一、防盗链二、隐藏版本信息实验要求&#xff1a;三台虚拟机分别是&#xff1a;linux和两台windows虚拟机&#xff0c;linux虚拟机为服务器&#xff0c;Windows7-1为客户端&#xff0c;Windows7-2为盗链端。实…

led显示屏控制卡接线图解_Led显示屏出现花屏是什么原因

Led显示屏已经成为现在人们推广的一种形式了&#xff0c;很多地方都是离不开led显示屏的使用的。由于Led显示屏的五彩绚烂&#xff0c;也更加吸引人们的眼球。不过在使用过程中&#xff0c;也会遇到Led显示屏花屏的情况。那么&#xff0c;Led显示屏出现花屏是什么原因呢?下面伟…

Android OkHttp完全解析 是时候来了解OkHttp了

Android OkHttp完全解析 是时候来了解OkHttp了 标签&#xff1a; AndroidOkHttp2015-08-24 15:36 316254人阅读 评论(306) 收藏 举报分类&#xff1a;【android 进阶之路】&#xff08;67&#xff09; 版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载…

c盘users的用户名怎么改_做完这几个操作,我从C盘中清理了30G垃圾文件

信息技术土著&#xff0c;一个有营养的公众号有个存在学说&#xff0c;比说一个人的身体某部位&#xff0c;如果不痛&#xff0c;你很少感觉他是存在的&#xff0c;但是某一天&#xff0c;因为某种原因&#xff0c;它突然很痛了&#xff0c;然后你每时每刻都会感觉到它的存在了…

MongoDB在Linux下常用优化设置

MongoDB在Linux下常用优化设置以下是一些MongoDB推荐的常用优化设置。在生产环境下选取合适的参数值&#xff0c;例如预读值和默认文件描述符数目等&#xff0c;会对系统性能有很大的影响。1、关闭数据库文件的 atime禁止系统对文件的访问时间更新会有效提高文件读取的性能。这…

ipconfig没有显示ip_TCP/IP 协议修复网络问题

nternet 在 TCP/IP 协议上工作&#xff0c;如果 TCP/IP 协议堆栈在 Windows 或任何其他操作系统(例如 Linux 或 MacOS)中无法正常工作&#xff0c;则您的 Internet 连接会出现问题。解决 Internet 问题的最佳方法是重置 TCP/IP 堆栈设置。如何在 Windows 中重置 TCP/IP 堆栈&am…

mysql-linux64,Linux64下mysql安装和开辟

1.1地址&#xff1a;http://www.mysql.com/downloads/mysql/5.5.html&#xff03;downloads版本&#xff1a;5.1.68平台&#xff1a;linux generalGeneric Linux (glibc 2.3) (x86&#xff0c; 64-bit)&#xff0c; RPM Package版本&#xff1a;MySQL Server(MySQL-server-5.1.…

python截图识别文字_用百度ocr+微信截图实现文字识别

作用&#xff1a;将图片中的文字识别出来 一、调用微信截图dll控件 将微信截图插件复制到项目文件&#xff0c;使用ctypes加载&#xff08;胶水语言就是给力&#xff09; def capture(): try: dll ctypes.cdll.LoadLibrary(PrScrn.dll) except Exception: print("Dll loa…

【用jQuery来判断浏览器的类型】及【javascript获取用户ip地址】

用jQuery来判断浏览器的类型,主要是使用$.browser这个工具类,使用方法: $.browser.[浏览器关键字] //谷歌浏览器、360浏览器等其他一些浏览器&#xff0c;没有专门的判断 function appInfo() {var bro $.browser;var binfo "";if (bro.msie) {binfo "Micr…

linux mv 递归拷贝,奇技淫巧 - 给Linux中的cp和mv命令中添加进度条的高级拷贝

GNU cp和GNU mv命令用于在GNU/Linux操作系统中复制和移动文件和目录。这两个命令缺少的一个特性是它们不显示任何进度条。如果复制一个大文件或目录&#xff0c;您就不知道完成复制过程需要多长时间&#xff0c;也不知道复制的数据所占的百分比。还有您将看不到当前正在复制哪个…

【洛谷P1966】火柴排队

两列排序后将编号一一对应 归并排序求逆序对 &#xff08;每一次交换就去掉一个逆序对&#xff09; 1 #include<cstdio>2 #include<cstring>3 #include<algorithm>4 #define ll long long5 using namespace std;6 const int N100100;7 const ll P99999997;8 …