這題的關鍵在於推公式。
推出公式並化簡後,中等和困難都可以做了。
之前推了乙個公式:
for(int i=1;i)然後做中等難度的時候用容斥來了一發。for(int j=1;j)
}
妹的,為了n^2維護字首花了接近一天。。。
intview codesum[n];
memset(sum,
0,sizeof
(sum));
for(int n=2;n)
}//真是他媽簡單
memset(dpr,0,sizeof
(dpr));
for(int n=2;n)
for(int m=2;m)
其實公式可以化簡為:
這樣子,用二維dp就很好搞了。
然後之前我也推了一種比較簡單的遞推做普通難度。
//對於困難難度。有了上面的那個公式,就是標準的莫比烏斯反演了。////
created by new_life on 16/7/4.
////
#include
#include
#include
#include
using
namespace
std;
int dp[4001][4001
];int dp1[4001][4001
];#define mod (1<<30)
int main(int argc, const
char *ar**)
intt;
cin>>t;
while(t--)
return0;
}
建議先搞懂bzoj2301,然後想想就能想到
//--莫比烏斯反演函式--
////
說明:利用線性素數篩選順便求了個mu
//注釋部分為求從區間[1,b]和區間[1,d]中取兩個數,互質對數o(n^0.5)
//複雜度:o(n)
intmu[n];
long
long sum[3
][n];
void
mobus()
for(int j=0;j)
mu[tmp] = mu[i]*-1
; }
}for(int i=1;i)
}long
long gaobili(int b,int d,int nn,int mm,int
flag)
return (ans*nn*mm)%mod - (ans1*mm*flag)%mod - (ans2*nn*flag)%mod + ans3*flag*flag;
}int
main()
return0;
}/*4 2 2
7 10
23 34
100 100
*/這題從簡單到困難,寫了至少5,6個版本的**。為了搞懂莫比烏斯根號n的優化,又去a了幾道題。真是弱。真是可悲。
計蒜客 聯想的顯示屏校準 莫比烏斯反演
先來乙個題面 題目要我們計算在n m的點陣中不同的直線有多少條。顯然平行於座標軸的直線只有n m條,所以我們只需要考慮不平行於座標軸的。我們列舉直線的方向向量 a,b 且令a,b 0,那麼每一條這樣的直線通過繞垂直軸翻轉都能一一對應一條另一方向的直線 顯然,自行腦補就行了 然後,我們定義乙個點 x,...
Winform多顯示屏顯示
一台主機連線了2臺顯示器 2個顯示卡 要求乙個程式的兩個窗體在不同的顯示器上顯示 顯示器1 顯示from1,顯示器2 顯示from2。及說明如下 form1不需要變更 from2新增如下 方法一 from2 frm2 new from2 if screen.allscreens.count 1 方法...
筆記 顯示屏LCD
之前有個屏廠家講過背光液晶屏的原理,液晶是特殊狀態。可能不太記得講了什麼,也沒留下ppt,遺憾。後來有一樣機,裝過,觸控螢幕是薄薄一層,下面是顯示屏,從物理上是分離的。這次從網上收集資料,先學習一下顯示屏是什麼。現在,pc顯示屏已經有led 發光方式 屏了。但是貌似手機都是lcd 背光方式 lcd ...