题解
2025-03-30 23:36:50
发布于:北京
17阅读
0回复
0点赞
注意:要么全文单面打印,要么全文双面打印,不能混合!
单面打印的价格是很显然的:.
考虑双面打印的价格。
显然,双面打印一定是这样打印的:,其中,我们只需要在 这些位置花钱就好了。
所以使用 记录需要花钱的位置。
思考如何求解价格。
令 的大小为 ,我们需要双面打印 次,可以得到:.
需要彩色打印的只有 个位置,而其他 个位置都可以使用黑白打印。
取最小值即可。
时间复杂度:
Code:
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll a,b,c,d,n,m,ansa,ansb;
ll p[200005];
unordered_set<ll> uset;
int main(){
cin>>a>>b>>c>>d>>n>>m;
for(ll i=1;i<=m;i++){
cin>>p[i];
uset.insert(p[i]+1>>1);
}
ansa=m*a+(n-m)*c;
ansb=d*((n+1>>1)-uset.size())+b*uset.size();
cout<<min(ansa,ansb);
return 0;
}
这里空空如也
有帮助,赞一个