UVA 11806 - Cheerleaders
摘要:今天推了好久的一题,就是在矩形中放点,边界上必须有点。用数学语言就是:在一定数内取排列,其中某几段内必须有数被取。比!赛完以后才发现白书二代里面有原题,思路就是U-!A-!B-……+!A!B+!B!C+…… 就是数学中的容斥原理。 1 #include <cstdio> 2 const int Mod = 1e6+7; 3 const int K = 500; 4 int C[K+10][K+10]; 5 int main() 6 { 7 for(int i = 0; i <= K; i++) 8 { 9 C[i][0] = C[i][i] = 1;10 ...
阅读全文
poj - 3233 Matrix Power Series
摘要:求矩阵和的问题。这题我参考罗牛的思路,把前K次和分解为2的幂和,比如25 = 1+8+16。比较郁闷的是,我的代码和他的比,可以说除了变量名其它都一样,结果人家跑16ms,我的141ms。 1 #include <cstdio> 2 int m,n,K; 3 int pow[30][31][31],sum[30][31][31]; 4 void add(int a[31][31],int b[31][31],int c[31][31]) 5 { 6 for(int i = 0; i < n; i++) 7 for(int j = 0; j < n; j++) 8 ...
阅读全文