zoukankan      html  css  js  c++  java
  • hihocoder-1812-圆的最大权值

    hihocoder-1812-圆的最大权值

    #1812 : 圆的最大权值

    时间限制:10000ms
    单点时限:1000ms
    内存限制:256MB

    描述

    平面上有N个点,其中第i个点的坐标是(Xi, Yi),并且具有权值Wi。  

    现在你可以以原点为圆心,任意非负实数半径画一个圆。我们将圆内和圆上所有点的权值和记作这个圆的权值。

    请你计算如何画圆可以使权值最大,并输出最大的权值。

    输入

    第一行包含一个整数N。  

    以下N行每行三个整数Xi,Yi和Wi。  

    1 <= N <= 100000  

    0 <= Xi, Yi <= 1000000  

    -1000000 <= Wi <= 1000000

    输出

    一个整数表示答案

    样例输入
    3  
    0 1 1  
    1 0 1  
    1 1 -1
    样例输出
    2

    题解:

      很简单的题目,对所有的点进行排序,然后遍历一遍就可以求出最优大小的

      注意的是在原点的点,必须被这个圆给圈住。

    #include <cstdio>  
    #include <cstdlib> 
    const int MAXN = 100000 + 10; 
    
    struct Node
    {
      long long d, w; 
    };
    Node nd[MAXN];  
    
    int cmp(const void *a, const void *b)
    {
      Node *aa = (Node *)a; 
      Node *bb = (Node *)b; 
      if(aa->d > bb->d)
      {
        return 1; 
      }else{
        return -1; 
      }
    }
    
    int main(){ 
    
        int num; 
        while(scanf("%d", &num) != EOF)
        {
          int x, y, w; 
          for(int i=0; i<num; ++i)
          {
            scanf("%d %d %d", &x, &y, &w); 
            nd[i].d = 1LL*x*x + 1LL*y*y; 
            nd[i].w = (long long)(w); 
          }
          qsort(nd, num, sizeof(Node), cmp); 
    
          long long ans = 0, tmp=0; 
          int j = 0; 
          if(nd[j].d == 0LL)
          { 
            while(j<num && nd[j].d == 0LL)
            {
              ans += nd[j].w; 
              ++j; 
            }
            tmp = ans; 
          }
          for(int i=j; i<num; ++i)
          {
            tmp += nd[i].w; 
            if(tmp > ans)
            {
              ans = tmp; 
            }
          }
          printf("%lld
    ", ans );
        }
        return 0; 
    } 
    

      

  • 相关阅读:
    Java多线程
    SpringCloud
    Java 多线程
    MySQL
    MySQL
    SpringCloud
    SpringCloud
    SpringCloud
    SpringBoot
    Spring MVC
  • 原文地址:https://www.cnblogs.com/zhang-yd/p/9900777.html
Copyright © 2011-2022 走看看