D. Dr. Evil Underscores

D. Dr. Evil Underscores_第1张图片

从 n 个数中选出 max(a[i]^x) 的最小值,求 x

采用分治思想,若每一个 a[i] (1<=i<=n) 的二进制第 k 位都是 1 或 0 的话,我们让 x 的第 k 位为 0 或 1,即可将第 k 位置为 0。

但如果第 k 位有 0和1 的话,我们就要比较将其置为 1 还是 0的结果


    int n,m;
    double t; 
    int i,j,k;
int DFS(int k,vector &v)
{
    if(k<0) return 0; 
    vector a,b;
    int len=v.size();
    for(int i=0;i>k) & 1 ) a.pb(v[i]);
        else b.pb(v[i]);
    }
    if(a.size()==0) return DFS(k-1,b);
    else if(b.size()==0) return DFS(k-1,a);
    else return min(DFS(k-1,a),DFS(k-1,b))+(1< v;
        for(i=0;i

 

你可能感兴趣的:(#,分治算法,CF)