求助
  • 板块学术版
  • 楼主梦回江南
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/3/18 13:04
  • 上次更新2023/10/28 06:20:16
查看原帖
求助
492676
梦回江南楼主2022/3/18 13:04

下面这段代码为什么一运行就会 CE?(c++20)

File "/tmp/compiler_rp7klly7/src", line 6
    using namespace std;
                  ^
SyntaxError: invalid syntax

#include <map>
#include <cmath>
#include <iostream>
#include <memory.h>
#include <stdbool.h>
#define endl '\n'
using namespace std;

int n;
int jinwei[30];
char a[4][30];
bool f[5][30];
map <char, int> p[4];

void input() {
    cin >> n;
    for (int i = 1; i <= 3; i ++)
    for (int j = 1; j <= n; j ++)
        cin >> a[i][j];
    
    return ;
}

void debug() {
    for (int i = 1; i <= 3; i ++) {
        for (int j = 1; j <= n; j ++)
            cout << p[i][a[i][j]] << ' ';
        cout << endl;
    }
    cout << endl;

    return ;
}

void fuzhi() {
    for (int i = 2; i <= 3; i++)
        for (int j = 1; j <= n; j++)
            p[i][a[i][j]] = p[1][a[i][j]];
    return ;
}

// 调整函数
bool jianzhi() {
    fuzhi();
    if (p[1][a[1][1]] + p[2][a[2][1]] >= n)
        return 1;
    for (int i = n; i >= 1; i --) {
        int js = p[1][a[1][i]], bjs = p[2][a[2][i]], he = p[3][a[3][i]];
        if (f[1][i] == 0 || f[2][i] == 0 || f[3][i] == 0)
            continue;
        if ((js + bjs) % n != he % n && (js + bjs + 1) % n != he % n) 
            return 1;
    }
    return 0;
}

bool judge() {
    memset(jinwei, 0, sizeof(jinwei));
    fuzhi();
    // debug();
    for (int i = n; i >= 1; i --) {
        if ((p[1][a[1][i]] + p[2][a[2][i]] + jinwei[i]) % n == (p[3][a[3][i]]) % n)
            jinwei[i - 1] = floor((p[1][a[1][i]] + p[2][a[2][i]] + jinwei[i]) / n);
        else 
            return 0;
    }
    return 1;
}

void dfs(int x) {
    if (jianzhi())
        return ;
    if (x == n) {
        if (judge()) {
            for (int i = 65; i <= 64 + n; i ++)
                cout << p[1][char(i)] << ' ';
            exit(0);
        }
        else
            return ;
    }
    for (int i = n; i >= x; i --)
        if (!f[1][i]) {
            f[1][i] = f[2][i] = f[3][i] = 1;
            p[1][a[1][i]] = i;
            dfs(x + 1);
            p[1][a[1][i]] = 0;
            f[1][i] = f[2][i] = f[3][i] = 0;
        }
    return ;
}

int main() {
    // #ifndef ONLINE_JUDGE
    //     freopen("debug.txt", "w", stdout);
    // #endif
    ios::sync_with_stdio(false);
    cin.tie(0);

    input();
    dfs(1);

    return 0;
}
2022/3/18 13:04
加载中...