• 1278 相离的圆(51nod)


    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1278

    这道题需要用到两个姿势第一将圆相离的模型转换成线段和线段之间不想交,然后还有一个就是修改循环变量的步长。达到降低时间复杂度的效果,不过只能降低系数,并不能降低次数= =

    #include<stdio.h>
    #include<string.h>
    #include<iostream>
    #include<algorithm>
    #define inf 10000000
    using namespace std;
    struct node
    {
        int l,r;
    };
    bool cmp(node a,node b)
    {
        if(a.l==b.l)
            return a.r<b.r;
        return a.l<b.l;
    }
    node a[50000];
    int main()
    {
        int n,c,R;
        scanf("%d",&n);
        for(int i=0;i<n;i++)
        {
           scanf("%d %d",&c,&R);
           a[i].l=c-R;
           a[i].r=c+R;
        }
        sort(a,a+n,cmp);
       /* for(int i=0;i<n;i++)
        {
            printf("%d %d\n",a[i].l,a[i].r);
        }*/
        int ans=0;
        int min;
        int i,j;
        for(i=0;i<n;i++)
        {
           for(j=i+100;j<n;j+=100)//在100的步长内进行寻找不相交的线段
           {
               if(a[j].l>a[i].r)
                break;
           }
           if(j>n) j=n;//大于n的时候要进行这步
           for(int k=j-1;k>=0&&k>j-101;k--)//然后在100内进行扫描
           {
               if(a[k].l<=a[i].r)
               {
                    ans+=n-(k+1);
                    break;
               }
           }
        }
        printf("%d\n",ans);
        return 0;
    }
  • 相关阅读:
    前端安全
    关于HTTPS的概念性了解
    数组去重
    防抖与节流
    对meta标签的再次认识
    关于路由, 我好奇的那些点
    关于构造函数,实例,原型对象一纯手工的理解
    数据库查找操作-java
    python之图像加载和简单处理
    python之excel表格操作
  • 原文地址:https://www.cnblogs.com/NaCl/p/9580177.html
Copyright © 2020-2023  润新知