3 条题解

  • 1
    @ 2023-9-24 14:11:39
    #include<stdio.h>
    #include<math.h>
    
    
    int main(void)
    {
    	int n,m;
    	scanf("%d", &n);
    	//循环次数
    	for (int i = 0; i < n; i++)
    	{
    		//半径个数
    		scanf("%d", &m);
    		double a[601] = { 0 };
    		for (int j = 0; j < m; j++)
    		{
    			scanf("%lf", &a[j]);
    		}
    		//排序
    		for (int k = 0; k < m - 1; k++)
    		{
    			for (int j = 0; j < m - 1 - k; j++)
    			{
    				if (a[j] < a[j + 1])
    				{
    					double t = a[j];
    					a[j] = a[j + 1];
    					a[j + 1] = t;
    				}
    			}
    		}
    		//判断输出
    		double sum = 0;
    		int j = 0;
    		while (sum < 20)
    		{
    			sum = sum + 2 * sqrt(a[j] * a[j] - 1);
    			j++;
    		}
    		printf("%d\n",j);
    	}
    	return 0;
    }//第一种题解
    
    • 1
      @ 2023-9-23 16:45:02
      #include<math.h>
      
      int main()
      {
      
          long long m; 
          int n,count,min;
          double sum,r[750],temp; 
          scanf("%lld",&m);
          while(m--)
          {
              scanf("%d",&n);
              for(int i=0;i<n;i++) 
              {
                  scanf("%lf",&r[i]);
      
              }
      
              count=0;sum=0;
              for(int i=0;i<n-1;i++)
              {
                  min=i;
                  for(int j=i+1;j<n;j++)
                  {
                      if(r[min]<r[j])
                          min=j;
                  }
                  if(min!=i)
                  {
      
                      temp=r[i];
                      r[i]=r[min];
                      r[min]=temp;
                  }
              }
              for(int i=0;i<n;i++)
              {
                  if(sum>=20)   
                  {
                      printf("%d\n",count); 
                      break;
                  }
                  else
                  {
                      sum+=sqrt(r[i]*r[i]-1)*2; 
                      count++; 
                  }
              }
      
          }
          return 0;
      }
      
      //第二种题解
      
      
      • 0
        @ 2025-12-5 0:29:54
        #include <stdio.h>
        #include <math.h>
        #include <algorithm>
        #include <iostream>
        using namespace std;
        int main(){
            int m;
            scanf("%d",&m);
            while(m--){
                int n,i=0;
                scanf("%d",&n);
                double r[605];
                while(n--){
                    scanf("%lf",&r[i]);
                    i++;
                }
                sort(r,r+i);
                double len=0.0,cnt=0;
                while(len<20){
                    len+=2*sqrt(r[i-1]*r[i-1]-1);
                    i--;cnt++;
                }
                printf("%0.f\n",cnt);
            }
        }
        
        • 1

        信息

        ID
        121
        时间
        3000ms
        内存
        128MiB
        难度
        7
        标签
        (无)
        递交数
        1333
        已通过
        358
        上传者