原创 [CodeForces #80 Div 1 D] 分塊+樹狀數組/線段樹

Part 1 題解 題意 給出一個長度爲N(≤300000) 的數列ai ,再給出M 個詢問,每個詢問是形如(x,y) 的形式,你需要輸出ax+ax+y+ax+2y+...+ax+ky 的和,其中x+(k+1)y>N 。 分析 P

原创 BZOJ 4337 BJOI2015 樹的同構 Hash

題目 給定m 棵無根樹,求每棵樹與其同構的樹的最小編號。 1≤N,M≤50 分析 考慮hash ,要求不涉及編號對答案的影響,且爲了確保正確用2個Hash。 我使用的函數:設當前的子樹是u ,深度是d ,則: hashu=(

原创 【BZOJ】1005 明明的煩惱

Overview 【題意】給出標號爲1 到N 的點,以及某些點最終的度數,允許在任意兩點間連線,可產生多少棵度數滿足要求的樹? 【範圍】0<N≤1000 Analysis 題解1號 題解2號 上面的題解的推導已經很詳細了,公式如下

原创 【BZOJ】1013 球形空間生成器

分析 設圓心的座標爲(r1,r2,...,rn) , 點A(a1,a2,...,an) 和點B(b1,b2,...,bn) 在圓上。 則有 dist=(r1−a1)2+...+(rn−an)2−−−−−−−−−−−−−−−−−

原创 【BZOJ】1011 遙遠的行星

題意 直線上n 顆行星,x=i 處有行星i ,行星j 受到行星i 的作用力,當且僅當i<=Aj ,此時j 受到作用力的大小爲 Fi→j=Mi×Mjj−i ,其中A 爲很小的常量,故直觀上說每顆行星都只受到距離遙遠的行星的作用。

原创 【NOIP模擬題】防護傘

題目 NOIP2012模擬試題 給定N 個平面上的點,求最小的覆蓋所有點的圓的面積。 2≤N≤1000 分析 首先枚舉一個點i ,然後枚舉另一個點j 。 取pi=max(dis(i,j)) 作爲一定選i 所需的圓面半徑。

原创 【BZOJ】1008 越獄

題目 監獄有連續編號爲1...N 的N 個房間,每個房間關押一個犯人,有M 種宗教,每個犯人可能信仰其中一種。如果相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生越獄。 1≤M≤108 1≤N≤1012 分析 發

原创 BZOJ 1015 JSOI2008 星球大戰 逆向回代法+並查集

刪除邊求連通塊個數比較麻煩,但增加邊求連通塊個數可以用並查集來做。 我們考慮存儲所有的操作,然後反過來求解。 #include <cstdio> #include <cstring> #include <cstdlib> #in

原创 【BZOJ】1010 玩具裝箱

分析 預處理前綴和sumi=∑j=1iai ,爲區間求和作準備。 這顯然是dp。 設fi 表示前i 件玩具花的最小費用。 則有: ①邊界條件:f0=0 ; ②動態轉移方程:fi=min(fj+(i−j−1+sumi−su

原创 BZOJ 2118 墨墨的等式 最短路 同餘類分析

BZOJ 2118 墨墨的等式 最短路 同餘類分析 一. 題目 墨墨突然對等式很感興趣,他正在研究a1x1+a2x2+…+anxn=B 存在非負整數解的條件,他要求你編寫一個程序,給定N 、ai 的值以及B 的取值範圍,求出有多少

原创 BZOJ 2002 Hnoi2010 彈飛綿羊 分塊

題意 某天,Lostmonkey發明了一種超級彈力裝置,爲了在他的綿羊朋友面前顯擺,他邀請小綿羊一起玩個遊戲。 遊戲一開始,Lostmonkey在地上沿着一條直線擺上n個裝置,每個裝置設定初始彈力系數ki,當綿羊達到第i個裝置時,

原创 【BZOJ】1009 GT考試

分析 設f[i][j] 表示前i 位,匹配了不吉利數字的j 位的方案數。 邊界:f[0][0]=1,f[0][i]=0 。 轉移:f[i][j]=∑f[i−1][k]∗go[k][j] ,go[k][j] 表示是否有從不吉利數

原创 BZOJ 1014 JSOI2008 火星人prefix Splay+Hash+二分

題目 給定字符串,三種操作: 1. 詢問 語法:Q x y,x,y均爲正整數; 功能:計算LCQ(x, y); 限制:1 <= x, y <= 當前字符串長度。 2. 修改 語法:R x d,x是正整數,d是字符;

原创 【BZOJ】1012 最大數

題目 維護一個數列,兩種操作: 1. 查詢操作 語法:Q L 功能:查詢當前數列中末尾L個數中的最大的數,並輸出這個數的值。 限制:L不超過當前數列的長度。 2. 插入操作 語法:A n 功能:將n加上

原创 【BZOJ】1007 水平可見直線

Analysis 將直線排序:第一關鍵字斜率k ,第二關鍵字截距b 。 然後維護一個下凸殼即可。 Code #include <cstdio> #include <cstring> #include <cstdlib> #inc