C++ 提高代码的性能 int原件,dp[100001][2048],arr[100001]; cin>>原创; 对于(int i=0;i>arr[i]; dp[0][原件]=1; 因为(inti=1;i

C++ 提高代码的性能 int原件,dp[100001][2048],arr[100001]; cin>>原创; 对于(int i=0;i>arr[i]; dp[0][原件]=1; 因为(inti=1;i,c++,performance,optimization,C++,Performance,Optimization,根据我的说法,你是在要求这个东西 int original,dp[100001][2048],arr[100001]; cin>>original; for(int i=0;i<100000;i++) cin>>arr[i]; dp[0][original]=1; for(int i=1; i<100000; i++) { for(int j=0; j<=1024; j++) { dp[i][j]=dp[i-1][j]+d

根据我的说法,你是在要求这个东西

int original,dp[100001][2048],arr[100001];
cin>>original;
for(int i=0;i<100000;i++)
cin>>arr[i];
dp[0][original]=1;
for(int i=1; i<100000; i++)
{
    for(int j=0; j<=1024; j++)
    {
        dp[i][j]=dp[i-1][j]+dp[i-1][j^arr[i]];
    }
}

for(int i=0;i提高性能的第一步是了解您正在努力实现的目标。到目前为止,您还没有与我们分享。您添加了一些信息,但对我帮助不大:(“arr”似乎未初始化?另外,知道什么是
n
也会有帮助。@skypjack很抱歉不方便。我编辑了代码。@wridhiman,请发布一篇,这段代码充满了错误。
   for(int i=0; i<n; i++)
    {
       occurence[arr[i]]++;
    }
    for(int i = 0; i < 1024; i++)
    {
       if(occurence[i]!=0)
       {
           tt_ways[i]=power(2,occurence[i]-1);
       }
       else
       {
           tt_ways[i]=0;
       }
    }
    dp[0][original]=1;
    if(tt_ways[0]!=0)
    {
        answer[0][tt]=tt_ways[0]+tt_ways[0];
    }
   for(int i=1; i<1024; i++)
    {
        for(int j=0; j<1024; j++)
        {
            const long long int temp =(tt_ways[i]*dp[i-1][j])%MOD;
            if(tt_ways[i]==0)
            {
                dp[i][j]=(dp[i-1][j])%MOD;
            }
            else
            {
                dp[i][j]=(dp[i][j] + temp)%MOD;
                dp[i][j^i]=(dp[i][j^i] + temp)%MOD;
            }
        }
    }
  cout<<dp[1023][0];