做過的原題
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
void
fre(
)#define ms(x,y) memset(x,y,sizeof(x))
#define mc(x,y) memcpy(x,y,sizeof(x))
#define mp(x,y) make_pair(x,y)
#define ls o<<1
#define rs o<<1|1
typedef
long
long ll;
typedef
unsigned
long
long ul;
typedef
unsigned
int ui;
template
inline
void
gmax
(t1 &a, t2 b)
template
inline
void
gmin
(t1 &a, t2 b)
const
int n =
0, m =
0, z =
1e9+
7, ms63 =
0x3f3f3f3f
;int n;
int x;
int b[
105]
;int
main()
if(m ==0)
puts
("0");
else
printf
("%lld\n"
, ans);}
}return0;
}/*【trick&&吐槽】
1,這題最壞情況下,ans可達2^48*3,會爆int。
2,還是需要考慮沒有1這種無法劃分的特殊情況。
【題意】
有n(1<=n<=100)個數,每個數不是0,就是1.
我們要把這些數劃分成若干區間段。使得每個區間段恰好都有且僅有乙個1
問你劃分的方案數
【型別】
簡單題【分析】
顯然,有多少個1,我們就必然要劃分成多少段。
然後,兩個相鄰1之間有w個0,我們的劃分方案數就是w+1
於是,我們記錄所有1的位置,對於任意一對相鄰的1,答案乘上b[i+1]-b[i]
然後就ac啦
【時間複雜度&&優化】
o(n)
*/
確定進製(經典水題)
問題描述 6 9 42 對十進位制來說是錯誤的 但是對13進製來說卻是正確的 即6 13 9 13 42 13 42 13 4 13 2 1 54 你的任務是編寫一段程式 讀入3個整數,p,q和r 然後確定乙個進製b 2 b 16 使得p q r。如過b有很多選擇 則輸出最小的那個進製 如果沒有合適...
POJ 2449 A 經典水題
先求每個點到目地t的最短距離。這一步可以將圖的每條邊反向,做單源最短路求得。然後就是在圖上搜尋。可以用優先佇列來實現搜尋狀態的篩選。f g h g為搜尋到此點已經走過的距離,h為此點到t的最短距離。當第k次搜到t,此時的g h就是第k短路。include include include includ...
字尾陣列水水水水水水題
首先 jxrjxrjxr orz,沒有您我們都會死 然後就是我從jxr神犇那裡借鑑 照抄 過來的字尾陣列模板。include include include define cmp x y sa i x y sa i 1 x using namespace std const int n 100000...