藍書例題 3971 Assemble 二分答案

2021-10-07 06:11:30 字數 3068 閱讀 6653

組裝電腦

題意 :

b塊錢,有很多種配件,每種配件至少選一件,每個配件有名字,引數(沒用),**,品質因子

現在如何買才能使得最小的品質因子最大(最大化最小值問題)

輸入

1

18 800

processor 3500_mhz 66 5

processor 4200_mhz 103 7

processor 5000_mhz 156 9

processor 6000_mhz 219 12

memory 1_gb 35 3

memory 2_gb 88

6memory 4_gb 170 12

mainbord all_onboard 52 10

harddisk 250_gb 54 10

harddisk 500_fb 99 12

casing midi 36 10

monitor 17_inch 157 5

monitor 19_inch 175 7

monitor 20_inch 210 9

monitor 22_inch 293 12

mouse cordless_optical 18 12

mouse microsoft 30 9

keyboard office 4 10

輸出

9
注意點

#define debug

#ifdef debug

#include

#include

"/home/majiao/mb.h"

#endif

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define maxn (1024)

#define ll long long

#define int long long

#define inf (0x7f7f7f7f)

#define fori(lef, rig) for(int i=lef; i<=rig; i++)

#define forj(lef, rig) for(int j=lef; j<=rig; j++)

#define fork(lef, rig) for(int k=lef; k<=rig; k++)

#define qaq (0)

using

namespace std;

#define show(x...) \

do while (0)

void

err(

)template

<

typename t,

typename..

. a>

void

err(t a, a.

.. x)

namespace fastio

void

print()

template

<

typename t,

typename..

. t2>

inline

void

read

(t &x, t2 &..

. oth)

while

(isdigit

(ch)

) x *

= f;

read

(oth...

);}template

<

typename t,

typename..

. t2>

inline

void

print

(t x, t2.

.. oth)

while

(x/=10)

;while

(p3>=0)

putchar

(print_f[p3--])

;putchar

(' ');

print

(oth...

);}}

// namespace fastio

using fastio::print;

using fastio::read;

int n, m, q, k, tot;

mapint> mp;

vectorint,

int>

> g[maxn]

;void

init()

intid

(string s)

/** 二分品質因子,

first為**, second為品質因子,

*/int

check

(int mid)

if(tmin == inf)

return inf;

//買不到這麼高品質因子的配件 返回inf

ret +

= tmin;

}return ret;

}signed

main()

);}int lef =

1, rig =

1e9+

7, mid, ans =0;

while

(lef < rig)

printf

("%lld\n"

, ans);}

#ifdef debug

clock_t etime =

clock()

;printf

("rum time: %lf 秒\n",(

double

)(etime-stime)

/clocks_per_sec)

;#endif

return0;

}

LA2957 網路流 藍書例題

分析 首先假設答案為t。構圖如下 把原圖的每個點u拆成t 1個,分別為u0,u1,其中u0是初始狀態的結點u,ui表示經過i天之後的結點u。對於原圖中的相鄰結點a和b,在新圖中新增一條從ai到bi 1的邊,容量為1,再新增一條bi到ai 1的邊,容量也為1。對於原圖中的每個結點u,新增 ui ui ...

小藍書 電影

題意都是用離散化的嗎?這麼神奇?我的思路就是對於 a 排序,對於語音和字幕的也分別排序,然後三個指標一起從小到大跳得到每個電影的語音和字幕能讓多少個人高興起來。時間複雜度 o nlogn mlogm include include include define n 210000 using name...

藍書 100 IncDec序列

差分陣列的巧妙運用 讓所有數都相同即 讓差分陣列bi,b2 bn都等於0.每次操作相當於選擇i,j.bi bj 為了讓b2 bn都等於0 正數之和 p,負數之和q 最少操作次數一定是 先選擇一正一負,抵消,然後剩的全正或者全負,與b1 bn 1,進行操作。最少次數為 p q 由於選擇b1,bj 和b...