小 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 41 3 5
2 1 3
3 2 5
6 35 3
10 10
20 10
輸出樣例#1:
複製
32-11
對於所有的測試資料,保證 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 他的狀態由他的子結點決定。...