链接:poj 2318

题意:有一个矩形盒子,盒子里有一些木块线段。而且这些线段坐标是依照顺序给出的。

有n条线段,把盒子分层了n+1个区域,然后有m个玩具。这m个玩具的坐标是已知的,问最后每一个区域有多少个玩具

分析:从左往右。直到推断玩具是否在线段的逆时针方向为止。这个就须要用到叉积,当然能够用二分查找优化。

叉积:已知向量a(x1,y1),向量b(x2,y2),axb=x1*y2-x2*y1,

若axb>0,a在b的逆时针方向,若axb<0,则a在b的顺时针方向

注:每组数据后要多空一行

#include<stdio.h>
#include<string.h>
int chaji(int x1,int y1,int x2,int y2)
{return x1*y2-x2*y1;
}
int main()
{int u[5010],l[5010],x,y,x1,y1,x2,y2,m,n,i,j,s[5010];while(scanf("%d",&n)!=EOF){if(n==0)break;scanf("%d%d%d%d%d",&m,&x1,&y1,&x2,&y2);for(i=0;i<n;i++)scanf("%d%d",&u[i],&l[i]);u[n]=l[n]=x2;                 //将最后一个线段加上memset(s,0,sizeof(s));for(i=0;i<m;i++){scanf("%d%d",&x,&y);for(j=0;j<=n;j++)if(chaji(u[j]-l[j],y1-y2,x-l[j],y-y2)>0){      //叉积推断s[j]++;break;}}for(j=0;j<=n;j++)printf("%d: %d\n",j,s[j]);printf("\n");}return 0;
}

链接:poj 2398

意思与上题一样。仅仅只是给出的线段乱序的,所以须要排序,

输出也有点不同,须要输出有玩具1-m个的区间有多少个,按顺序输出

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct point
{int l,u;
}p[1010];
int chaji(int x1,int y1,int x2,int y2)
{return x1*y2-x2*y1;
}
int cmp(struct point a,struct point b)
{if(a.l!=b.l)return a.l<b.l;return a.u<b.u;
}
int main()
{int x,y,x1,y1,x2,y2,m,n,i,j,s[1010],a[1010];while(scanf("%d",&n)!=EOF){if(n==0)break;scanf("%d%d%d%d%d",&m,&x1,&y1,&x2,&y2);for(i=0;i<n;i++)scanf("%d%d",&p[i].u,&p[i].l);p[n].u=p[n].l=x2;sort(p,p+n+1,cmp);             //对线段排序memset(s,0,sizeof(s));memset(a,0,sizeof(a));for(i=0;i<m;i++){scanf("%d%d",&x,&y);for(j=0;j<=n;j++)if(chaji(p[j].u-p[j].l,y1-y2,x-p[j].l,y-y2)>0){s[j]++;break;}}for(j=0;j<=n;j++)a[s[j]]++;printf("Box\n");for(i=1;i<=n;i++)if(a[i])printf("%d: %d\n",i,a[i]);}return 0;
}

poj 2318 TOYS amp; poj 2398 Toy Storage (叉积)相关推荐

  1. POJ 2398 Toy Storage

    这道题和POJ 2318几乎是一样的. 区别就是输入中坐标不给排序了,=_=|| 输出变成了,有多少个区域中有t个点. 1 #include <cstdio> 2 #include < ...

  2. poj 2398 Toy Storage (计算几何,判断点和线段关系)

    http://poj.org/problem?id=2398 题意大概是说将一个盒子用n个board分成n+1 部分 然后往里面放toy,给定盒子,board,和toy的坐标 问所有的toy放完后,有 ...

  3. 计算区域中有t 个点的 区域有多少个+计算几何 + 叉乘+sort+ 二分 + map poj 2398 Toy Storage...

    题目来源:http://poj.org/problem?id=2398 分析: 计算区域中有t 个点的 区域有多少个. #include <cstdlib> #include <cs ...

  4. poj 2318 TOYS

    TOYS 题意:给定一个如上的长方形箱子,中间有n条线段,将其分为n+1个区域,给定m个玩具的坐标,统计每个区域中的玩具个数. 思路:这道题很水,只是要知道会使用叉乘来表示点在线的上面还是下面: 当a ...

  5. AcWing 2983. 玩具 / POJ 2318.toys(计算几何基础、二分、判断点和直线的位置关系)

    计算几何基础题 题目大意就是一个盒子被分成了若干个区域,有m个小球,问每个区域里分别有多少个小球. 我们首先考虑暴力. 我们如何判断小球是否在一个区域内呢,我们发现一个小球在区域x,也就是说所有小于x ...

  6. [poj] 2318 TOYS || 判断点在多边形内

    原题 给出一个矩形玩具箱和其中隔板的位置,求每个玩具在第几个隔间内(保证没有在线上的玩具) 将玩具按x轴排序,记录当前隔板的编号,每次判断是否需要右移(左移)隔板(因为是有序的,所以移动次数左右不厚超 ...

  7. POJ - 2318 TOYS(叉积+二分)

    题目链接:点击查看 题目大意:给出一个盒子,由n条互不相交的线段分割为n+1个空格,现在有m个玩具的坐标,现在问每个空格内有多少个玩具 题目分析:利用叉积的性质判断点在直线的哪一侧: 以点在直线左侧为 ...

  8. 【POJ - 2398】Toy Storage (计算几何,二分找位置,叉积,点和直线的位置关系)

    题干: Mom and dad have a problem: their child, Reza, never puts his toys away when he is finished play ...

  9. A - TOYS POJ - 2318

    A - TOYS POJ - 2318 题意: 一个盒子中有n个隔板,分出n+1个空间(从左往右空间的编号分别是0-n),(隔板之间不会相交,且按照从左往右的顺序给出),现在给你m个坐标的物品,问盒子 ...

最新文章

  1. XML和JSON数据格式对比
  2. R语言caret包构建xgboost模型实战:特征工程(连续数据离散化、因子化、无用特征删除)、配置模型参数(随机超参数寻优、10折交叉验证)并训练模型
  3. 厦大计算机研究生和福大,考研:只知道厦门大学?福建还有这些211值得你了解...
  4. 入职谷歌、微软的大佬总结的刷题笔记.pdf
  5. Windbg学习 (0x0013) 扩展命令-SOS
  6. Eclipse 导入 Tomcat 源码
  7. 事件冒泡和捕获的执行顺序
  8. uboot2015–启动流程分析 imx6q
  9. 又砸又烧,还要泼脏水,这谣言到底什么时候才没人信?发生这样的事真没想到.........
  10. 博客教程中百度网盘地址
  11. 【总结记录】《MySQL必知必会》读后笔记,结合 leetcode 例题理解
  12. php引入odbc模块,php如何用odbc调用存储过程?
  13. 重磅分享(二)——决策引擎实战部署
  14. 具体数学-第4课(多重求和方法)
  15. FTP服务器:Rumpus for Mac
  16. 习题总结(一)——硬链接,locate,chmod,家目录
  17. python 科研作图_科研作图软件(11种)
  18. OV2640拍摄jpg图像无法解析
  19. 这7种类型的食物可能引起 “痘痘”
  20. 大数据高级开发工程师——Spark学习笔记(7)

热门文章

  1. python中的scipy基础知识_python3 scipy 入门
  2. 21天Jenkins打卡Day3-新建item保存构建
  3. 单结晶体管的导电特性_二极管的导电特性
  4. AMESim数据导出方法
  5. python科学坐标系绘制分析_python数据可视化案例——平行坐标系(使用pyecharts或pandas)...
  6. 华为管理学案例分析_案例分析 华为——基于价值、围绕结果展开的绩效考核...
  7. node+读写文件_python高级:2.文件读写part2
  8. leetcode组队学习——动态规划
  9. 如何产生好的词向量?
  10. 画等高线_课堂妙招 | 辣椒玩转等高线