改个输入方式就wa变ac了??
  • 板块P3392 涂国旗
  • 楼主Lance1
  • 当前回复5
  • 已保存回复5
  • 发布时间2021/3/3 22:37
  • 上次更新2023/11/5 02:29:24
查看原帖
改个输入方式就wa变ac了??
263486
Lance1楼主2021/3/3 22:37

把第二种的scanf换成cin在去掉getchar()就ac了本来全wa 求解!!!

第一种改后的(ac的)

#include<bits/stdc++.h>
#define abc(i,j,k) for(int i=(int)(j);i<=(int)(k);i++)
#define cba(i,j,k) for(int i=(int)(j);i>=(int)(k);i--)
#define INF 0x3f3f3f3f
#define _INF 0xc0c0c0c0
typedef long long ll;
using namespace std;
char Map[55][55];
int line[55][6];

int main()
{
    int n,m;
    cin >> n >> m;
    abc(i,1,n)
    {
        abc(j,1,m)
        {
            cin >> Map[i][j];
            if(Map[i][j] == 'W')
                line[i][1]++;
            if(Map[i][j] == 'B')
                line[i][2]++;
            if(Map[i][j] == 'R')
                line[i][3]++;
        }
        getchar();
    }
    int minx = 999999;
    int ans = 0;
    abc( i , 1 ,n - 2)
    {
        abc( j , 1 , n - 2)
        {
            ans = 0;
            if(i + j > n - 1)
                continue;
            abc(k, 1 , i)
            {
                ans += (line[k][2] + line[k][3]);
            }
            abc(k,i + 1, i + j)
            {
                ans += (line[k][1] + line[k][3]);
            }
            abc(k,i + j + 1,n)
            {
                ans += (line[k][1] + line[k][2]);
            }
            if(ans < minx)
                minx = ans;
            ans = 0;
        }
    }
    cout << minx << endl;
}

第二种改前的(全wa的)

#include<bits/stdc++.h>
#define abc(i,j,k) for(int i=(int)(j);i<=(int)(k);i++)
#define cba(i,j,k) for(int i=(int)(j);i>=(int)(k);i--)
#define INF 0x3f3f3f3f
#define _INF 0xc0c0c0c0
typedef long long ll;
using namespace std;
char Map[55][55];
int line[55][6];

int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    getchar();
    abc(i,1,n)
    {
        abc(j,1,m)
        {
            scanf("%c",&Map[i][j]);
            if(Map[i][j] == 'W')
                line[i][1]++;
            if(Map[i][j] == 'B')
                line[i][2]++;
            if(Map[i][j] == 'R')
                line[i][3]++;
        }
        getchar();
    }
    int minx = 999999;
    int ans = 0;
    abc( i , 1 ,n - 2)
    {
        abc( j , 1 , n - 2)
        {
            if(i + j > n - 1)
                continue;
            abc(k, 1 , i)
            {
                ans += (line[k][2] + line[k][3]);
            }
            abc(k,i + 1, i + j)
            {
                ans += (line[k][1] + line[k][3]);
            }
            abc(k,i + j + 1,n)
            {
                ans += (line[k][1] + line[k][2]);
            }
            if(ans < minx)
                minx = ans;
            ans = 0;
        }
    }
    printf("%d\n",minx) ;
}

求dalao解答我很想知道

2021/3/3 22:37
加载中...