原创 bzoj3174 [Tjoi2013]拯救小矮人

首先,我們要證明一定存在一個最優逃生序列ai滿足: Aa*i + *Bai <= Aai+1 + Bai+1; 可採用反證法得知對於所有逃生序列ai,交換滿足存在: Aa*i + *Bai > Aai+1 +

原创 1972: [Sdoi2010]豬國殺

來道大模擬 oi生涯中寫過最長代碼 #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<vector> #include<

原创 2227: [Zjoi2011]看電影(movie)

經典思路:線轉化爲圈,利用對稱性 假設有k+1個椅子圍成一圈,每張票上寫着1~k+1(而不是1~k),因爲概率均等,我們統計有多少種方案導致椅子k+1上坐着人 一共有(k+1)n種可能的情況。爲了方便敘述,我們假定每

原创 4361: isn

#include<bits/stdc++.h> #define rep(i,k,n) for(int i=k;i<=n;i++) #define rep2(i,k,n) for(int i=k;i>=n;i--) using na

原创 3072: [Pa2012]Two Cakes

有dp[i][j]=min(d[i-1][j],d[i][j-1])+1 –> a[i]==b[j] dp[i][j]=d[i-t+1][j-t+1]+t —> t爲i,j向前最長的不同序列; 但真正需要記錄的狀態爲O(n);

原创 3415: Poi2013 Price List

出題人腦洞好大… 題解參考 #include<bits/stdc++.h> #define rep(i,k,n) for(int i=k;i<=n;i++) #define rep2(i,k,n) for(int i=k;i>=

原创 2655: calc

dp方程易得,可證明答案總爲多項式,拉格朗日插值; #include<bits/stdc++.h> #define rep(i,k,n) for(int i=k;i<=n;i++) #define rep2(i,k,n) for(

原创 bzoj4603 sdoi2016 r2 d2 dice

感覺題目考察的有些偏; 滿中國oj都見不到類似的(晚半年的吐槽。。。。) 其實掌握了相關知識還是很裸的; #define rep(i,k,n) for(int i=k;i<=n;i++) #define rep2(i,k,n)

原创 1426: 收集郵票

期望乘法獨立…. #include<bits/stdc++.h> #define rep2(i,k,n) for(int i=k;i>=n;i--) using namespace std; typedef double db;

原创 3462: DZY Loves Math II

一開始看到這題忽視了S以及問題的特殊性;從而想到了奇怪的方向 注意到構成元素均爲S的約數,所以劃分n的方案可以分成若干S的和與零散部分; 其中零散部分必不能再拆出S,否則會重複計算; 如此,使用組合數與多重揹包即可; #in

原创 bzoj 1937: [Shoi2004]Mst 最小生成樹

將原問題對偶成爲費用流模型; 寫的原始對偶的費用流,然後發現每次增廣容量最多爲1…mdzz #include<bits/stdc++.h> #define rep(i,k,n) for(int i=k;i<=(n);i++) #

原创 poj3468 zkw線段樹

這裏使用了zkw線段樹; 使標記永久化,並維護sum數組:僅考慮子樹的區間和; 這樣一個節點對答案的貢獻就是子樹和加上上方祖先的標記和; 代碼中L,R數組均可省去(但由於筆者太懶。。。。。。) 這樣就給出了一個與論文中不太

原创 3674: 可持久化並查集加強版

主席數維護可持久化數組實現可持久化並查集 思考時主要考慮並查集的變化與特性,沒有考慮其易於處理的本質體現以及手中的工具………

原创 4377: [POI2015]Kurs szybkiego czytania

取補比取交要簡單….思考問題的另一面; #include<bits/stdc++.h> #define rep(i,k,n) for(int i=k;i<=n;i++) using namespace std; const int

原创 3836: [Poi2014]Tourism

樹形dp,多開一維記錄祖先狀態; 轉移時其實是使用的泛化揹包的轉移方式,使程序簡潔高效; #include<bits/stdc++.h> #define rep(i,k,n) for(int i=k;i<=(n);i++) us