uvalive3971(二分 貪心)

2021-06-25 23:51:23 字數 1057 閱讀 4259

題目的意思是 ,你要去買一台電腦,然後有很多種零件,你每種零件買乙個 ,零件給出的的資訊有種類,名字,**,質量.

你組裝的電腦的質量,取決於你的零件中質量最差的,也就是你要讓最差值盡量大,但是**不能超出你的budget,也就是你有的錢.

把零件按質量從大到小排,然後從大到小判斷這個質量能不能作為最小值.知道找到乙個質量滿足所有零件質量大於等於它,並且沒有超出金額;

有參考了一下別人的**;

ac**:

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

const int n = 1005;

const int inf = 0x3f3f3f3f;

struct p p[n];

int num[n], t, n, money, p1[n], temp1, k, minn, sum;

int cmp(p a, p b)

int cmp1(int a, int b)

int solve()

} count++;

if (minn == inf)

return -1;

sum += minn;

} if (sum <= money)

return temp1;

return -1;

}int main()

sort(p, p + n, cmp);

sort(p1, p1 + n, cmp1);

k = 0;

num[k] = 1;

temp = p[0].type;

for (int i = 1; i < n; i++)

else

} k++;

temp1 = p1[0];

sum = 0;

int ans = solve();

if (ans != -1)

for (int q = 1; q < n; q++)

}} }

return 0;

}

UVALive 3971 組裝電腦

你有b元錢,想要組裝一台電腦。給出n個配件的種類 品質因子,和 每種型別的配件各買乙個,總價不超過b,求配件最小品質因子的最大值。sample input 118 800 processor 3500 mhz 66 5 processor 4200 mhz 103 7 processor 5000 ...

UVALive 4976(二分查詢)

乙個dp題。複雜度是n logn n是for迴圈從0到n遍歷,logn是二分查詢 思路 預處理 從前往後掃一遍,更新pre陣列 記錄每乙個元素是子串中連續上公升的第幾個,如果a i a i 1 則a i 1.否則a i a i 1 1,a i 是題目給的 從後往前掃一遍,更新aft陣列 記錄每乙個元...

組裝電腦 LA 3971 二分答案

題目 給定電腦的n n 1000 個配件,每個配件有型別,名字 沒用的資訊 和品質因子。要求每種型別的配件各買乙個用於組裝電腦,總 不超過b元。求所有可能的方案中品質因子最差的那個配件的品質因子最大能是多少。分析 看著這資料,覺得暴力也可做,列舉每個品質因子,找出滿足要求的最大的。但如果資料大一點,...