#include <bits/stdc++.h>
using namespace std;
#define mod 1000000007
int dp[100000][100000];
int main()
{
long int n;
cin>>n;
vector <int> a(n);
for(long int i=0;i<n;i++)
cin>>a[i];
memset(dp,0,sizeof(dp));
long long int maxi=0;
for(long int i=0;i<n;i++)
{
for(long int j=i;j<n;j++)
{
dp[i][j]=dp[i][j-1]^a[j];
dp[i][j]%=mod;
if(maxi<dp[i][j])
maxi=dp[i][j];
}
}
cout<<maxi;
return 0;
}
编译器抛出错误:
在函数_GLOBAL__sub_I_dp':
(.text.startup+0x185): relocation truncated to fit: R_X86_64_32 against
。bss'中
(.text.startup + 0x194):重定位被截断以适合:R_X86_64_32对抗`.bss'
错误:ld返回1退出状态
这是什么错误?
答案 0 :(得分:0)
您的全局阵列占用40GB,您无法将其放入该计划的std::vector
部分。它不适合那里。
即使它确实如此,你最终会得到一个巨大的二进制文件,所以这首先是一个坏主意。
如果您安装了45 + GB RAM,则可以使用动态分配(通过tableView.reloadData()
),否则,请重新考虑您的代码以减少内存。