请问大神们,这个预处理指令有何作用#ifdef __LOCAL_WONZY__

2020-03-18 22:12发布

__LOCAL_WONZY__有什么特殊含义吗?
在网上看到的别人写的代码,带有这种预处理指令 ifdef endif
貌似这种用法可以用于本地调试,但是使用之前是否应该对 __LOCAL_WONZY__进行定义?又该如何定义呢?

ifdef LOCAL_WONZY

freopen("2.txt", "r", stdin);

endif

全文如下:

include <bits/stdc++.h>

using namespace std;

const int MAXN = 305;
int T, R, C, K, V[MAXN][MAXN], ans;
int dp[2][MAXN][MAXN];

int main() {

ifdef LOCAL_WONZY

freopen("2.txt", "r", stdin);

endif

cin >> T;
for(int cas = 1; cas <= T; ++cas) {
    cin >> R >> C >> K;
    memset(dp, 0, sizeof(dp));
    for(int i = 1; i <= R; ++i) {
        for(int j = 1; j <= C; ++j) {
            cin >> V[i][j];
        }
    }
    ans = R;
    for(int i = 1; i <= R; ++i) {
        for(int j = 1; j <= C; ++j) {
            int maxv = V[i][j];
            int minv = V[i][j];
            int f = i & 1;
            dp[f][j][1] = 1;
            for(int k = 2; k <= j; ++k) {
                minv = min(minv, V[i][j-k+1]);
                maxv = max(maxv, V[i][j-k+1]);
                if(maxv - minv > K) break;
                dp[f][j][1] = k;
            }
            ans = max(ans, dp[f][j][1]);
            for(int k = 2; k <= i; ++k) {
                dp[f][j][k] = min(dp[f][j][1], dp[f^1][j][k - 1]);
                ans = max(ans, dp[f][j][k] * k);
            }
        }
    }
    printf("Case #%d: %d\n", cas, ans);
}
return 0;

}

标签: c++
1条回答
家丑人穷心不美
2楼-- · 2020-03-18 22:43

在别的地方可能定义了这么个宏,用ifdef的时候,大概就是,如果定义了这么宏,我就认为满足什么什么条件,在这里我就应该执行(或者定义,声明什么的)这些代码,定义宏的人可以给宏赋予某种特定的含义,使用宏的人也可以对宏的含义有自己的理解。

总之呢,如果不知道使用宏的代码认为的宏的含义(也就是不是你写的,也没文档什么的),就不用管它,如果你知道的话,那就知道了呗

查看更多
登录 后发表回答