小球(总结sort和cmp函数、结构体排序)
问题 N: 小球(点击)
时间限制: 1 Sec 内存限制: 128 MB
提交: 462 解决: 172
[提交] [状态] [讨论版] [命题人:admin]
题目描述
有R个红色盒子和B个蓝色盒子,还有R个红色小球和B个蓝色小球。每个盒子只能装一个小球,每个小球都要放在一个盒子里。如果把一个红色小球放在一个红色盒子里,那么得分是C。如果把一个蓝色小球放在一个蓝色盒子里,那么得分是D。如果把一个红色小球放在一个蓝色盒子里,那么得分是E。如果把一个蓝色小球放在一个红色盒子里,那么得分也是E。现在给出R,B,C,D,E。应该如何放置这些小球进盒子,才能使得总得分最大?输出最大的总得分。
输入
一行,5个整数,分别是R,B,C,D,E。(1 ≤ R ≤ 100,1 ≤ B ≤ 100, -1000 ≤ C,D,E ≤ 1000)
输出
一个整数,最大总得分。
样例输入
复制样例数据
2 3 100 400 200
样例输出
1400
提示
#include<stdio.h>
int main()
{
long long int sum[100006],n,m,c,d,e,k,i,j,temp;
scanf("%lld%lld%lld%lld%lld",&n,&m,&c,&d,&e);
k=0;
if(n>=m){ //先判断n和m的个数关系 因为如果不相同肯定不是交换m+n次
for(i=0;i<=m;i++){
sum[k++]=2*i*e+(n-i)*c+(m-i)*d; //i表示从n和m中各自拿出的个数 由此可以计算总分数
}
}
else{
for(i=0;i<=n;i++){
sum[k++]=2*i*e+(n-i)*c+(m-i)*d;
}
}
for(i=0;i<k-1;i++){
for(j=0;j<k-i-1;j++){ //由于没改头文件 所以就先没用sort排序
if(sum[j]<sum[j+1]){
temp=sum[j];
sum[j]=sum[j+1];
sum[j+1]=temp;
}
}
}
printf("%lld\n",sum[0]); //输出最大的积分
return 0;
}
虽然题目简单 但由于没搞清楚字母i的含义导致多次错误。
scanf("%lld%lld%lld%lld%lld",&n,&m,&c,&d,&e);
k=0;
if(n>=m){
for(i=0;i<=m;i+=2){
sum[k++]=i*e+(n-(i/2))*c+(m-(i/2))*d; //其实i并不是只可以取0 2 4 等偶数 因为由于i
表示的含义是从m和n中各取小球的数目 所以i可
以取任意小于n或m的值。(错误点)
}
}
else{
for(i=0;i<=n;i+=2){
sum[k++]=i*e+(n-(i/2))*c+(m-(i/2))*d;
}
}
总结 sort 和 cmp函数
1.对整形数值的使用:
int cmp(int x,int y)
{
return x>y; // 从大到小 return x<y; // 从 小到大
}
这里面和在冒泡排序中对x和y的判断相反 因为这是返回时候的大小关系
而冒泡是对返回之前的大小关系的判断 然后做出排序
* 同样适用于 lang lang int 但注意一定要将cmp函数中所有的int换掉 不然提交后会报错(报错今天遇到最多的就是忘记加& 确实 不应该)。
2.对浮点型的数值的使用:
double cmp(double x,double y)
{
return x>y; // 从大到小 return x<y; // 从 小到大
}
3.达到像冒泡中对二维数组a[i][0]的排序 :(使用结构体)
普通冒泡排序:
for(i=0;i<k-1;i++){
for(j=0;j<k-i-1;j++){
if(sum[j][0]<sum[j+1][0]){
temp=sum[j][0];
sum[j][0]=sum[j+1][0];
sum[j+1][0]=temp;
temp=sum[j][1];
sum[j][1]=sum[j+1][1];
sum[j+1][1]=temp;
}
}
}
使用结构体排序: (c++头文件)
struct node{
int x,y; //定义结构体
}a[10006];
int cmp(node a,node b)
{
return a.x<b.x; //按照x 即a[0][0]和a[1][0]的大小关系排序 若为y则按照a[0][1]和a[1][1]
}
for(i=0;i<n;i++){
scanf("%d%d",&a[i].x,&a[i].y); //结构体的输入
}
//使用sort
sort(a,a+n,cmp); //从0开始的n个值的排序
sort(a,a+n+1,cmp); //从1开始的n个值的排序
小球(总结sort和cmp函数、结构体排序)的更多相关文章
- <algorithm>里的sort函数对结构体排序
题目描述 每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签到.签离记录,请根据记录找出当天开门和关门的人. 输入描述: 每天的记录在第一行给出记录的条目数M (M &g ...
- 网上关于sort结构体排序都不完整,我来写一个完整版的 2014-08-09 16:50 60人阅读 评论(0) 收藏
主要参考sort函数_百度文库, 但是那篇有错误 2.结构体排序,a升,b降,c降 平板视图 打印? 01 #include <iostream> 02 #include <algo ...
- qsort 与sort 对结构体排序实例
qsort 与sort 对结构体排序实例 #include<bits/stdc++.h> using namespace std; typedef struct { string book ...
- 转载 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
转载自:http://www.cnblogs.com/cj695/p/3863142.html sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在 ...
- 【转】 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能 ...
- 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能 ...
- 【C++】从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能 ...
- sort的cmp函数
sort的cmp函数只能写return a>b;或者return a<b;
- go语言的排序、结构体排序
原文:https://studygolang.com/articles/1598 晚上准备动手写点 go 的程序的时候,想起 go 如何排序的问题.排序 sort 是个基本的操作,当然搜索 searc ...
随机推荐
- CF55D
题目大意: 定义:beautiful number,一种能整除它的所有非 0 数位的数字. 给你 l 和 r,请求出 [l,r] 中 beautiful number 的个数. 解题思路: 数位 DP ...
- Docker入门 安装Tomcat以及报404解决方案
时间:2020/1/18 17:34:09 浏览:24 来源:互联网 记录简单的在Docker 上安装Tomcat 首先我是在云服务器上(Centos系统)安装的Docker,我们需要在https:/ ...
- Python 为什么不用分号作终止符?
一般而言,编程语言中使用分号";"来实现两种目的: 作为语句分隔符:使用分号来分隔语句(statement),这样就能在一行代码中书写多条语句(一行多句) 作为语句终止符:使用分号 ...
- 问答题:你下班后是选择关电脑?Or,只关闭显示器?
首百问答的答案:jingmentudou 因为你永远不知道什么时间会被叫醒.开个远程就能避免半夜去公司了. 月尧jade 干这一行的,电脑自按下开机键开始,除了驱动会自动启动外,你需要重新检查各大运行 ...
- flutter 环境出错后排查
莫名其妙地环境坏了 VSCode 终端里执行 flutter run 卡在 installing.. 模拟器上闪了一下,打不开, 应该是安装出错爆掉了 flutter doctor 检查一下: X A ...
- 前端自动化构建之gulp
前言 之前学完html的基础后就去学js框架了,每次都是用脚手架搭好的文件,在无形中体验了一波前端自动化带来的方便.然后前一段时间才开始学习前端自动化. 基本介绍 gulp说得简单一点就是一个自动化把 ...
- 【GAN】GAN设计与训练集锦
以下内容纯属经验之谈,无公式推断!部分内容源自其他博客或课程,并已标注来源. 问题篇[1] 1.模式崩溃 在某个模式(mode)下出现大量重复样本,如左图中,生成的样本分布靠得很近,较聚集,可视化如右 ...
- python异常1
异常的层次结构: BaseException [所有异常的基类] +-- SystemExit [解释器请求退出] +-- KeyboardInterrupt [用户中断执行(通常是输入^C)] +- ...
- Spring boot Sample 001之spring-boot-begin-hello
一.环境 1.1.Idea 2020.1 1.2.JDK 1.8 二.目的 初识Spring Boot 三.步骤 3.1.点击File -> New Project -> Spring I ...
- Postman+Newman+Git+Jenkins接口自动化测试
一.Postman 1.创建Collection,在Collection中创建接口请求,如下图所示. 2.编写接口对应的断言Test和Pre-request Script,如下图所示. 3.配置接口 ...