牛客挑戰賽58

2022-10-09 02:45:12 字數 1272 閱讀 8910

前i-1的二進位制相等,a的前n個數的前i-1位可以亂取,b的前n-1個數前i-1位也可以亂取,因為b的第n個數的前i-1異或可為任意值,所以sum1=(2(i-1)n * (2(i-1))n-1=2**((i-1)(2n-1))

a的第i位為1且b的第i位為0 只要a的n數第i位中有乙個不為0的,a的第i位不為0,b的前n-1個數的第i位任意,第n個數的第i位確定 所以sum2=2(n)-1 * 2(n-1)

a,b的m-i位可為任意值 sum=2(n(m-i)) * 2(n(m-i))=2**(2n(m-i))

#include#define ll long long

#define cin(x) scanf("%d",&x)

#define cout(x) printf("%d",x)

#define cinll(x) scanf("%lld",&x)

#define coutll(x) printf("%lld",x)

#define pb(x) push_back(x)

using namespace std;

const int mod=1e9+7;

int pow(int x,int y)

return res;

}int main()

ans=(ans+pow(pow(2,m),2*n-1))%mod;

cout<

long long 不可以直接%,所以要先開成int型的陣列,再用1ll*ans,可以變成ll型且可以求模

牛客Wannafly挑戰賽12 題解

傳送門 說是比賽題解,其實我只會前三題 後面的一定補 t1題意,在乙個長度為n的時間內,問如何選擇存款期限,使得收益最大。dp include include include include using namespace std define fi first define se second d...

日常摸魚 牛客挑戰賽3

無 期望dp,要用字首和優化一下。略了 比較水的追及問題。但是兩個點一開始就在一起要特判掉。稍微轉化一下。只用求數列中任意兩對數的和的位數,這個可以隨便套資料結構。思路大致跟上一場蝴蝶差不多。而且比上場那個簡單多了,連資料結構都不用套。給定乙個n個點的樹,以1為根,邊權都是1。乙個人從起點s開始隨機...

牛客挑戰賽 56 D

給出乙個排列 p 求滿足條件的三元組 i,j,k 個數 n le 10 5 莫比烏斯反演 感覺大半年沒有複習過莫比烏斯反演了,於是這個題直接幫我複習了一下 真 訓練 考慮固定 j 計算貢獻,然後就是求字首和字尾中 gcd p i,x k 的個數了,記出現之前每個數出現次數為 cnt 那麼貢獻為 be...