求助大佬,一道水题,蒟蒻60分,非常疑惑

P5730 【深基5.例10】显示屏

az111522240 @ 2020-02-09 19:14:17

P5730

我的代码:

#include<iostream>
#include<string>
#define MAXN 110
using namespace std;
int n;
string s;
char a[MAXN][MAXN];
void solve(int num,int cur)
{
    a[1][cur*4]=a[2][cur*4]=a[3][cur*4]=a[4][cur*4]=a[5][cur*4]='.';
    switch(num)
    {
        case 0:
            a[1][cur*4+1]=a[1][cur*4+2]=a[1][cur*4+3]=a[2][cur*4+1]=a[2][cur*4+3]=a[3][cur*4+1]=a[3][cur*4+3]=a[4][cur*4+1]=a[4][cur*4+3]=a[5][cur*4+1]=a[5][cur*4+2]=a[5][cur*4+3]='X';
            a[2][cur*4+2]=a[3][cur*4+2]=a[4][cur*4+2]='.';
            break;
        case 1:
            a[1][cur*4+3]=a[2][cur*4+3]=a[3][cur*4+3]=a[4][cur*4+3]=a[5][cur*4+3]='X';
            a[1][cur*4+1]=a[1][cur*4+2]=a[2][cur*4+1]=a[2][cur*4+2]=a[3][cur*4+1]=a[3][cur*4+2]=a[4][cur*4+1]=a[4][cur*4+2]=a[5][cur*4+1]=a[5][cur*4+2]='.';
            break;
        case 2:
            a[1][cur*4+1]=a[1][cur*4+2]=a[1][cur*4+3]=a[2][cur*4+3]=a[3][cur*4+1]=a[3][cur*4+2]=a[3][cur*4+3]=a[4][cur*4+1]=a[5][cur*4+1]=a[5][cur*4+2]=a[5][cur*4+3]='X';
            a[2][cur*4+1]=a[2][cur*4+2]=a[4][cur*4+2]=a[4][cur*4+3]='.';
            break;
        case 3:
            a[1][cur*4+1]=a[1][cur*4+2]=a[1][cur*4+3]=a[2][cur*4+3]=a[3][cur*4+1]=a[3][cur*4+2]=a[3][cur*4+3]=a[4][cur*4+3]=a[5][cur*4+1]=a[5][cur*4+2]=a[5][cur*4+3]='X';
            a[2][cur*4+1]=a[2][cur*4+2]=a[4][cur*4+1]=a[4][cur*4+2]='.';
            break;
        case 4:
            a[1][cur*4+1]=a[1][cur*4+3]=a[2][cur*4+1]=a[2][cur*4+3]=a[3][cur*4+1]=a[3][cur*4+2]=a[3][cur*4+3]=a[4][cur*4+3]=a[5][cur*4+3]='X';
            a[1][cur*4+2]=a[2][cur*4+2]=a[4][cur*4+1]=a[4][cur*4+2]=a[5][cur*4+1]=a[5][cur*4+2]='.';
            break;
        case 5:
            a[1][cur*4+1]=a[1][cur*4+2]=a[1][cur*4+3]=a[2][cur*4+1]=a[3][cur*4+1]=a[3][cur*4+2]=a[3][cur*4+3]=a[4][cur*4+3]=a[5][cur*4+1]=a[5][cur*4+2]=a[5][cur*4+3]='X';
            a[2][cur*4+2]=a[2][cur*4+3]=a[4][cur*4+1]=a[4][cur*4+2]='.';
            break;
        case 6:
            a[1][cur*4+1]=a[1][cur*4+2]=a[1][cur*4+3]=a[2][cur*4+1]=a[3][cur*4+1]=a[3][cur*4+2]=a[3][cur*4+3]=a[4][cur*4+1]=a[4][cur*4+3]=a[5][cur*4+1]=a[5][cur*4+2]=a[5][cur*4+3]='X';
            a[2][cur*4+2]=a[2][cur*4+3]=a[4][cur*4+2]='.';
            break;
        case 7:
            a[1][cur*4+1]=a[1][cur*4+2]=a[1][cur*4+3]=a[2][cur*4+3]=a[3][cur*4+3]=a[4][cur*4+3]=a[5][cur*4+3]='X';
            a[2][cur*4+1]=a[2][cur*4+2]=a[3][cur*4+1]=a[3][cur*4+2]=a[4][cur*4+1]=a[4][cur*4+2]=a[5][cur*4+1]=a[5][cur*4+2]='.';
            break;
        case 8:
            a[1][cur*4+1]=a[1][cur*4+2]=a[1][cur*4+3]=a[2][cur*4+1]=a[2][cur*4+3]=a[3][cur*4+1]=a[3][cur*4+2]=a[3][cur*4+3]=a[4][cur*4+1]=a[4][cur*4+3]=a[5][cur*4+1]=a[5][cur*4+2]=a[5][cur*4+3]='X';
            a[2][cur*4+2]=a[4][cur*4+2]='.';
            break;
        case 9:
            a[1][cur*4+1]=a[1][cur*4+2]=a[1][cur*4+3]=a[2][cur*4+1]=a[2][cur*4+3]=a[3][cur*4+1]=a[3][cur*4+2]=a[3][cur*4+3]=a[4][cur*4+3]=a[5][cur*4+1]=a[5][cur*4+2]=a[5][cur*4+3]='X';
            a[2][cur*4+2]=a[4][cur*4+1]=a[4][cur*4+2]='.';
            break;
    }   
}
int main()
{
    cin>>n>>s;
    for(int i=0;i<n;i++)
    {
        solve(s[i]-'0',i);

    }
    for(int i=1;i<=5;i++)
    {
        for(int j=1;j<=4*n-1;j++)
        {
            cout<<a[i][j];
        }
        cout<<endl;
    }
    return 0;
}

我只有60分,但是感觉如果这道题的样例能过,能过前三个点,就没什么问题了吧。。。

萌新什么都不会,请教大佬,这道题也没有数据下载,不知道错哪了

谢谢各位神仙


by ShallowDream雨梨 @ 2020-02-09 19:16:25

这种大模拟的代码很少有人会帮你看的。。。。


by az111522240 @ 2020-02-09 19:20:04

@ShallowDream雨梨 好吧,我自闭了


by az111522240 @ 2020-02-09 20:55:07

我会做了。。我数组空间开小了,太菜了


|