z

你没有发现两个字里的blog都不一样嘛 qwq

题目描述--->p2313 [HNOI]汤姆的游戏

分析

说不上是分析.

数据范围给出来,这题明显暴力啊emmm。

个人认为的坑点.

这题不要判精度,判精度会挂掉.

输入点之后,直接暴力枚举图形去判断其是否在这个图形中。

本来以为长方形给的都是 左上角和右下角.

结果这题给的是右上角和左下角.

搞得我取了半天\(max,min\).

(代码自己看着都有点恶心.

(还是我没有看清题的说 emmm.

注意计算点到圆心的距离的公式

\(\sqrt{(x_i-x_j) \times (x_i-x_j) +(y_i-y_j)\times (y_i-y_j))}\)

------------------代码-------------------

#include<cstdio>
#include<iostream>
#include<cmath>
#define R register
using namespace std;
int n,m;
struct cod
{
char shape;
double a,b,c,d,r;
}s[508];
int main()
{
scanf("%d%d",&n,&m);
for(R int i=1;i<=n;i++)
{
cin>>s[i].shape;
switch(s[i].shape)
{
case 'r':
{
scanf("%lf%lf%lf%lf",&s[i].a,&s[i].b,&s[i].c,&s[i].d);
break;
}
case 'c':
{
scanf("%lf%lf%lf",&s[i].a,&s[i].b,&s[i].r);
break;
}
}
}
for(R int i=1;i<=m;i++)
{
R double x,y;R int cnt=0;
scanf("%lf%lf",&x,&y);
for(R int j=1;j<=n;j++)
{
if(s[j].shape=='c')
{
double dis=sqrt((s[j].a-x)*(s[j].a-x)+(s[j].b-y)*(s[j].b-y));
if(dis<s[j].r)
cnt++;
}
else
{
if(x==s[j].a or x==s[j].c)continue;
if(y==s[j].b or y==s[j].d)continue;
if(x>min(s[j].a,s[j].c) and x<max(s[j].c,s[j].a)and y<max(s[j].b,s[j].d) and y>min(s[j].d,s[j].b))
cnt++;
}
}
printf("%d\n",cnt);
} }

最新文章

  1. PL/SQL配置Oracle数据库路径
  2. BZOJ4662 : Snow
  3. oracle 10g在redhat5下的安装
  4. Python记录-Pip安装
  5. yii2的GridView和ActiveDataProvider具体使用
  6. [SRH.Docker] HBase Java 第一天学习记录
  7. lintcode:整数排序||
  8. Python标准库:迭代器Itertools
  9. shell学习总结之自定义函数
  10. DiscreteSeekBar使用简介,一个带气泡的SeekBar
  11. 阅读源码(IV)
  12. [开源] C# 封装 银海医保的接口
  13. vsCode 代码不高亮显示的问题
  14. NYOJ 食物链(WA)
  15. Linux学习笔记之Linux运行脚本时 $&#39;\r&#39; 错误
  16. linux动态库
  17. 浅谈malloc()和free()工作原理
  18. 关于RabbitMQ一点
  19. volley4--RequestQueue
  20. ugui之圆角矩形头像实现

热门文章

  1. 抓包工具 - Fiddler - (三)
  2. python学习总结---面向对象1
  3. 【视觉SLAM14讲】ch4心得与课后题答案【仅供参考】
  4. springbootDay03 cookie和session 购物车技术
  5. python中os.path.join和join的区别
  6. mysql安装目录、配置文件存放位置
  7. Linq学习(一)
  8. 整合S2SH框架
  9. 洛谷 P2606 [ZJOI2010]排列计数 解题报告
  10. 【CZY选讲&#183;一道图论神题】