洛谷P4602 CTSC2018 混合果汁

2021-08-20 17:19:36 字數 2619 閱讀 2560

小 r 熱衷於做黑暗料理,尤其是混合果汁。

商店裡有 n

n 種果汁,編號為 0,1,\cdots,n-10,

1,⋯,

n−1 。 i

i 號果汁的美味度是 d_idi

​ ,每公升**為 p_ipi

​ 。小 r 在製作混合果汁時,還有一些特殊的規定,即在一瓶混合果汁中, i

i 號果汁最多只能新增 l_ili

​ 公升。

現在有 m

m 個小朋友過來找小 r 要混合果汁喝,他們都希望小 r 用商店裡的果汁製作成一瓶混合果汁。其中,第 j

j個小朋友希望他得到的混合果汁總**不大於 g_jgj

​ ,體積不小於 l_jlj

​ 。在上述這些限制條件下,小朋友們還希望混合果汁的美味度盡可能地高,一瓶混合果汁的美味度等於所有參與混合的果汁的美味度的最小值。請你計算每個小朋友能喝到的最美味的混合果汁的美味度。

輸入格式:

輸入第一行包含兩個正整數 n, mn,

m ,表示果汁的種數和小朋友的數量。接下來 n

n 行,每行三個正整數 d_i, p_i, l_idi

​,pi

​,li

​ ,表示 i

i 號果汁的美味度為 d_idi

​ ,每公升**為 p_ipi

​ ,在一瓶果汁中的新增上限為 l_ili

​ 。接下來 m

m 行依次描述所有小朋友:每行兩個數正整數 g_j, l_jgj

​,lj

​ 描述乙個小朋友,表示他最多能支付 g_jgj

​ 元錢,他想要至少 l_jlj

​ 公升果汁。

輸出格式:

對於所有小朋友依次輸出:對於每個小朋友,輸出一行,包含乙個整數,表示他能喝到的最美味的混合果汁的美味度。如果無法滿足他的需求,則輸出 -1−1

。輸入樣例#1:

複製

3 4

1 3 5

2 1 3

3 2 5

6 35 3

10 10

20 10

輸出樣例#1:

複製

32-1

1

對於所有的測試資料,保證 n, m \le 100000n,

m≤10

0000

, 1 \le d_i,p_i,l_i \le 10^5, 1 \le g_j, l_j \le 10^1≤

di​,

pi​,

li​≤

105,

1≤gj

​,lj

​≤10

18。測試點編號n=n

=m=m=

其他限制

1,2,3101

01010

無4,5,6

500500

500500

無7,8,9

500050

00500050

00無10,11,12

10000010

0000

10000010

0000

p_i=1pi

​=113,14,15

10000010

0000

10000010

0000

l_i=1li

​=116,17,18,19,20

10000010

0000

10000010

0000

無題解:

woc這不是主席樹裸題嗎?

對每個值建一顆主席樹,每次二分乙個答案,判斷是否滿足就行了。

**:

#include#include#include#define ll long long

using namespace std;

inline char gc()

return *s++;

}inline ll read()

while(isdigit(ch)) x=x*10+ch-'0',ch=gc();

return x*f;

}const int n=100100;

struct nodejui[n];

struct node1tree[n*44];

int q[n],nn,rt[n],n,m,num;ll ans1;

inline bool cmp(const node &a,const node &b)

inline void query(int x,int l,int r,ll p);int mid=l+r>>1;

int ls=tree[x].left;

if(p>tree[ls].cnt)else

}inline bool check(int md,ll lim,ll g)

ll sum;

inline void gao()

for (int owo=1;owo<=m;++owo)

int l=1,r=n,ans;

while(l<=r)if (l>n)

// printf("%d\n",ans);

printf("%d\n",jui[ans].d);

}}int main()gao();

return 0;

}

洛谷P4602 CTSC2018 混合果汁

小 r 熱衷於做黑暗料理,尤其是混合果汁。商店裡有 n 種果汁,編號為 0,1,2,n 1。i 號果汁的美味度是 di,每公升 為 pi。小 r 在製作混合果汁時,還有一些特殊的規定,即在一瓶混合果汁中,i 號果汁最 多只能新增 li 公升。現在有 m 個小朋友過來找小 r 要混合果汁喝,他們都希望...

洛谷P2018 訊息傳遞

巴蜀國的社會等級森嚴,除了國王之外,每個人均有且只有乙個直接上級,當然國王沒有上級。如果a是b的上級,b是c的上級,那麼a就是c的上級。絕對不會出現這樣的關係 a是b的上級,b也是a的上級。最開始的時刻是0,你要做的就是用1單位的時間把乙個訊息告訴某乙個人,讓他們自行散布訊息。在任意乙個時間單位中,...

洛谷P2018 訊息傳遞

由題意得這是一棵樹,而任何乙個已經接到訊息的人,都可以把訊息告訴他的乙個直接上級或者直接下屬,說明是一棵無根樹。本來以為要用什麼高階樹上演算法亂搞,結果發現 n leq 1000 這不是dfs就能水過嗎?實際上是個樹規 欽定乙個結點為根,我們在有根樹上做樹規。對於結點 x 他的狀態由他的子結點決定。...