Codeforces Round #437 C. Ordering Pizza
题意: n个人吃披萨,总共有两种披萨,每种披萨都是有S块,给出每个人要吃的块数,吃第一种披萨能获得的happy值,吃第二种披萨能获得的happy值,问你,在购买的披萨数最少的情况下能获得的最大的总的happy值是多少(披萨可以买任意多个,吃不完也行 2333333)
3 12
3 5 7
4 6 7
5 9 5
84
6 10
7 4 7
5 8 8
12 5 8
6 11 6
3 3 7
5 9 6
314 思路:首先肯定是每个人都吃happy值更大的那一种披萨最优,但是有一个问题,可能会多出一点零头,那么我们记为sum1和sum2。
如果sum1+sum2>S,那么这些零头肯定是要买两个披萨的,不如就各买各的,那么答案就是ans;
但是如果sum1+sum2<=S,那么就要一起买一个披萨了,这样的话就用ans-min(让买第一种披萨的去买第二种的差值,
让买第二种披萨的去买第一种的差值),
这样算出来的结果就是答案了。
(用结构体保存一下a,b,差值,然后按差值从小到大来排序,肯定是让差值小的最后买这样才最划算,因为如果要买另外一
个这样损失最小)
for(int i=0;i<n1;i++){
ans1+=min(sum1,t1[i].s)*t1[i].c;
sum1-=min(sum1,t1[i].s);
}
for(int i=0;i<n2;i++){
ans2+=min(sum2,t2[i].s)*t2[i].c;
sum2-=min(sum2,t2[i].s);
}
这两句话很关键是从一个帖子看到的23333。 代码: #include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
const int maxn=1e5+5; struct node{
long long s,a,b,c;
}t1[maxn],t2[maxn];
bool cmp(node x,node y){
return x.c<y.c;
} int main(){
long long n,S,n1=0,n2=0,sum1=0,sum2=0,ans=0,ans1=0,ans2=0,x,y,z;
cin>>n>>S;
for(int i=0;i<n;i++){
cin>>x>>y>>z;
if(y>z){
t1[n1].s=x;
t1[n1].a=y;
t1[n1].b=z;
t1[n1].c=y-z;
ans+=t1[n1].a*t1[n1].s;
sum1=(sum1+t1[n1].s)%S;
n1++;
}
else {
t2[n2].s=x;
t2[n2].a=y;
t2[n2].b=z;
t2[n2].c=z-y;
ans+=t2[n2].b*t2[n2].s;
sum2=(sum2+t2[n2].s)%S;
n2++;
}
}
if(sum1+sum2>S){
cout<<ans<<endl;
}
else {
sort(t1,t1+n1,cmp);
for(int i=0;i<n1;i++){
ans1+=min(sum1,t1[i].s)*t1[i].c;
sum1-=min(sum1,t1[i].s);
}
sort(t2,t2+n2,cmp);
for(int i=0;i<n2;i++){
ans2+=min(sum2,t2[i].s)*t2[i].c;
sum2-=min(sum2,t2[i].s);
}
if(ans1<ans2)ans-=ans1;
else ans-=ans2;
cout<<ans<<endl;
}
return 0;
}
Codeforces Round #437 C. Ordering Pizza的更多相关文章
- Codeforces Round #437 (Div. 2)[A、B、C、E]
		
Codeforces Round #437 (Div. 2) codeforces 867 A. Between the Offices(水) 题意:已知白天所在地(晚上可能坐飞机飞往异地),问是否从 ...
 - Codeforces Round #437 (Div. 2, based on MemSQL Start[c]UP 3.0 - Round 2)
		
Problem A Between the Offices 水题,水一水. #include<bits/stdc++.h> using namespace std; int n; ]; i ...
 - 【Codeforces Round #437 (Div. 2) C】 Ordering Pizza
		
[链接]h在这里写链接 [题意] 给你参赛者的数量以及一个整数S表示每块披萨的片数. 每个参数者有3个参数,si,ai,bi; 表示第i个参赛者它要吃的披萨的片数,以及吃一片第 ...
 - Codeforces Round #437 Div. 1
		
A:显然构造一组只包含1和2面值的数据即可. #include<iostream> #include<cstdio> #include<cmath> #includ ...
 - Codeforces Round #437 E. Buy Low Sell High
		
题意:买卖股票,给你n个数,你可以选择买进或者卖出或者什么都不做,问你最后获得的最大收益是多少. Examples Input 910 5 4 7 9 12 6 2 10 Output 20 Inpu ...
 - Codeforces Round #437 B. Save the problem!
		
题意: 给你一个方案数,要求你输出满足该条件的总金额,面值数,和各个面值是多少,答案有多个,随便输出一个即可. Examples Input 18 Output 30 41 5 10 25 Input ...
 - Codeforces Round #437 (Div. 2, based on MemSQL Start[c]UP 3.0 - Round 2) E
		
题意:减前面的数,加后面的数,保证最后不剩下数,加减次数要相同: 题解:emmmmm,看出是个贪心,先对价值排序,相同就对下标排序,规律是每次找第一个,然后从后往前找没有使用过的下表比他大的第一个,相 ...
 - 【Codeforces Round #437 (Div. 2) A】Between the Offices
		
[链接]h在这里写链接 [题意] 在这里写题意 [题解] 在这里写题解 [错的次数] 0 [反思] 在这了写反思 [代码] #include <bits/stdc++.h> using n ...
 - 【Codeforces Round #437 (Div. 2) B】Save the problem!
		
[链接]h在这里写链接 [题意] 给你一个金额N,和硬币的类型总数M; (完全背包),然后问你组成N的方案数. 使得,用这些硬币组成价值为N的金额的方案数为A; 现在A ...
 
随机推荐
- java 加密工具类(MD5、RSA、AES等加密方式)
			
1.加密工具类encryption MD5加密 import org.apache.commons.codec.digest.DigestUtils; /** * MD5加密组件 * * @autho ...
 - day07 深浅拷贝
			
今日概要 深浅拷贝(重点) 文件操作 详细内容 直接赋值: 直接将对象的引用赋值给另一个对象 v1=1000 v2=v1 #v1 v2指向同一个内存地址 print(id(v1),id(v2))#相等 ...
 - python运行过程
			
程序执行过程 PyCodeObject:PyCodeObject则是Python编译器真正编译成的结果. 当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Pyt ...
 - 服务器tcp连接timewait过多优化及详细分析
			
[背景说明] 在7层负载均衡上,查询网络状态发现timewait太多,于是开始准备优化事宜 整体的拓扑结构,前面是lvs做dr模式的4层负载均衡,后端使用(nginx.or haproxy)做7层负载 ...
 - 使用Tensorflow操作MNIST数据
			
MNIST是一个非常有名的手写体数字识别数据集,在很多资料中,这个数据集都会被用作深度学习的入门样例.而TensorFlow的封装让使用MNIST数据集变得更加方便.MNIST数据集是NIST数据集的 ...
 - C++Primer第五版——习题答案详解(九)
			
习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第10章 泛型算法 练习10.1 #include<iostream> #i ...
 - c#  泛型和IComparable<T>接口
			
泛型 因为我们在编程中想先不定义数据类型,只想先写逻辑,就可以使用Object类型, 这样我们的逻辑就适用于所有类型,但是,在运行中,Object类型的变量会需要 转换到对应类型,浪费资源,所有出现泛 ...
 - synchronized 实现同步的基础
			
1.普通同方法,锁是当前实例对象 2.静态同步方法,锁是当前类的class对象 3.同步代码块,锁是括号里的对象
 - MySQL修改数据库、表、列、外键字符编码和排序编码
			
在重启Confluence应用时,突然遇见这个检查错误,查询总结需要修改Mysql数据库的所有字符编码和排序编码,报错如下: Confluence Help – This installation o ...
 - WordPress版微信小程序2.2.8版发布
			
距离上次更新已经一个月了,这期间对WordPress版微信小程序 做的不少小的更新和性能的优化,此次版本更新推出了两个比较重点的功能:点赞和赞赏.同时,优化了文章页面的功能布局,在评论区把常用的功能: ...