1 条题解

  • 0
    @ 2025-8-24 22:34:37

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar yeshubo_qwq
    我是 luxu。

    搬运于2025-08-24 22:34:37,当前版本为作者最后更新于2021-12-02 21:07:51,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    题面传送门

    题意

    nn 个阵型,mm 个队员,每个队员都有自己能担任的位置,问:哪些阵型可以实现,哪些阵型不可以实现。

    思路

    整体思路:先按能担任的位置进行计数,然后枚举每种阵型,进行判断。

    判断思路:能担任一种职位的就让他担任这个职位,能担任二种职位的,枚举给哪种职位,能担任三种职位的就进行补位。

    代码

    #include<bits/stdc++.h>
    using namespace std;
    int n,i,a[11],b[11],c[11],m,d[8],cnt,flag,j,k,i2,j2,k2,t;
    string s;
    int main(){
        cin>>n;
        for(i=1;i<=n;i++) 
            scanf("%d-%d-%d",&a[i],&b[i],&c[i]);//用scanf读入会比cin方便 
        cin>>m;
        for(i=1;i<=m;i++){
            cin>>s;
            if(s.size()==1){//计数 
                if(s=="O")d[1]++;
                else if(s=="V")d[2]++;
                else d[3]++;
            }
            else if(s.size()==2){
                sort(s.begin(),s.end());//因为可能出现两种情况其实表示同一种(如:NO,ON),所以进行排序 
                if(s=="NO")d[4]++;
                else if(s=="NV")d[5]++;
                else if(s=="OV")d[6]++;
            }
            else d[7]++;
        }
        for(t=1;t<=n;t++){
            flag=0;
            for(i=0;i<=d[4];i++)//枚举NO几人去N 
                for(j=0;j<=d[5];j++)//枚举NV几人去N 
                    for(k=0;k<=d[6];k++){//枚举OV几人去O
                        i2=d[4]-i;//NO剩下的人取O 
                        j2=d[5]-j;//NV剩下的人取V
                        k2=d[6]-k;//OV剩下的人取V
                        cnt=0;
                        if(a[t]>(d[1]+k+i2)) cnt+=a[t]-(d[1]+k+i2);//O缺几个加上 
                        if(b[t]>(d[2]+j2+k2))cnt+=b[t]-(d[2]+j2+k2);//V缺几个加上
                        if(c[t]>(d[3]+i+j))  cnt+=c[t]-(d[3]+i+j);//N缺几个加上
                        if(cnt<=d[7]) {//能担任三种职位的足够补位
    						flag=1;//标记 
    						goto DA;//如果可以,直接跳出 
    					}
                    }
            DA:;
            if(flag)printf("DA\n");else printf("NE\n");
        }
    }
    
    • 1

    信息

    ID
    7282
    时间
    1000ms
    内存
    32MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者