多校4 HDU-6077 Time To Get Up 模拟水题

原题链接:HDU-6077
大意:模拟即可。
思路:统计 7 个点。
打了23分钟..
代码实现:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define mem(s,t) memset(s,t,sizeof(s))
#define D(v) cout<<#v<<" "<<v<<endl
#define inf 0x3f3f3f3f
//#define LOCAL
inline void read(int &x){
    x=0;char p=getchar();
    while(!(p<='9'&&p>='0'))p=getchar();
    while(p<='9'&&p>='0')x*=10,x+=p-48,p=getchar();
}
void Print(int a,int b,int c,int d,int e,int f,int g){
    if(a&&b&&c&&e&&f&&g&&!d) printf("0");
    else if(!a&&!b&&c&&!d&&!e&&f&&!g) printf("1");
    else if(a&&!b&&c&&d&&e&&!f&&g) printf("2");
    else if(a&&!b&&c&&d&&!e&&f&&g) printf("3");
    else if(!a&&b&&c&&d&&!e&&f&&!g) printf("4");
    else if(a&&b&&!c&&d&&!e&&f&&g) printf("5");
    else if(a&&b&&!c&&d&&f&&g&&e) printf("6");
    else if(a&&!b&&c&&!d&&!e&&f&&!g) printf("7");
    else if(a&&b&&c&&d&&e&&f&&g) printf("8");
    else if(a&&b&&c&&d&&f&&g&&!e) printf("9");
}
int main() {
#ifdef LOCAL
    freopen("in.txt","r",stdin);
    freopen("out.txt","w",stdout);
#endif
    int t;
    read(t);
    while(t--){
        string s[8];
        for(int i=1;i<=7;i++){
            cin>>s[i];
        }
        //for(int i=1;i<=7;i++) D(s[i]);
        for(int i=0;i<20;i+=5){
            int a=0,b=0,c=0,d=0,e=0,f=0,g=0;
            if(s[1][1+i]=='X') a=1;
            if(s[2][0+i]=='X') b=1;
            if(s[2][3+i]=='X') c=1;
            if(s[4][1+i]=='X') d=1;
            if(s[5][0+i]=='X') e=1;
            if(s[5][3+i]=='X') f=1;
            if(s[7][1+i]=='X') g=1;
            Print(a,b,c,d,e,f,g);
            if(i==5) printf(":"),i+=2;
        }
        puts("");
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值