贵族用户
题意:一件衣服可以由 k k k种材料合成,第 i i i种材料数量为 c i c_i ci价格为 d i d_i di个钻石。有 m m m档 v i p vip vip等级,当 v i p vip vip等级为 i i i时,优惠为 p i p_i pi,所以材料价格变为 ⌈ d i ( 1 − p ) ⌉ \lceil d_i(1-p)\rceil ⌈di(1−p)⌉。问合成衣服最少需要冲多少钻石。
题解:枚举每一档 v i p vip vip即可。
代码
#include<bits/stdc++.h>
using namespace std;
int a[100],p[100],cnt[100],w[100],m,k;
void love(int v)
{
int ans = v;
for(int i = 1; i <= m; ++i){
int cost = 0;
for(int j = 1; j <= k; ++j){
cost += cnt[j] * (int)ceil((long double)w[j] * (1.0 - (long double)p[i]/100.0));
}
if(cost < a[i])
cost = a[i];
ans = min(ans,cost);
}
printf("%d\n",ans%10==0? ans/10:ans/10+1);
}
int main()
{
int T;
cin>>T;
while(T--){
cin>>m>>k;
int v = 0;
for(int i = 1; i <= m; ++i){
cin>>a[i]>>p[i];
}
int c,d;
for(int i = 1; i <= k; ++i){
cin>>c>>d;
cnt[i] = c, w[i] = d;
v += c * d;
}
love(v);
}
return 0;
}