題意:求a陣列到b陣列的前i位異或m次的值,每次異或a陣列的值變為前i位異或後的值。
比如 異或三次
第一次 b1=a1 b2 = a1^a2 b3 = a1^a2^a3
第二次
b1=a1 b2=a1^a1^a2 b3=a1^a1^a1^a2^a2^a3
第三次 b1=a1 b2=a1^a1^a1^a2 a1^a1^a1^a1^a1^a1^a2^a2^a2^a3
思路 :
可以看出來相鄰的每一位對自己後面d位的貢獻值是一樣的, 而且滿足組合數規律。
寫出a1變換m次對後面第i位的貢獻矩陣
1 1 1 1 1 1
2 1 2 3 4 5
3 1 3 6 10 15
4 1 4 10 20 35
5 1 5 15 35 70
第m次變換 第i位的貢獻值為(m+i-2, m-1);
#include
const int maxn = 2e6+10;
using namespace std;
int a[maxn], b[maxn];
int main()
for(int i=2;i<=n;i++)
}for(int i=1;i<=n;i++) printf("%d
%c",b[i],i==n?'\n':' ');
}return
0;}
組合數學 求組合數
對於求組合數,要根據所給資料範圍來選擇合適的演算法 這道題中所給的資料範圍適合用打表的方法直接暴力求解 先用4e6的複雜度預處理出所有的情況,再用1e4的複雜度完成詢問即可 include using namespace std const int n 2010 const int mod 1e9 ...
吉首 組合數 求組合數因子個數
時間限制 1 sec 記憶體限制 128 mb 求組合數c n,m 以及c n,m 因子個數。n和m,其中0 m n 50,以eof結束。該組合數結果。3 2 4 23 2 6 4先利用楊輝三角求出組合數,然後就是求出因子數了 求因子數 素數分解的唯一性,乙個數可以被分解成若干素數相乘 p1 x1 ...
計算組合數
1.防溢位 如果直接用c n,m n!n m m 來程式設計很可能會在算n!時就爆了long long,所以每一步最好把除分母也算上。所以對於c n,m 來說取m min m,n m 來算c n,m n n 1 n 2 n m 1 m m 1 m 2 1 顯然分子分母都是m項相乘,從後往前去算 先算...