洛谷 P3717 [AHOI2017初中组]cover

题目来源: P3717 [AHOI2017初中组]cover - 洛谷

时空限制1000ms / 128MB

题目描述

一个n*n的网格图上有m个探测器,每个探测器有个探测半径r,问这n*n个点中有多少个点能被探测到。

输入输出格式

输入格式:

第一行3个整数n,m,r

接下来m行,每行两个整数x,y表示第i个探测器的坐标

输出格式:

能被探测到的点的个数

样例输入:

5 2 1

3 3

4 2

样例输出:

8

这道题是一个很可爱的题目。为什么这样说呢?因为他要用到可爱的两点之间距离公式也就是被数学老师常年逼迫所背过的x1-x2的平方加上y1-y2的平方的平方根。

注意的是三层循环先循环探测器的坐标

#include

#include

#include

#include

#include

using namespacestd;

char a[110][110];

intx[1000],y[1000];

int i,j;


int main() {

      int n,m,num=0;

      double r;

      cin>>n>>m>>r;

      for(i=1; i<=n; i++)

           for(j=1; j<=n; j++)

                 a[i][j]='0';

      for(i=1; i<=m; i++) {

           cin>>x[i]>>y[i];

           a[x[i]][y[i]]='1';//tanceqi

      }

      for(int k=1; k<=m; k++) {

           for(i=1; i<=n; i++) {

                 for(j=1; j<=n; j++) {

                      doubletot=sqrt((x[k]-i)*(x[k]-i)+(y[k]-j)*(y[k]-j));

                      if(tot<=r)  a[i][j]='2';

                 }

           }

      }

      for(i=1; i<=n; i++) {

           for(j=1; j<=n; j++) {

                 if(a[i][j]=='2') {

                      num++;

                 }

           }

      }

      cout<

      return 0;

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,392评论 0 2
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,048评论 0 2
  • 以前總覺得,要知道很多國家新聞時事要事,這樣在跟其他人聊天的時候才會有話題,可是就算你把所有的東西都瞭解了一遍,也...
    丶xonerate朵大佡阅读 327评论 0 0
  • 2019年3月9日,阴。 思你如马,自别离,未停蹄。 离上次跟你偶遇已经过去三天了,情绪也因雨天而阴沉。天空的阴霾...
    文秘2班江俊炜13阅读 1,224评论 0 2
  • 娃: 七个月的你正是活泼的时候,子宫尚有地方,所以你胎动得更加明显,不过再过一个月,您肥硕了,渐渐填满子宫了,就老...
    SheRo姣阅读 436评论 0 0