zoukankan      html  css  js  c++  java
  • 天神下凡

    背景
    Czy 找到宝藏获得屠龙宝刀和神秘秘籍!现在他要去找经常ntr 他的Jmars 报仇……
    题目描述
    Czy 学会了一招“堕天一击”,他对一个地点发动堕天一击,地面上就会留下一个很
    大的圆坑。圆坑的周围一圈能量太过庞大,因此无法通过。所以每次czy 发动技能都会把
    地面分割。Jmars 拥有好大好大的土地,几十眼都望不到头,所以可以假设土地的大小是
    无限大。现在czy 对他发动了猛烈的攻击,他想知道在泽宇攻击之后他的土地被切成几份
    了?
    Czy 毕竟很虚,因此圆心都在x 坐标轴上。另外,保证所有圆两两之间不会相交。
    格式
    输入第一行为整数n,表示czy 放了n 次堕天一击。
    接下来n 行,每行两个整数x[i],r[i]。表示在坐标(x[i] , 0)放了一次堕天一击,半
    径为r[i]。
    输出一行,表示地面被分割成几块。
    样例输入
    4
    7 5
    -9 11
    11 9
    0 20
    样例输出
    6
    数据范围
    对于30%数据,n<=5000
    对于100%数据,1<=n<=300000,-10^9<=x[i]<=10^9,1<=r[i]<=10^9.

    solution:

    这道题我打的真是暴力,A了.........

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<cmath>
     5 #include<algorithm>
     6 #include<vector>
     7 #include<queue>
     8 #define ll long long
     9 #define mem(a,b) memset(a,b,sizeof(a))
    10 #define dd double
    11 using namespace std;
    12 const int N=300005;
    13 /*int read()
    14 {
    15     int ans=0;char q=getchar();
    16     while(q<'0'||q>'9')q=getchar();
    17     while(q>='0'&&q<='9'){ans=ans*10+q-'0';q=getchar();}
    18     return ans;
    19 }*/
    20 struct son
    21 {
    22     int l,r;
    23 };
    24 son ji[N];
    25 
    26 bool ok(son a,son b)
    27 {
    28     if(a.l==b.l)return a.r>b.r;
    29     return a.l<b.l;
    30 }
    31 
    32 int n,ans;
    33 int u,o;
    34 
    35 void out11()
    36 {
    37     printf("
    
    ");
    38     for(int i=1;i<=n;++i)
    39       printf("%d %d
    ",ji[i].l,ji[i].r);
    40     printf("
    
    ");
    41 }
    42 
    43 int main(){
    44     //freopen("god.in","r",stdin);
    45     //freopen("god.out","w",stdout);
    46     cin>>n;
    47     for(int i=1;i<=n;++i)
    48     {
    49         //u=read();o=read();
    50         cin>>u>>o;
    51         ji[i].l=u-o;
    52         ji[i].r=u+o;
    53     }
    54     
    55     //out11();
    56     
    57     sort(ji+1,ji+1+n,ok);
    58     
    59     //out11();
    60     
    61     ans=1;
    62     
    63     
    64     //printf("sss%d %d
    ",ji[1].l,ji[1].r);
    65     //printf("sss%d %d
    ",ji[2].l,ji[2].r);
    66     
    67     for(int i=1;i<=n;++i)
    68     {
    69         if(i!=n&&ji[i+1].l==ji[i].l)
    70         {
    71             //cout<<"sdsd"<<endl;
    72             //printf("i=%d
    ",i);
    73             int l1=ji[i].l,r1=ji[i+1].r;
    74             for(int j=i+2;j<=n;++j)
    75             {
    76                 //printf("l1=%d r1=%d
    ",l1,r1);
    77                 if(ji[j].l==r1&&ji[j].r<=ji[i].r)
    78                 {l1=ji[j].l;r1=ji[j].r;}
    79                 
    80                 if(r1==ji[i].r)
    81                 {
    82                   ++ans;
    83                   
    84                   break;
    85                 }
    86             }
    87         }
    88         ++ans;
    89     }
    90     
    91     printf("%d",ans);
    92     //while(1);
    93     return 0;
    94 }
    暴力
  • 相关阅读:
    POJ1006(中国剩余定理)
    Ubuntu16.04安装jupiter
    OpenGL.tutorial06键盘和鼠标
    OpenGL.教程
    OpenGL.Qt532.cube
    Qt551.主窗体Margin
    Qt551.窗口滚动条
    Qt551.OpenGL.ZC简单例子
    Qt5OpenGL.顶点像素大小设置
    OpenGL.Tutorial03_Matrices_测试
  • 原文地址:https://www.cnblogs.com/A-LEAF/p/7252455.html
Copyright © 2011-2022 走看看