51nod 1636 教育改革

2021-08-19 00:22:28 字數 2509 閱讀 1620

1636 教育改革

codeforces

基準時間限制:1 秒 空間限制:131072 kb 分值: 20 

難度:3級演算法題

最近a學校正在實施教育改革。

乙個學年由n天組成。a學校有m門課程,每天學生必須學習一門課,一門課程必須在一天內學習完。在學習完第i門課程後,學生們會收到 xi

個家庭作業,其中 xi

是區間[

ai,b

i]裡的

乙個整數

。每門課還有乙個屬性,就是複雜度 ci

。a學校現在要制他們的課程表,具體要求如下:

·在課程表中,隨著天數的增加,課程的複雜度是嚴格遞增的。

·除了第1天,每天的作業量必須是前一天的k倍,或者比前一天多k個作業。(假設第i天的作業量為 xi

,則對於i(1<i≤n)到滿足 xi

=k+x

i−1 或 xi

=k⋅x

i−1 );

現在,給定天數n,係數k,和m門課程的ai,bi,ci(1≤i≤m)。要求計算乙個學年可以安排最大的總作業量( 總作

業量的表

達式是∑

ni=1

xi)是多少。

input

單組測試資料

第一行,三個由空格隔開的整數n,m,k(1≤n≤m≤50,1≤k≤100),表示乙個學年的天數,課程的數量,和作業增量係數。

接下來的m行,

每行有三個整數,ai,bi,ci(1≤ai≤bi≤10^16,bi-ai≤100,1≤ci≤100)

分別表示第i門課程的最小作業量,和最多作業量,以及複雜度。

不同的課程可以有相同的複雜度。課程編號從1到m。

output

如果有可行方案,第一行輸出「yes」(沒有引號),第二行輸出最大的作業量。

如果沒有可行方案,則輸出一行「no」(沒有引號)。

input示例

4 5 2

1 10 1

1 10 2

1 10 3

1 20 4

1 100 5

output示例

yes

78

題解:動態規劃一般步驟:分解子問題,得到轉移方程。在本題中,首先按照複雜度c進行公升序排序。對於i位置,我們定義dp[i]為0 ~ i - 1能到達i位置的容器(即滿足p[i] > p[j] && j位置有元素 + k或者*k後範圍在p[i].b ~ p[i].b之間)很明顯i是能到達i的(即以i位置的左右區間元素為開始元素)對於能滿足+k或者*k在p[i].a ~ p[i].b區間的元素,將新元素加入容器中,並且更新dp[i]的num值(+1)。當num值等於n時,表示能夠滿足n天的課程,將ok變成1(ok初始為0,最終為0則是no,反之為yes)

接下來的問題是怎麼獲得最大值,我們發現,當num等於n時,當前放入容器的新元素的最大值是不受任何約束的(即它取最大值不受之前範圍的影響),而在它取最大值時,約束了num等於n - 1時的取值範圍,在範圍內去任何元素都是不受約束的,基於此我們從最大值開始逆推,當當前維護的最大值元素 - k1 或者 /k1在num - 1 元素的範圍內時,取較大值,反之,哪個不符合取另外乙個(不可能兩個都不符合)

ac**

#include #include #include #include #include #include #include #include #include using namespace std;

typedef long long ll;

const int maxn = 111;

struct nodep[maxn];

struct node1

};vectordp[maxn];

vectora[maxn][10 * maxn];

bool cmp(node a1, node a2)

bool check(ll l, ll r, ll a, ll b)

int main()

for(ll i = 0; i < m; i++)

for(ll j = 0; j < i; j++)

cc = a[j][k][l] * k1;

if(cc >= p[i].a && cc <= p[i].b && !s[cc])

}if(a[i][dp[i].size()].size() > 0)

else if(t_ans / k1 < l || t_ans / k1 > r)

else

l = dp[x][y].prex;

r = dp[x][y].prey;

x = l;

y = r;

}if(sum > ans)

ans = sum;

a[i][dp[i].size()].clear();}}

}}

} }if(ok)

else

printf("no\n");

return 0;

}

51 Nod 1636 教育改革 dp

1636 教育改革 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 最近a學校正在實施教育改革。乙個學年由n天組成。a學校有m門課程,每天學生必須學習一門課,一門課程必須在一天內學習完。在學習完第i門課程後,學生們會收到 xi 個家庭作業,其中 xi是區間 ai,...

51NOD 1636 教育改革 (DP 思維)

題意 題解 根據題意,很容易寫出dp i j 表示第 i 天,作業量為 j 的最大的總作業量。但是 j 為1e16很大,空間 所以需要想辦法,把每天的作業量表示出來。根據資料可知,每天的作業量的最大值最小值不超過100,根據這個條件。我們顯然能推出 dp i j l 表示第 i 天選 第 j 門,且...

當今中華之教育改革勢在必行矣

吾曾師從川內名校,修計算機,出師數年,回首大學光陰,常懊惱不已,悔 虛耗光陰,惱 被騙金錢無數,怒 苦心修研卻無所用,修習之術,竟為屠龍之技,致初入社會,一腔躊躇之志盡同秋水東去 尚喜吾於沉淪處尚能自拔,遂訪名師 勤自修,終始成材。一日偶得思科學院之教材,觀之,與吾當年之所學對照,則如絲綢緞面之比麻...