1 条题解

  • 0
    @ 2025-2-14 21:11:41

    C :

    #include<stdio.h>  
    int main()  
    {  
     int n,w,m,i,a[300],t;  
     scanf("%d",&n);  
     while(n--)  
     {  
      scanf("%d%d",&w,&m);  
         int k=0,j=0;  
      for(i=0;i<m;i++)  
         scanf("%d",&a[i]);  
      for(i=0;i<m;i++)  
       for(j=i+1;j<m;j++)  
        if(a[i]>a[j])  
        {  
         t=a[i];  
         a[i]=a[j];  
         a[j]=t;  
        }     
      for(i=0,j=m-1;i<=j;)  
      {  
         if(a[i]+a[j]<=w)  
         {  
          i++;  
          j--;  
          k++;  
         }     
         else if(i==j)  
          k++;     
         else   
         {  
           j--;  
           k++;  
         }       
      }  
        printf("%d\n",k);  
     }  
     return 0;  
    }  
    
    

    C++ :

    #include"stdio.h"
    #include"algorithm"
    using namespace std;
    int main()
    {
        int s;
        scanf("%d",&s);
        while(s--)
        {
            int n,w,i,j=0;
            scanf("%d%d",&w,&n);
            int g[n];
            for(i=0;i<n;i++)
                scanf("%d",&g[i]);
            sort(g,g+n);
            int count=0;
            for(i=n-1,j=0;i>=j;i--)
            {
                if(i==j)
                {
                    count++;
                    break;
                }
               else if(g[i]+g[j]<=w)
                {
                    j++;count++;
                }
                else
                    count++;
            }
            printf("%d\n",count);
        }
        return 0;
    }
    

    Java :

    import java.util.Arrays;
    import java.util.Scanner;
    public class Main
    {
    	static Scanner sc=new Scanner(System.in);
    	public static void main(String[] args)
    	{
    		int s=sc.nextInt();
    		while(s-->0)
    		{
    			int w=sc.nextInt();
    			int n=sc.nextInt();
    			getBoatNumbers(w,n);
    		}
    	}
    	public static void getBoatNumbers(int x,int y)
    	{
    		int arr[]=new int[y];
    		for(int i=0;i<y;i++)
    		{
    			arr[i]=sc.nextInt();
    		}
    		Arrays.sort(arr);
    		int temp=0;
    		for(int i=0,j=arr.length-1;i<=j;)
    		{
    			if(arr[i]+arr[j]<=x)
    			{
    				temp++;
    				i++;
    				j--;
    			}else if(i==j)
    			{
    				temp++;
    			}else{
    				temp++;
    				j--;
    			}
    		}
    		System.out.println(temp);
    	}
    }
    
    • 1

    信息

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