题意:

给你n次折叠

m个询问

每次询问折叠后,xi,yi有几层

题解:

计算几何

模拟

#include<cstdio>
#include<cstdlib>
#include<cmath>
using namespace std;
int n,m;
double px[],py[],qx[],qy[];
int dcmp(double a,double b)
{
if (fabs(a-b)<=1e-) return ;
if (a<b)return -;
return ;
}
double Cross(double x1,double y1,double x2,double y2)
{
return x1*y2-x2*y1;
}
void calc(double x1,double y1,double x0,double y0,double &retx,double &rety)
{
retx=(x0*(x1*x0+y1*y0)+y0*(x0*y1-x1*y0))/(x0*x0+y0*y0);
rety=(y0*(x1*x0+y1*y0)-x0*(x0*y1-x1*y0))/(x0*x0+y0*y0);
}
int dp(double x,double y,int t)
{
if (!t)
{
if (dcmp(x,100.0)<&&dcmp(x,0.0)>&&dcmp(y,100.0)<&&dcmp(y,0.0)>)
return ;
return ;
}
if (dcmp(Cross(x-px[t],y-py[t],qx[t]-px[t],qy[t]-py[t]),0.0)>=)return ;
else
{
double retx,rety;
calc(x-px[t],y-py[t],qx[t]-px[t],qy[t]-py[t],retx,rety);
retx+=px[t];rety+=py[t];
return dp(x,y,t-)+dp(retx,rety,t-);
}
}
int main()
{
double _x,_y;
scanf("%d",&n);
for (int i=;i<=n;i++)scanf("%lf%lf%lf%lf",&px[i],&py[i],&qx[i],&qy[i]);
scanf("%d",&m);
while (m--)
{
scanf("%lf%lf",&_x,&_y);
printf("%d\n",dp(_x,_y,n));
}
return ;
}

bzoj1074的更多相关文章

  1. [BZOJ1074] [luogu 4036] [JSOI 2008] 火星人 (二分答案+哈希+fhq treap)

    [BZOJ1074] [luogu 4036] [JSOI 2008] 火星人 (二分答案+哈希+fhq treap) 题面 给出一个长度为n的字符串,m个操作,字符串仅包含小写英文字母 操作1:在k ...

  2. 【题解】折纸 origami [SCOI2007] [P4468] [Bzoj1074]

    [题解]折纸 origami [SCOI2007] [P4468] [Bzoj1074] 传送门:折纸 \(\text{origami [SCOI2007] [P4468]}\) \(\text{[B ...

  3. BZOJ1074 [SCOI2007]折纸origami

    我们先看每个点可能从哪些点折过来的,2^10枚举对角线是否用到. 然后再模拟折法,查看每个点是否满足要求. 恩,计算几何比较恶心,还好前几天刚写过一道更恶心的计算几何,点类直接拷过来2333. /** ...

  4. BZOJ第1页养成计划

    嗯,用这篇博客当一个目录,方便自己和学弟(妹?)们查阅.不定期更新. BZOJ1000   BZOJ1001   BZOJ1002   BZOJ1003   BZOJ1004   BZOJ1005   ...

随机推荐

  1. 【调研与分析】标杆学习、知识管理和竞争情报的关系——From Team

    注: 1)红色实线箭头表示可以直接使用:例如竞争情报业务输出产品之一的标杆文档可以直接作为公司标杆学习中外部标杆的资料: 2)蓝色虚线箭头表示转化后使用或者间接利用的关系:例如专题调研可以帮助建立内部 ...

  2. mysql 数据操作 单表查询 where 约束 目录

    mysql 数据操作 单表查询 where约束 between and or mysql 数据操作 单表查询 where约束 is null in mysql 数据操作 单表查询 where约束 li ...

  3. 窄依赖与宽依赖&stage的划分依据

    RDD根据对父RDD的依赖关系,可分为窄依赖与宽依赖2种. 主要的区分之处在于父RDD的分区被多少个子RDD分区所依赖,如果一个就为窄依赖,多个则为宽依赖.更好的定义应该是: 窄依赖的定义是子RDD的 ...

  4. HDU2426:Interesting Housing Problem(还没过,貌似入门题)

    #include <iostream> #include <queue> #include <stdio.h> #include <string.h> ...

  5. SimpleDateFormat实现String与Date之间的转换

    基本用法: java.text.SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd"); java.util.Date ...

  6. poj1106 Transmitters

    地址:http://poj.org/problem?id=1106 题目: Transmitters Time Limit: 1000MS   Memory Limit: 10000K Total S ...

  7. Spring MVC 复习笔记04

    复习 springmvc框架: DispatcherServlet前端控制器:接收request,进行response HandlerMapping处理器映射器:根据url查找Handler.(可以通 ...

  8. openwrt编译系统制作ubi镜像时会使用系统自带的ubinize还是openwrt编译系统中编译的ubinize

    答:使用openwrt编译系统中编译的ubinize,那么这个工具在哪个目录下?在staging_dir/host/bin目录下

  9. UVa 10294 项链和手镯(polya)

    https://vjudge.net/problem/UVA-10294 题意: 手镯可以翻转,但项链不可以.输入n和t,输出用t种颜色的n颗珠子能制作成的项链和手镯的个数. 思路: 经典等价类计数问 ...

  10. TCGA下载神器--TCGAbiolinks

    http://bioconductor.org/packages/devel/bioc/vignettes/TCGAbiolinks/inst/doc/tcgaBiolinks.html#gdcque ...