思路:線性基;計算每個數的貢獻;1.線性基外的數,每個數都能和外面其他n-size-1個數自由組合;2.基內的數看它是否能出剩下的數組成的基中異或出,如果能就說明有外面的數可以替代他,而基的size還是不變的,所以該數貢獻也是外面數自由組合
#include #include #include #include using namespace std;
#define ll long long
#define mem(x,y) memset(x,y,sizeof(x))
#define fast_io ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
const int maxn=1e3+9;
const int mod=1e9+7;
ll p1[70],p2[70],p3[70];
ll power(ll x,ll n)
return ans;
}bool insert(ll x,ll p)
else}}
return f;
}bool check(ll x,ll p)
return x==0;
}vectorvx;
int main()
else
}ll ans=0;
int si=vx.size();
if(si!=n) ans=((n-si)*power(2,n-si-1))%mod;
for(int i=0;i=0;j--) p3[j]=p2[j];//剩下si-1個的和不在基的得到新的基
for(int j=0;jif(check(x,p3))
ans=(ans+power(2,n-si-1))%mod;
}cout<}
return 0;
}
牛客暑期多校訓練營B Boundary
給定n個點,然後確定乙個過原點的圓,要使這n個點盡可能多的存在與圓上,最後輸出最多的存在於圓上的點的個數 三點確定乙個圓,我們已知這個圓必定經過原點,所以再依次利用三點求圓心的公式列舉每兩個點與原點 三點不共線 確定的圓心,最後選擇確定次數最多的圓心構成的圓 include include incl...
2019牛客暑期多校訓練營(第一場)
題意 題解 c 版本一 題意 題解 c 版本一 題意 題解 c 版本一 題意 題解 c 版本一 題意 題解 c 版本一 題意 題解 數學 計算幾何 邏輯推理 c 版本一 題解 特例 正三角形 取重心 中點 頂點,則期望為 公式 author stzg language c include inclu...
2019牛客暑期多校訓練營(第九場)
d knapsack cryptosystem 折半搜尋,晚上又去看了挑戰程式設計,對於時間複雜度高的情況,可以通過犧牲空間來降低時間複雜度。先把前半部分所有可以組合的情況列舉出來,然後對於後半部分依次列舉,那麼複雜度變化為o 2 36 o 2 18 2 18log 18 顯然就可做了,折半的裸題。...