博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 2318(计算几何初步——叉积加2分)
阅读量:4959 次
发布时间:2019-06-12

本文共 2350 字,大约阅读时间需要 7 分钟。

呃。。。。很经典的题目,由于数据量较大,2分的话会比较省时间。

就是问你N个方块里面有多少个点。

so easy!

View Code
1 #include
2 using namespace std; 3 int px,py; 4 struct LINE 5 {
6 int Ux, Uy, Lx, Ly; 7 }line[5002]; 8 int sum[5001]; 9 int n, m; 10 11 inline int cross(int x1, int y1, int x2, int y2) 12 {
13 return x1*y2-y1*x2; 14 } 15 16 inline bool in_box(int cnt) 17 {
18 if (cross(px-line[cnt].Lx,py-line[cnt].Ly,line[cnt].Ux-line[cnt].Lx,line[cnt].Uy-line[cnt].Ly)>0) 19 return true; 20 else 21 return false; 22 } 23 24 int main() 25 {
26 while (scanf("%d",&n) && n) 27 {
28 scanf("%d%d%d%d%d",&m,&line[0].Ux,&line[0].Uy,&line[n+1].Lx,&line[n+1].Ly); 29 line[0].Lx = line[0].Ux; 30 line[0].Ly = line[n+1].Ly; 31 line[n+1].Ux = line[n+1].Lx; 32 line[n+1].Uy = line[0].Uy; 33 sum[0] = 0; 34 for (int i(1); i<=n; ++i) 35 {
36 scanf("%d%d",&line[i].Ux,&line[i].Lx); 37 line[i].Uy = line[0].Uy; 38 line[i].Ly = line[n+1].Ly; 39 sum[i] = 0; 40 } 41 for (int k(1); k<=m; ++k) 42 {
43 scanf("%d%d",&px,&py); 44 int l(0); 45 int r(n+1); 46 while (l <= r) 47 {
48 int mid = (l + r) >> 1; 49 if (in_box(mid)) 50 {
51 if (l+1 == r) 52 {
53 sum[mid]++; 54 break; 55 } 56 l = mid; 57 } 58 else 59 {
60 if (l+1 == r) 61 {
62 sum[mid]++; 63 break; 64 } 65 r = mid; 66 } 67 } 68 } 69 for (int i(0); i<=n; ++i) 70 {
71 printf("%d: %d\n",i,sum[i]); 72 } 73 printf("\n"); 74 } 75 return 0; 76 }

转载于:https://www.cnblogs.com/devtang/archive/2012/01/11/2319752.html

你可能感兴趣的文章
笔记:git基本操作
查看>>
Gold Smith第一章
查看>>
生成php所需要的APNS Service pem证书的步骤
查看>>
JavaWeb之JSON
查看>>
URL中的特殊字符处理
查看>>
HOT SUMMER 每天都是不一样,积极的去感受生活 C#关闭IE相应的窗口 .
查看>>
windows平台上编译mongdb-cxx-driver
查看>>
optionMenu-普通菜单使用
查看>>
MVC3分页传2参
查看>>
2016-2017-2点集拓扑作业[本科生上课时]讲解视频
查看>>
【译】Hello Kubernetes快速交互实验手册
查看>>
appium(13)- server config
查看>>
图形学噪声解析
查看>>
IIS负载均衡-Application Request Route详解第六篇:使用失败请求跟踪规则来诊断ARR...
查看>>
管理信息系统 第三部分 作业
查看>>
[Leetcode Week13]Search a 2D Matrix
查看>>
通过被调函数改变主调函数的值
查看>>
java 对象的序列化与反序列化
查看>>
二叉树、树、森林
查看>>
查看端口占用cmd命令
查看>>