题目描述

给定N个三角形,和M条直线,直线要么平行于X轴,要么平行于Y轴,问这M条直线 分别经过多少个三角形内部 (注意是内部即分开的两个多边形的面积均大于零)。

输入输出格式

输入格式:

第一行一个正整数 N (2≤N≤100000)表示三角形的个数。
接下来N行,每行三个坐标(x1,y1), (x2,y2), (x3,y3) 表示三点,且这三点不共线。所有
坐标均为非负整数且小于106三角形可以重叠。
接下来一个正整数M (2≤M≤100000),表示M个直线。
接下来M行,每行描述一条直线。"x = c"或"y = c"
(注意等号两边的空格)
c为非负整数,且小于106.

输出格式:

每一条直线输出一个整数,表示它穿过的三角形的个数。

输入输出样例

输入样例#1:

3
1 0 0 2 2 2
1 3 3 5 4 0
5 4 4 5 4 4
4
x = 4
x = 1
y = 3
y = 1
输出样例#1:

0
1
1
2
输入样例#2:

4
2 7 6 0 0 5
7 1 7 10 11 11
5 10 2 9 6 8
1 9 10 10 4 1
4
y = 6
x = 2
x = 4
x = 9
输出样例#2:

3
2
3
2

说明

  • 对于40%的数据M≤300
  • 另有40%的数据,所有三角形的坐标小于1000

 

Solution:

  本题也是ZYYS,还以为是高深的计算几何,结果贼简单。

  若一条直线经过三角形内部,则该直线一定经过三角形所在矩形,于是我们可以用给定的三点确定一个矩形。

  因为给定直线一定平行于坐标轴,那么一条直线穿过矩形就两种情况,分别与横纵坐标相关,直接分情况讨论,在处理出矩形后对横纵坐标分别差分就好了,若矩形左下角为$(x_1,y_1)$右上角为$(x_2,y_2)$,因为截距为$\leq 10^6$非负整数,所以可行的直线范围为$[x_1+1,x_2-1]$和$[y_1+1,y_2-1]$,那么差分时就让$sx[x_1+1]+1,sx[x_2]-1,sy[y_1+1]+1,sy[y_2]-1$。最后求一下前缀和,对于每次询问输出当前点的前缀和就好了。(很水,离散都不用,咕咕^_^)

代码:

/*Code by 520 -- 9.3*/
#include<bits/stdc++.h>
#define il inline
#define ll long long
#define RE register
#define For(i,a,b) for(RE int (i)=(a);(i)<=(b);(i)++)
#define Bor(i,a,b) for(RE int (i)=(b);(i)>=(a);(i)--)
using namespace std;
const int N=;
int n,m,ppx,xx[N],yy[N],sx[N],sy[N];
char s[]; int gi(){
int a=;char x=getchar();
while(x<''||x>'')x=getchar();
while(x>=''&&x<='')a=(a<<)+(a<<)+(x^),x=getchar();
return a;
} int main(){
n=gi();
For(i,,n) {
RE int x1=gi(),y1=gi(),x2=gi(),y2=gi(),x3=gi(),y3=gi();
int lx=min(x1,min(x2,x3));
int ly=min(y1,min(y2,y3));
int rx=max(x1,max(x2,x3));
int ry=max(y1,max(y2,y3));
xx[lx+]++,xx[rx]--,yy[ly+]++,yy[ry]--;
}
For(i,,) sx[i]=sx[i-]+xx[i],sy[i]=sy[i-]+yy[i];
m=gi();
while(m--){
scanf("%s",s),ppx=gi();
printf("%d\n",s[]=='x'?sx[ppx]:sy[ppx]);
}
return ;
}

P4623 [COCI2012-2013#6] BUREK的更多相关文章

  1. 洛谷P4623 [COCI2012-2013#6] BUREK [模拟]

    题目传送门 BUREK 格式难调,题面就不放了. 分析: 一道比较有思维难度的模拟题. 首先我们可以想到,对于一个三角形,可以画出一个最小矩形使得这个三角形被完全包围,并且这个矩形的边平行于坐标轴(图 ...

  2. 2013 Asia Changsha Regional Contest---Josephina and RPG(DP)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4800 Problem Description A role-playing game (RPG and ...

  3. SharePoint 2013: A feature with ID has already been installed in this farm

    使用Visual Studio 2013创建一个可视web 部件,当右击项目选择"部署"时报错: "Error occurred in deployment step ' ...

  4. Visual Studio 2013 添加一般应用程序(.ashx)文件到SharePoint项目

    默认,在用vs2013开发SharePoint项目时,vs没有提供一般应用程序(.ashx)的项目模板,本文解决此问题. 以管理员身份启动vs2013,创建一个"SharePoint 201 ...

  5. SharePoint 2013 create workflow by SharePoint Designer 2013

    这篇文章主要基于上一篇http://www.cnblogs.com/qindy/p/6242714.html的基础上,create a sample workflow by SharePoint De ...

  6. Install and Configure SharePoint 2013 Workflow

    这篇文章主要briefly introduce the Install and configure SharePoint 2013 Workflow. Microsoft 推出了新的Workflow ...

  7. SharePoint 2013 configure and publish infopth

    This article will simply descript how to configure and publish a InfoPath step by step. Note: To con ...

  8. TFS 2013 培训视频

    最近给某企业培训了完整的 TFS 2013 系列课程,一共四天. 下面是该课程的内容安排: 项目管理     建立项目     成员的维护     Backlog 定义     任务拆分     迭代 ...

  9. Visual Studio 2013 Ultimate因为CodeLens功能导致Microsoft.Alm.Shared.Remoting.RemoteContainer.dll高CPU占用率的折中解决方案

    1.为什么Microsoft.Alm.Shared.Remoting.RemoteContainer.dll的CPU占用率以及内存使用率会那么高? 在Visual Studio 2013 Ultima ...

随机推荐

  1. 【bzoj3991】[SDOI2015]寻宝游戏 树链的并+STL-set

    题目描述 给出一棵树,初始每个点都是非必经的.多次改变某个点的必经状态,并询问从任意一个点出发,经过所有必经的点并回到该点的最小路程. 输入 第一行,两个整数N.M,其中M为宝物的变动次数. 接下来的 ...

  2. P1546 最短网络(codevs | 2627村村通)

    P1546 最短网络 Agri-Net 题目背景 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场.当然,他需要你的帮助. 题目描述 约翰已经给他的农场安排了一 ...

  3. Pandas v0.23.4手册汉化

    Pandas手册汉化 此页面概述了所有公共pandas对象,函数和方法.pandas.*命名空间中公开的所有类和函数都是公共的. 一些子包是公共的,其中包括pandas.errors, pandas. ...

  4. 利用 Intel Realsense做SLAM开发(一)

    最近手里拿到一台Realsense D435,就是这个: https://click.intel.com/intelr-realsensetm-depth-camera-d435.html 所以准备拿 ...

  5. selenium自动化之定位多个元素

    前面我们讲的都是如何定位单个元素,下面讲下怎么去定位多个元素,并且输出文本. 以百度为例:获取标红的这一组元素的文本 这里我用到的是xpath来定位的://div[@id="u1" ...

  6. Mac系统STF自动化环境搭建及部署踩坑记录

    因为公司需要寻找一个免root的自动化测试方案,所以以前做的老方案需要被替代.一阵搜寻找到了这个框架,但是部署起来很是折腾,搞了一下午终于搞定,顺便记录一下过程,有需要的自取. 转载请注明出处:htt ...

  7. Towards Accurate Multi-person Pose Estimation in the Wild 论文阅读

    论文概况 论文名:Towards Accurate Multi-person Pose Estimation in the Wild 作者(第一作者)及单位:George Papandreou, 谷歌 ...

  8. 深入了解MySQL存储索引

    (一)关于存储引擎 创建合适的索引是SQL性能调优中最重要的技术之一.在学习创建索引之前,要先了解MySql的架构细节,包括在硬盘上面如何组织的,索引和内存用法和操作方式,以及存储引擎的差异如何影响到 ...

  9. 【坚持】Selenium+Python学习之从读懂代码开始 DAY1

    学习Selenium+Python已经好几个月了,但越学发现不懂的东西越多. 感觉最大的问题还是在于基础不扎实,决定从头开始,每天坚持读代码,写代码. 相信量变一定能到质变!!! 2018/05/09 ...

  10. k8s zookeeper、kafka部署

    安装zookeeper apiVersion: v1 kind: ConfigMap metadata: name: zookeeper-config namespace: kube-system a ...