2019牛客暑期多校訓練營(第一場)XOR

2021-09-25 20:39:47 字數 929 閱讀 9883

思路:線性基;計算每個數的貢獻;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 顯然就可做了,折半的裸題。...