如果你 O(n^2*2^n) TLE on Subtask #3
查看原帖
如果你 O(n^2*2^n) TLE on Subtask #3
1039406
mayike楼主2025/1/10 15:04

改下循环顺序

1:

for(int k=0;k<n;k++)
    for(int j=0;j<n;j++)
        for(int i=0;i<(1<<n);i++)
            if(i>>j&1)f[i][k]+=f[i^(1<<j)][k];
                

2:

for(int j=0;j<n;j++)
    for(int i=0;i<(1<<n);i++)
        if(i>>j&1)
            for(int k=0;k<n;k++)f[i][k]+=f[i^(1<<j)][k];

1直接跑满而2跑不满所以可以过

2025/1/10 15:04
加载中...