原创 UVA 10029

  題意:給定一個字典,找出連續變換的最長路徑。   思路:我只想說LIS不超時啊,只需要預處理求出每個字符串長度就ok了。 #include <iostream> #include <algorithm> #include <cstdi

原创 UVA 10911

  題意:求最小的組合代價。   思路:狀態壓縮,因爲最多隻有16個人,且只需考慮當前狀態下是否在集合中,所以狀態dp(i)表示狀態爲i時的最小代價,轉移時必須確保枚舉的兩個人均不在集合中,還有一點需要注意的是初始化。 #include

原创 UVA 10201

  題意:過n個加油站,沒站油價不等,問達到目的地的最小花費,其實100L油,到達終點至少100L油。   設狀態dp(i,j)表示在第i個加油站有jL油的最小花費,初始dp(i,j)=min{dp(i,j),dp(i-1,j+dis(i

原创 UVA 10617

狀態dp(i,j)表示從第i位到第j位中迴文串的數量,那麼狀態轉移爲 dp(i,j)=[dp(i+1,j)-dp(i+1,j-1)]+[dp(i,j-1)-dp(i+1,j-1)]+[dp(i+1,j-1)]+[dp(i+1,j-1)+1

原创 UVA 10310

  題意:求面值n用k個金幣組成的方法數。   思路:一開始直接想到設狀態dp(i,j)爲面值i用j個硬幣表示的方法數,但最後發現沒辦法轉移,看到有人說用無限揹包,可能是我理解不夠深入,交了幾次都WA了,最後查了寫資料,發現需要用到一個結

原创 Variational Auto-Encoder (VAE)論文閱讀與公式推導

1.問題描述 給定一個數據集,假設其滿足樣本間獨立同分布。本質上,我們希望得到關於該數據集的真實的概率分佈p(x),雖然有一些方法能夠直接估計p(x)中某一點的概率(例如核密度估計、近鄰方法),但這些方法一方面準確性較差,並且隨着樣本維度

原创 UVA 10069

  題意爲求母串中子序列的個數。一開始以爲100*100*10000*sizeof(int)會存不下,一頓撓頭皮,最後看了報告才知道可以存下,好吧,那麼設狀態dp(i,j)爲母串前i位中含有子串前j位的序列數,那麼狀態轉移顯然爲,如果母串

原创 UVA 10891

  題意:給定一組數,每一次選手可從左右兩端任意一段選取連續的任意個數,至少選一個,甲先手,保證每次最優,則最後甲比乙得分多多少。   思路:和兩端取一個數字的做法差不多,即dp(i,j)表示對於從i到j的序列,先手可得得最大分,那麼dp

原创 Denoising Variational Auto-Encoder 降噪變分自編碼器

      降噪變分自編碼器(Denoising VAE),是將Denoising Criterion和VAE結合在一起的一種自編碼器。大致來說,對輸入按一個分佈加入噪聲,然後將擾亂後的樣本作爲的VAE的輸入,並令VAE重構沒有加入噪聲的

原创 UVA 11151

  題意:求最長迴文子序列。   思路:狀態dp(i,j)表示從i到j的最長迴文子序列長度,那麼     dp(i,j)=dp(i+1,j-1)+2,str[i]==str[j]     dp(i,j)=max(dp(i+1,j),dp(

原创 UVA 10154

  題意:有n個烏龜,每個烏龜又一個重量和一個力量,疊羅漢,每個烏龜受重不大於其力量減去自身重量,問最高能疊多少層。   思路:存在一個最優解使得烏龜的力量從上到下是遞增的,證明是比較簡單的,對於任何一個最優解,假設相鄰兩層的重量爲w[i

原创 UVA 10453

  題意:給定一個字符串,可向任意位置添加字符以構成迴文串,求最少添加字符數和處理後的字符串。   思路:定義狀態dp(i,j)爲原串第i個字符到第j個字符夠成迴文的最小添加數,則        dp(i,j)=dp(i+1,j-1),(

原创 UVA 10304 dp的四邊形不等式優化

  最優二叉搜索樹問題,設狀態dp(l,r)爲l到r構成一顆二叉樹的最小花費,則有狀態轉移方程dp(l,r)=min{dp(l,k-1)+dp(k+1,r)+w(l,r)} (l<=k<=r)。w(l,r)的計算可以用前綴和得到,設sum

原创 UVA 10534

  這題的題意很簡單,求滿足題目所給性質的子序列的最長長度,一開始竟然暈暈乎乎的用了枚舉中間元素+LIS的方法求解,好吧,必然超時,然後用了常規的方法,從左到右求一次遞減,從右到左再求一次,最後比較求解,提交後發現還是超時,此時已然意識到

原创 UVA 10306

  理解題意真是一個硬傷,這一題大致是格丁n個向量,求用這些向量相加得到給定長度的最小數。二維無限揹包。一開始用了vector存到達過哪些節點,但寫完發現沒把順序考慮進去,就直接遍歷矩陣更新狀態了。 #include <iostream>