如果你 91 pts & TLE on #5,#9
查看原帖
如果你 91 pts & TLE on #5,#9
1068414
pystraf11楼主2024/7/29 17:36

本题卡常数,如果你 91 pts & TLE on #5,#9,看下面:

如果你的 dfs2 中采用了以下写法:

if(u >= n){
    if(mp.count(sum))
        for(int i = 0; i < mp[sum].size(); i++) vis[state | mp[sum][i]] = true;
    return;
}

请将其改为:

if(u >= n){
    if(mp.count(sum)){
        auto cur = mp[sum];
        int siz = cur.size();
        for(int i = 0; i < siz; i++) vis[state | cur[i]] = true;
    }
    return;
}

TLE 原因:每遍历一次,都要从 map 中查找 sum,重复运行严重影响效率。

2024/7/29 17:36
加载中...