首页 > 其他 > 详细

UVA565 Pizza Anyone?

时间:2019-04-03 10:14:28      阅读:126      评论:0      收藏:0      [点我收藏+]

UVA565 Pizza Anyone?

这个题目没啥好讲的,直接暴力枚举即可。

主要是弄清怎样就是满足条件:

他想要的存在或不想要的不存在!!!

Code↓:

#include<string>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define RG register
#define IL inline
#define LL long long
#define DB double
using namespace std;

const int N=1100;

char str[N][N];
int cnt,ans,Max=(1<<16)-1;

IL int check(int state,int i) {
    RG int j,len;
    len=strlen(str[i]);
    for(j=0;j<len-1;j+=2)
        if(str[i][j]=='+') {
            if((state>>(str[i][j+1]-'A'))&1) return 1;
        }
        else if(!((state>>(str[i][j+1]-'A'))&1)) return 1;
    return 0;
}

int main()
{       
    RG int i,j,flag;
    while(scanf("%s",str[++cnt])!=EOF) {
        if(str[cnt][0]=='.') {
            for(i=0,ans=-1;i<=Max;++i) {
                for(j=1,flag=0;j<cnt&&!flag;++j)
                    if(!check(i,j)) flag=1;
                if(!flag) {ans=i;break;}
            }
            if(ans==-1) puts("No pizza can satisfy these requests.");
            else {
                printf("Toppings: ");
                for(i=1;ans;ans>>=1,++i) 
                    if(ans&1) printf("%c",i+'A'-1);
                putchar('\n');
            }
            cnt=0;
        }
    }
    return 0;
}

UVA565 Pizza Anyone?

原文:https://www.cnblogs.com/Bhllx/p/10646793.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!