zoukankan      html  css  js  c++  java
  • 洛谷P1904

    法一,数字太大,可能通过不了
     
    #include <iostream>
    #include <algorithm>
    #include <cstdio>
    using namespace std;
    int a[30010];
    int main()
    {
        int i,n,m,t=0;
        scanf("%d%d",&n,&m);
        for(i=0;i<m;i++) scanf("%d",&a[i]);
        while(m>0)
        {
            //找出最小值和最大值
            int x1=0,x2=m-1;
            for(i=0;i<m;i++)
            {
                if(a[i]<a[x1]) x1=i;
                if(a[i]>a[x2]) x2=i;
            }
            if(a[x1]+a[x2]<=n)
            {
                t++;
                if(x1==m-2) swap(x1,x2);
                if(x2==m-1) swap(x1,x2);
                a[x1]=a[m-1];
                a[x2]=a[m-2];
                m=m-2;
            }
            else {
                a[x2]=a[m-1];
                m--;
                t++;
            }
        }
        printf("%d\n",t);
        return 0;
    }
     
     
    法二,形式上数组
    #include <iostream>
    #include <algorithm>
    #include <cstdio>
    using namespace std;
    int a[30010];
    int main()
    {
        int i,n,m,t=0;
        scanf("%d%d",&n,&m);
        for(i=0;i<m;i++) scanf("%d",&a[i]);
        sort(a,a+m);
        int j;
        i=0;
        j=m-1;
        int x1,x2;
        while(i<=j)
        {
            x1=i,x2=j;
            if(a[x1]+a[x2]<=n)
            {
                t++;
                i++;
                j--;
            }
            else {
                j--;
                t++;
            }
        }
        printf("%d\n",t);
        return 0;
    }
  • 相关阅读:
    codeforces 765 F Souvenirs 线段树+set
    codeforces 768 E 变形NIM博弈/手写sg函数
    BZOJ 1001 狼抓兔子(网络流)
    BZOJ 2957 楼房重建 (分块)
    CodeForces
    CodeForces
    HYSBZ
    SPOJ
    Codeforces-963 D Frequency of String
    中石油2019寒假集训第一场(新生场)(补题)
  • 原文地址:https://www.cnblogs.com/EchoZQN/p/9978325.html
Copyright © 2011-2022 走看看