51nod1625 列舉 貪心

2022-02-19 21:51:49 字數 967 閱讀 3910

題意:中文題誒~

思路:列舉+貪心

一開始寫的行和列同時列舉,寫的時候就擔心可能行和列會相互影響,提交結果證明我的擔心是對的;

注意到1 <= n <= 10, 1 <= m <= 200,n很小,那麼所有行的狀態不超過1024種,所以可以列舉所有行的狀態,對於每一種行的狀態下再對列貪心。。

枚舉行的所有狀態可以用dfs。。

**:

1 #include 2 #include 

3#define ll long long

4using

namespace

std;56

const

int maxn=11

;7 ll a[maxn][maxn*20], b[maxn][maxn*20], vis[maxn], ans=0

, m, n, x, k;

89 ll get_ans(void)15

}16return

ans;17}

1819

void solve(void)28

}29}30

while

(num)

37if(cnt>vj)41}

42if(fj!=-1

)47 }else

break;48

}49 ans=max(ans, get_ans());50}

5152

void dfs(int

x)57 vis[x]=1

;58 dfs(x+1

);59 vis[x]=0

;60 dfs(x+1

);61}62

63int main(void)69

}70 dfs(0

);71 cout << ans <

72return0;

73 }

view code

51Nod 1548 列舉 暴力

一天,歐姆諾諾姆來到了朋友家裡,他發現了許多糖果。有藍色和紅色兩種。他知道每顆紅色糖果重wr克,每顆藍色糖果重wb克。吃一顆藍色糖果會給他帶來hb的歡樂值,吃一顆紅色糖果會給他帶來hr的歡樂值。歐姆諾姆最多只能吃c克的糖果,而且每一顆糖果不能只吃一半。現在他想通過吃藍色和紅色的糖果來獲得最大的歡樂值...

51nod 1625 夾克爺發紅包

題目鏈結 思路 剛開始的時候和大多數萌新一樣,先列舉每一行的和和每一列的和,依次選出個最小的行或列進行更新。然後無盡的wa 這種二維貪心的解法有後效性,參見網上一組資料 3 3 30 2 10 10 10 1 1 99 20 20 99 一般解法 由於n很小,先對行所有的狀態進行列舉,然後在對列進行...

POJ 1018 列舉 貪心

題意 有n件商品,每件商品有m個製造商,每個製造商製造的商品有不同的 頻寬和 每件商品必須選乙個製造商,最後的頻寬是所有頻寬中的最小值,價值是所有商品的總 目的是使b p最大,輸出最大的b p的值。思路 由於資料範圍比較小,所以可以列舉。可以求出所有製造商的商品的最大頻寬和最小頻寬,然後列舉在兩者之...