zoukankan      html  css  js  c++  java
  • POJ 2352 (stars)

    【题意描述】

    就是给定n个星星的x,y坐标,y坐标按照从小到大的顺序进行排列,x坐标随机排列。下面求对于每个星星而言,其它星星的x,y的坐标都小于等于该星星的数目,然后输出所有的情况。

    【思路分析】

    我们这道题可以采用树状数组求解,将x+1作为树状数组的底标。

    【AC代码】

    #include<iostream>  
    #include<bitset>  
    #include<cstdio>  
    #include<cstring>  
    #include<algorithm>  
    #include<string>  
    #include<cstdlib>  
      
    using namespace std;  
      
    #define MAXN 40000  
      
      
    int n;  
    int c[MAXN];  //树状数组   
    int a[MAXN];
    int x_c[MAXN];  
    int lowbit(int t)  
    {  
        return t&(-t);  
    }  
    int sum(int i)  
    {  
        int s=0;  
        while(i>0)  
        {  
            s+=c[i];  
            i-=lowbit(i);  
        }  
        return s;  
    }  
      
    void modify(int i,int x)  
    {  
        while(i<=MAXN)  
        {  
            c[i]+=x;  
            i+=lowbit(i);     
        }   
    }  
      
    void solve()  
    {     
        int x;  
        memset(a,0,sizeof(a));  
        memset(c,0,sizeof(c));  
        for(int i=1;i<=n;i++)  
        {  
            scanf("%d",&x);  
            a[sum(x+1)]++;//由于是采用lowbit技术时值一定要大于0,对于x=0的情况,所以把所有的x+1.
            modify(x+1,1);  
            scanf("%d",&x);  
        } 
        for(int k=0;k<n;k++)  
        {  
            printf("%d
    ",a[k]);  
        }  
              
    }  
      
    int main()  
    {  
        while(scanf("%d",&n)!=EOF)  
            solve();  
        return 0;  
    }   

     

  • 相关阅读:
    mybatis设置select返回HashMap,字段值为null时,不会保存key
    copyProperties 忽略null值字段
    动态新增表单
    页面时时刷新数据
    FormData 传List对象集合到后台
    linux常用命令总结
    Linux部署安装JDK
    yum安装nginx
    01_Python基础
    Nginx防盗链
  • 原文地址:https://www.cnblogs.com/khbcsu/p/3898886.html
Copyright © 2011-2022 走看看