一件很奇怪的事
查看原帖
一件很奇怪的事
1054383
c_legg楼主2024/10/28 22:41

这是我的代码:

#include <bits/stdc++.h>
using namespace std;

string dp[11451];

string eval(int x) {
    if(dp[x]!="") return dp[x];
    else {
        int a=0, i=0, x1=x;
        string ret="";
        stack<string> ss;
        while(x) {
            a=x%2;
            x/=2;
            if(a) {
                if(i==1) ss.push("2+");
                else ss.push("2("+eval(i)+")+");
            }
            i++;
        }
        while(!ss.empty()) {
            ret+=ss.top(); ss.pop();
        }
        ret=ret.substr(0, ret.length()-1);
        dp[x1]=ret;
        return ret;
    }
}

int main() {
    dp[0]="0";
    dp[1]="2(0)";
    dp[2]="2";
    int n;

    cin>>n;
    string s=eval(n);
    cout<<s;
    return 0;
}

同样的代码

第一次提交 AC?

第二次提交 怎么RE了?

难道是卡到了评测机的 bug ?


string dp[11451]; 改成 string dp[114514]; 就一定AC了。

为什么呢?

2024/10/28 22:41
加载中...