USACO2002 Open:雄伟的山峦
简要题意:
奶牛们在落基山下避暑,从它们的房子向外望去,可以看到N 座山峰构成的山峦,奶牛发现每座山峰都是等腰三角形,底边长度恰好是高度的两倍。所以山峰的顶点坐标可由两个底部端点求出。设i 座第山峰的两个底部端点的横坐标分别为Ai 和Bi。你能否计算一下这片山峦所覆盖 的总面积是多少。为了保证答案是整数,输出总面积乘以4 的积。
输入格式:
• 第一行:单个整数N,1 ≤ N ≤ 10^5
• 第二行到第N + 1 行:第i + 1 行有两个整数Ai 和Bi,−2^15 ≤ Ai < Bi ≤ 2^15
输出格式:
• 单个整数:表示山峦所占总面积乘以4 的积。
样例输入:
5
2 7
6 9
12 15
14 21
20 25
样例输出:
114
题解:
就是一道排序的水题,USACO竟然定了三星难度QAQ,做法很简单,将每个三角形按照第一个点的坐标从小到大排序,然后去除能被覆盖的三角形,然后判断相邻的三角形是相离还是相交的关系就可以了
PS:总面积乘以四之后其实就是:底边*高(底边的一半)/2*4=底边*底边
参考代码:
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
using namespace std;
struct node
{
int x,y;
}a[],s[];
int cmp(const void *xx,const void *yy)
{
node n1=*(node *)xx;
node n2=*(node *)yy;
if(n1.x<n2.x) return -;
if(n1.x>n2.x) return ;
if(n1.y<n2.y) return -;
if(n1.y>n2.y) return ;
return ;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=;i<=n;i++) scanf("%d%d",&a[i].x,&a[i].y);
qsort(a+,n,sizeof(node),cmp);
int len=;
for(int i=;i<=n;i++)
{
if(a[i-].x!=a[i].x)
{
s[++len]=a[i-];
}
}
if(a[n-].x!=a[n].x) s[++len]=a[n];
int i=,t=;
n=;
a[]=s[];
while()
{
while(s[t].y>=s[i].y&&i<=len) i++;
if(i==len+) break;
a[++n]=s[i];
t=i;
i++;if(i==len+) break;
}
int ans=;
for(int i=;i<=n;i++)
{
if(a[i-].y<=a[i].x) ans+=(a[i-].y-a[i-].x)*(a[i-].y-a[i-].x);
else ans+=(a[i-].y-a[i-].x)*(a[i-].y-a[i-].x)-(a[i-].y-a[i].x)*(a[i-].y-a[i].x);
}
ans+=(a[n].y-a[n].x)*(a[n].y-a[n].x);
printf("%d\n",ans);
return ;
}
USACO2002 Open:雄伟的山峦的更多相关文章
- 【USACO2002 Feb】奶牛自行车队
[USACO2002 Feb]奶牛自行车队 Time Limit: 1000 ms Memory Limit: 131072 KBytes Description N 头奶牛组队参加自行车赛.车队在比 ...
- [USACO2002][poj1947]Rebuilding Roads(树形dp)
Rebuilding RoadsTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 8589 Accepted: 3854Descrip ...
- [USACO2002][poj1946]Cow Cycling(dp)
Cow CyclingTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 2468 Accepted: 1378Description ...
- [USACO2002][poj1945]Power Hungry Cows(启发式搜索)
Power Hungry CowsTime Limit: 1000MS Memory Limit: 30000K Total Submissions: 4570 Accepted: 1120 Desc ...
- [USACO2002][poj1944]Fiber Communications(枚举)
Fiber Communications Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3804 Accepted: 1 ...
- [Usaco2002 Feb]Rebuilding Roads重建道路
题目描述 一场可怕的地震后,奶牛用N个牲口棚(1 <= N <= 150,编号1..N)重建了农民John的牧场.奶牛没有时间建设多余的道路,所以现在从一个牲口棚到另一个牲口棚的道路是唯一 ...
- After the exam
离散数学考完啦!!!自我感觉还行,或许得不到高分,但是过的话是没问题了.(但愿成绩出来后不打脸) 持续了两周的复习,告一段落了.那么,今天就休息休息吧. 今天阴有雨,走过的地儿都是湿漉漉.滑溜溜的.这 ...
- Java算法之递归打破及在真实项目中的使用实例
开心一笑 刚才领导问开发:"你觉得这个项目的最大风险是什么",开发说:"加班猝死" , 气氛尴尬了一分钟!!! 提出问题 1.递归算法简单复习 2.如何实现递归 ...
- 从零开始学Python07作业源码:虚拟人生(仅供参考)
bin目录: Simulated_life_start.py #!usr/bin/env python # -*- coding:utf-8 -*- # auther:Mr.chen # 描述: im ...
随机推荐
- 支持JSONP跨域的对象
支持JSONP跨域的对象 1:img 2:iframe 3:link 4:script 为什么,JSONP 最终选择是 script 实现呢?度娘来也! 平常我们进行JSONP请求数据,因为 json ...
- spring boot ---web应用开发-错误处理
一.错误的处理 方法一:Spring Boot 将所有的错误默认映射到/error, 实现ErrorController @Controller @RequestMapping(value = &qu ...
- 项目集成Hudson+SonarQube出现的一个问题
[ERROR] No plugin found for prefix 'sonar' in the current project and in the plugin groups [org.mort ...
- Qt之图形(简笔画-绘制漂亮的西瓜)
简述 Summer is coming-我们呢,为大家准备了丰盛的佳果-西瓜,清爽解渴,甘味多汁. 一笔一划学简笔画,分分钟让你掌握一门新技能,下面我们来绘制一个"盛夏之王"-西瓜 ...
- windows 下面的grep awk 命令
windows 下面的grep awk 命令 grep 学习了:http://blog.csdn.net/chengfans/article/details/53784936 awk学习了:http: ...
- d堆
就是d叉堆,是二叉堆的简单推广(http://blog.csdn.net/buleriver/article/details/38469907) 对于一个d堆.也是能够使用数组表示.关键是怎样通过索引 ...
- MetaSploit攻击实例讲解------终端下PostgreSQL数据库的使用(包括kali linux 2016.2(rolling) 和 BT5)
不多说,直接上干货! 配置msf连接postgresql数据库 我这里是使用kali linux 2016.2(rolling) 用过的博友们都知道,已经预安装好了PostgreSQL. 1. p ...
- 升级JDK9后eclipse无法启动的解决方法
解决方法-打开: D:\Program Files\eclipse\eclipse.ini 在文件末尾添加一行: --add-modules=ALL-SYSTEM 再次启动eclipse即可 感谢ht ...
- OpenCV问题集锦,图片显示不出来的问题,cvWaitKey(0),不能读图片,未经处理的异常,等问题集合
昨天根据uc伯克利的人工图像分割文件.seg,显示图像的时候调用了OpenCV的库函数,图片都能用imwrite写好,但是imshow死活显示不出来. 今天早上发现原来是imshow()后面应该加上: ...
- SSRS 报表 报表迁移
数据拷贝下来以后在新的服务器上面还是进行原来的设置 点击报表服务器的连接查看报表服务器列表 这是给每个账户增加访问权限 在主界面点击文件夹设置,给每个角色分配操作报表的权限.,上面那个权限和这个权限都 ...