• Gym


    题目链接:https://nanti.jisuanke.com/t/28882

    解题思路:单纯的判断点是否在圆内,一一遍历圆外切正方形内的点即可,注意,该题要建个结构体数组存每个地精的位置,再bool个map数组用来标记点是否在圆内,map数组不能用int否则会超内存。

     1 #include<iostream>
     2 using namespace std;
     3 int n,m,ans;
     4 bool map[10005][10005];
     5 int in(int x,int y)
     6 {
     7     if(x<0||x>10000||y<0||y>10000)
     8     return 0;
     9     else return 1;
    10 }
    11 struct node{
    12     int x,y;
    13 }a[100005];
    14 int main()
    15 {
    16     cin>>n;
    17     for(int i=0;i<n;i++)
    18     {
    19         cin>>a[i].x>>a[i].y;
    20         map[a[i].x][a[i].y]=1;
    21     }
    22     cin>>m;
    23     for(int i=0;i<m;i++)
    24     {
    25         int x,y,r;
    26         cin>>x>>y>>r;
    27         for(int j=x-r;j<=x+r;j++)
    28         {
    29             for(int k=y-r;k<=y+r;k++)
    30             {
    31                 if(in(j,k))
    32                 {
    33                     if((j-x)*(j-x)+(k-y)*(k-y)<=r*r)
    34                     map[j][k]=0;
    35                 }
    36             }
    37         }
    38     }
    39     ans=0;
    40     for(int i=0;i<n;i++)
    41     if(map[a[i].x][a[i].y])
    42     ans++;
    43     cout<<ans<<endl;
    44     return 0;
    45 }
  • 相关阅读:
    Django学习2
    Django学习1
    python 基于tcp协议的文件传输3_解决粘包问题
    python socketserver
    python hashlib
    python struct模块
    python json 模块
    python socket模块
    13暑假集训#10 总结
    hdu 4493 卡输入输出
  • 原文地址:https://www.cnblogs.com/chen99/p/9381051.html
Copyright © 2020-2023  润新知