2017亚洲区域赛(西安)

B 签到

#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+10;
int a[maxn],b[maxn];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int n,k;
        scanf("%d%d",&n,&k);
        for(int i=1; i<=n; i++)
            scanf("%d",&a[i]);
        for(int i=1;i<=n;i++)
            scanf("%d",&b[i]);
        sort(a+1,a+1+n);
        sort(b+1,b+1+n);
        int ans=0;
        for(int i=n,j=1;i>=1&&j<=n;)
        {
            while(a[i]+b[j]<k)
            {
                j++;
            }
            if(j<=n)
            {
                i--;
                j++;
                ans++;
            }
        }
        printf("%d\n",ans);
    }
}
View Code

F 赌徒定理,ans=n/n+m

H 签到

#include<bits/stdc++.h>
using namespace std;

const int maxn=1e5+10;
int a[maxn];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int n,k;
        scanf("%d%d",&n,&k);
        for(int i=1; i<=n; i++)
            scanf("%d",&a[i]);
        int ans=0;
        for(int i=1; i<=n-k+1; i++)
        {
            int minn=0x3f3f3f3f;
            for(int j=i; j<=i+k-1; j++)
            {
                minn=min(minn,a[j]);
                if(minn==0)
                    break;
//                printf("???");
            }
            if(minn==0) continue;
            ans+=minn;
//            printf("%d ",minn);
            for(int j=i; j<=i+k-1; j++)
            {
                a[j]-=minn;
//                printf("???");
            }

        }
        printf("%d\n",ans);
    }

}
View Code

猜你喜欢

转载自www.cnblogs.com/dongdong25800/p/11693770.html