哇,本以為逃出了dp問題,結果轉身又掉了進去。我的腦子哇。這次是0 1揹包問題,感覺和我之前遇到的不太一樣,還沒有切實的編過程式。來看看哇。我一開始的思路是找單位體積價值最大的,進行填充,發現wa了,想了老一會,哦~~~原來是有可能乙個單位體積價值最大的,導致空間剩餘,使其在空間上變小。如果是可以分割的話,估計就正確了。上一波錯的**:
#include #include #include#include#include#include#include#include#include#include#include#include#include#define max 5842
//¶¨ò庯êý¶î
#define repf(i,a,b) for(int i =(a);i<(b);i++)
#define repfe(i,a,b) for(int i =(a);i<=(b);i++)
using namespace std;
struct thing;
thing things[1001];
bool cmp(thing a ,thing b )
int main()
repf(i,0,n)
sort(things,things+n,cmp);
res = 0 ;
repf(i,0,n)
}cout << res <
正確的**。emmm要是沒看懂上邊的,估計多看兩遍**也就懂了,哎,演算法哇
#include #include #include#include#include#include#include#include#include#include#include#include#include#define max 5842
//¶¨ò庯êý¶î
#define repf(i,a,b) for(int i =(a);i<(b);i++)
#define repfe(i,a,b) for(int i =(a);i<=(b);i++)
using namespace std;
struct thing;
thing things[1111];
int dp[1111];
int main()
repf(i,0,n)
repf(i,0,n)
}printf("%d\n",dp[v] );
} return 0 ;
}
天天寫演算法之HDU 2604 Queuing
膜拜一波大神 分析 矩陣快速冪 題意 n個人排隊,f表示女,m表示男,包含子串 fmf 和 fff 的序列為o佇列,否則為e佇列,有多少個序列為e佇列 矩陣快速冪入門題。用f n 表示n個人滿足條件的結果,那麼如果最後乙個人是m的話,那麼前n 1個滿足條件即可,就是f n 1 如果最後乙個是f那麼這...
演算法提高 天天向上
問題描述 a 同學的學習成績十分不穩定,於是老師對他說 只要你連續 4 天成績有進步,那我就獎勵給你一朵小紅花。可是這對於 a 同學太困難了。於是,老師對他放寬了要求 只要你有 4 天成績是遞增的,我就獎勵你一朵小紅花。即只要對於第 i j k l 四天,滿足 i j k l 並且對於成績 wi w...
C 寫演算法之優先佇列
優先佇列不再遵循先入先出的原則,誰的優先順序最高,誰先出隊,分為兩種情況 1.最大優先佇列,無論入隊順序如何,都是當前最大的元素優先出隊 2.最小優先佇列,無論入隊順序如何,都是當前最小的元素優先出隊 優先佇列的實現 二叉堆的特性 1.最大堆堆頂是整個堆中的最大元素 2.最小堆的堆頂是整個堆中最小的...