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 ...
随机推荐
- Cause of 400 Bad Request Errors
The 400 Bad Request error displays inside the Internet browser window, just as web pages do. Cause o ...
- Linux 设备驱动之 UIO 机制(基本概念)
一个设备驱动的主要任务有两个: 1. 存取设备的内存 2. 处理设备产生的中断 对于第一个任务.UIO 核心实现了mmap()能够处理物理内存(physical memory),逻辑内存(logica ...
- 我有一个idea,但是没有钱,又没技术怎么办?
我想你还少讲一件事,就是同时如果你也没什么明确的商业计划,恭喜,那你有机会成为马云第二,因为他曾说过自己的成功要素就是「没钱」.「不懂技术」.「没有计划」,要是这么刚好让你从事互联网产业,我看不出三年 ...
- [Angular] Configure an Angular App at Compile Time with the Angular CLI
Compile time configuration options allow you to provide different kind of settings based on the envi ...
- Unity游戏开发--30s制作精美地图
"君子生非异也.善假于物也"--<劝学>荀子 引用这句话的目的,是我觉得有时候.利用工具来提高游戏开发效率是很必要的. 利用工具,解放程序员双手. 今天想给大家介绍下. ...
- action support分析
Action这一部分主要是数据(索引)的操作和部分集群信息操作. 所有的请求通过client转发到对应的action上然后再由对应的TransportAction来执行相关请求.如果请求能在本机上执行 ...
- HDU4825:Xor Sum 解题报告(0/1 Trie树)
Problem Description Zeus 和 Prometheus 做了一个游戏,Prometheus 给 Zeus 一个集合,集合中包含了N个正整数. 随后 Prometheus 将向 Ze ...
- jzoj1495 宝石 解题报告[扫描线]
Description 见上帝动了恻隐之心,天后也想显示一下慈悲之怀,随即从口袋中取出一块魔术方巾,让身边的美神维纳斯拿到后堂的屏风上去试试,屏风是正方形的,高和宽方向上各划有m条鱼屏风的边平行的直线 ...
- Leaflet学习笔记(一)
一.简介 Leaflet是一个主要适用于移动端交互地图的领先的开源javascript库.虽然js库只有38KB左右,但是却能满足大部分开发者的所有功能需求. Leaflet拥有着简单,高效和实用的设 ...
- 18.查询效率最高的unordered_map
#include <string> #include <iostream> //查询性能最高 //增删查改与map是一样的,但是本质区别就是unordered_map底层是ha ...