狀壓dp 天上掉Pizza

2021-08-18 17:24:13 字數 969 閱讀 2212

原題:zjnu 1192

題意

買了一種披薩後會得到其他披薩的優惠券,問怎麼賣能使單位面積的披薩**最小(買乙個兩個隨意)

解析

如果dp題做成了順序題,就很難繞出來了

正確做法應該是列舉狀態,由之前的狀態轉移而來。但是如果在想誰先誰後買,就是走歪路了

dp[i]表示狀態為i時最小花費,eg:5個披薩i==29(11101)表示買了1、3、4、5種披薩的狀態,狀態轉移方程為dp[i]=min(dp[i],dp[i-(1<<(j-1))]+w) (w為此時買第j個披薩所需要的花費)

**

#include

#include

#include

#include

#include

using

namespace

std;

double ans;

int n,k;

double p[20],s[20];

double c[20][20];

double dp[1

<<16],siz[1

<<16];

int main()

}dp[0]=0;

for(int i=1;i<(1

dp[i]=min(dp[i-(1

<<(j-1))]+w,dp[i]);

siz[i]=siz[i-(1

<<(j-1))]+s[j];

}//printf("dp[%d] is %.1lf,size is %.1f\n",i,dp[i],siz[i]);

ans=min(ans,dp[i]/siz[i]);

}printf("%.4lf\n",ans);

}}

杭電ACM 天上掉餡餅(DP)

注意點 time 1 活動範圍為4 6 time 2 3 7 time 3 2 8 time 4 1 9 time 5 0 10 全範圍 突破口 狀態 dp i,j 在i秒,j位置能獲得的最大餅數 狀態轉移方程 dp i,j max dp i 1,j dp i 1,j 1 dp i 1,j 1 此題...

免費餡餅(天上掉餡餅)

都說天上不會掉餡餅,但有一天gameboy正走在回家的小徑上,忽然天上掉下大把大把的餡餅。說來gameboy的人品實在是太好了,這餡餅別處都不掉,就掉落在他身旁的10公尺範圍內。餡餅如果掉在了地上當然就不能吃了,所以gameboy馬上卸下身上的揹包去接。但由於小徑兩側都不能站人,所以他只能在小徑上接...

動態規劃 天上掉餡餅

時間限制 1 sec 記憶體限制 64 mb 提交 32 解決 22 提交 狀態 討論版 命題人 題目描述 眾學生一臉不信 老師你不是又在騙我吧,天上怎麼會掉餡餅呢?墨老師滿頭大汗 我這次說得絕對是真的,其實只要你們信,天上也是會掉餡餅的。如圖所示,假設在接下來的一段時間裡,所有的餡餅都掉落在0 1...