3 条题解

  • 1
    @ 2022-7-11 10:56:16
    #include<bits/stdc++.h>
    using namespace std;
    int w,n,a[50000],s,j;
    int main(){
    	cin>>w>>n;
    	for(int i=1;i<=n;i++) cin>>a[i];
    	sort(a+1,a+n+1);//输入后按体重排序
    	j=n;//双指针,让最大的和最小的坐
    	for(int i=1;i<=j;i++){
    		while(a[i]+a[j]>w){//如果他俩坐不下
    			j--;//就找下一位
    			s++;//让大的单独坐船
    		}
    		j--;//坐下之后找下一位
    		s++;//他俩坐了一艘所以要加一
    	}
    	cout<<s;//输出
    }```
    • 0
      @ 2025-7-1 15:40:10
      #include <bits/stdc++.h>
      using namespace std;
      int x,y,n,a[100005],w,s;
      int main(){
      cin>>w;
      cin>>n;
      for (int i=1;i<=n;i++){
      cin>>a[i];
      }
      sort(a+1,a+n+1);
      for(x=1,y=n;x<=y;){
      if(a[x]+a[y]<=w){
      x++;
      y--;
      s++;
      }
      else{
      y--;
      s++;
      }
      }
      cout<<s;
      return 0;
      }
      
      • 0
        @ 2022-7-11 9:40:40
        #include<bits/stdc++.h>
        using namespace std;
        int x,n,w,p[201],num;
        int main()
        {
            cin>>w>>n;
            for(int i=1;i<=n;i++)
            {
                scanf("%d",&x);
                p[x]++;
            }
            for(int i=200;i>=5;i--)
            {
                while(p[i])
                {
                    num++;
                    p[i]--;
                    for(int j=w-i;j>=5;j--)
                    {
                        if(p[j])
                        {
                            p[j]--;
                            break;
                        }
                    }
                }
            }
            cout<<num<<endl;
            return 0;
        }```
        • 1

        信息

        ID
        98
        时间
        1000ms
        内存
        256MiB
        难度
        2
        标签
        (无)
        递交数
        82
        已通过
        51
        上传者