2012百度之星初赛下 c题
来源:互联网 发布:轩辕剑3天之痕 mac 编辑:程序博客网 时间:2024/06/05 06:35
度度熊拥有一个自己的Baidu空间,度度熊时不时会给空间朋友赠送礼物,以增加度度熊与朋友之间的友谊值。度度熊在偶然的机会下得到了两种超级礼物,于是决定给每位朋友赠送一件超级礼物。不同类型的朋友在收到不同的礼物所能达到的开心值是不一样的。开心值衡量标准是这样的:每种超级礼物都拥有两个属性(A, B),每个朋友也有两种属性(X, Y),如果该朋友收到这个超级礼物,则这个朋友得到的开心值为A*X + B*Y。
由于拥有超级礼物的个数限制,度度熊很好奇如何分配这些超级礼物,才能使好友的开心值总和最大呢?
输入
第一行n表示度度熊的好友个数。
接下来n行每行两个整数表示度度熊好朋友的两种属性值Xi, Yi。
接下来2行,每行三个整数ki, Ai, Bi,表示度度熊拥有第i种超级礼物的个数以及两个属性值。
1<=n<=1000, 0<=Xi,Yi, Ai, Bi 1+k2>=n
输出
输出一行一个值表示好友开心值总和的最大值
样例输入
4
3 6
7 4
1 5
2 4
3 3 4
3 4 3
样例输出
118
解题思路:
1、 求出每个好友收到不同礼物的开心值放入两个数组中
2、判断礼物数量是否大于人数
3、以A礼物好友开心值为基准从大到小排列B礼物跟随变化
4、比较此种情况下同一人收到两种礼物的开心值大小开心值大的该礼物数量减一
5、求出所有人的开心值
6、同样的方法,以B礼物从大到小求出开心值总和
7、比较两种方法所得开心值较大者输出
代码:
#include<stdio.h>int main(){ int i,j,n,l,m,sum,e,f,sum1; int x[1000],y[1000],a[3],b[3],c[1000],d[1000]; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d%d",&x[i],&y[i]);} scanf("%d%d%d",&a[0],&a[1],&a[2]); scanf("%d%d%d",&b[0],&b[1],&b[2]); for(i=0;i<n;i++){ c[i]=x[i]*a[1]+y[i]*a[2]; d[i]=x[i]*b[1]+y[i]*b[2];} sum=sum1=0; e=a[0]; f=b[0]; for(i=0;i<n;i++){ if(c[i]<c[i+1]){ m=c[i]; c[i]=c[i+1]; c[i+1]=m; l=d[i]; d[i]=d[i+1]; d[i+1]=l;}} for(i=0;i<n;i++){ if(f!=0&&c[i]<d[i]){ sum=sum+d[i]; f=f-1;} if(e!=0&&c[i]>d[i]){ sum=sum+c[i]; e=e-1;}} e=a[0]; f=b[0]; for(i=0;i<n;i++){ if(d[i]<d[i+1]){ m=c[i]; c[i]=c[i+1]; c[i+1]=m; l=d[i]; d[i]=d[i+1]; d[i+1]=l;}} for(i=0;i<n;i++){ if(f!=0&&c[i]<d[i]){ sum1=sum1+d[i]; f=f-1;} if(e!=0&&c[i]>d[i]){ sum1=sum1+c[i]; e=e-1;}} if(sum1>sum){sum=sum1;} printf("%d",sum); return 0;}
- 2012百度之星初赛下 c题
- 2012百度之星初赛:C题
- 【2012百度之星/初赛下】C:度度熊的礼物
- 2012百度之星初赛第2场c题
- 2012百度之星初赛:A题
- 2012百度之星初赛:D题
- 【2012百度之星/初赛下】B:网页聚类
- 【2012百度之星/初赛下】D:小王子的表演
- 2012百度之星初赛之C题:度度熊的礼物
- 2012百度之星初赛第一场B题
- 2012百度之星初赛——A题
- 2012百度之星初赛第一场
- 百度之星2005初赛第二题
- 2015年百度之星初赛(1) --- C 序列变换
- 2009百度之星初赛
- 百度之星2016初赛
- 2017百度之星初赛
- 2017百度之星初赛
- python字符串中插入字符串
- ubuntu解压命令全览
- iPhone开发基础教程笔记(四)--第五章 自动旋转和自动调整大小
- iphone NSString与NSMutableString的区别
- json_encode的php实现
- 2012百度之星初赛下 c题
- Chrome网络库的请求处理
- pInvokeStackImbalance 调试异常的解决办法。
- ActiveX控件的安全初始化和脚本操作
- 不能被继承的类
- 断开所有用户打开的数据库连接
- Oracle推企业云服务 挑战Salesforce
- Sed学习笔记
- zigbee组网