2021浙江工业大学程序设计迎新赛决赛(重现赛)----MS 与美食街 2

本文主要是介绍2021浙江工业大学程序设计迎新赛决赛(重现赛)----MS 与美食街 2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

飞机票

题意:

在这里插入图片描述

思路:

可以把所有的次幂看成进制数,然后可以用二进制模拟一下,比如
2^3= 2^2+ 2^2 , 2^4 = 2^3 + 2^3 以此推下去,所以我要求一个最大值的最小值能够买下所有东西,就是他们所有的和都要小于这个数,那么我只需要找到一个最高次幂即可,当然这题没有那么简单,他要找的数是比所有数的和还要大的
那么如何求和呢?看到数的大小很明显无法求和,只能用进制的关系也就是上面推的公式,只要某个幂次出现的次数大于a,即可转换成当前幂次+1,就完成了进位也完成了求和
最后注意还有两个坑点,如果最高次幂只有他本身,那么就直接输出最高次幂即可,但如果最高次幂出现的次数大于一次或者有比他小的幂次出现过,那么就得输出最高次幂+1了

#include<algorithm>
#include<iostream>
#include<vector>
#include<map>
using namespace std;const int maxn=55;
int b[maxn];
int main()
{int n,i,j,a,k;cin>>n>>a;map<int,int >mo;for(i=0; i<n; i++){cin>>b[i];mo[b[i]]++;}while(1){int f1=0;for(auto it=mo.begin(); it!=mo.end(); ++it){if(it->second>=a){int x=it->second/a;it->second-=x*a;int y=it->first+1;mo[y]+=x;f1=1;}}if(f1==0) break;}int max1=0,flag=0;for(auto it=mo.begin(); it!=mo.end(); ++it){if(it->second!=0)max1=max(it->first,max1);//cout<<it->first<<" "<<it->second<<endl;}for(auto it=mo.begin(); it!=mo.end(); ++it){if(it->second!=0&&it->first!=max1)flag=1;if(it->second>1&&it->first==max1)flag=1;}cout<<max1+flag<<endl;return 0;
}
/*3 10
1 1 1
1*/

这篇关于2021浙江工业大学程序设计迎新赛决赛(重现赛)----MS 与美食街 2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/158712

相关文章

C语言程序设计(数据类型、运算符与表达式)

一、C的数据类型 C语言提供的数据类型: 二、常量和变量 2.1常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。 常量区分为不同的类型: 程序中用#define(预处理器指令)命令行定义变量将代表常量,用一个标识符代表一个常量,称为符合常量。 2.2变量 变量代表内存中具有特定属性的一个存储单元,用来存放数据,在程序运行期间,这些值是可以 改变的。 变

C语言程序设计(选择结构程序设计)

一、关系运算符和关系表达式 1.1关系运算符及其优先次序 ①<(小于) ②<=(小于或等于) ③>(大于) ④>=(大于或等于 ) ⑤==(等于) ⑥!=(不等于) 说明: 前4个优先级相同,后2个优先级相同,关系运算符的优先级低于算术运算符,关系运算符的优先级高于赋值运算符 1.2关系表达式 用关系运算符将两个表达式(可以是算术表达式或关系表达式,逻辑表达式,赋值表达式,字符

GPU 计算 CMPS224 2021 学习笔记 02

并行类型 (1)任务并行 (2)数据并行 CPU & GPU CPU和GPU拥有相互独立的内存空间,需要在两者之间相互传输数据。 (1)分配GPU内存 (2)将CPU上的数据复制到GPU上 (3)在GPU上对数据进行计算操作 (4)将计算结果从GPU复制到CPU上 (5)释放GPU内存 CUDA内存管理API (1)分配内存 cudaErro

2021-8-14 react笔记-2 创建组件 基本用法

1、目录解析 public中的index.html为入口文件 src目录中文件很乱,先整理文件夹。 新建components 放组件 新建assets放资源   ->/images      ->/css 把乱的文件放进去  修改App.js 根组件和index.js入口文件中的引入路径 2、新建组件 在components文件夹中新建[Name].js文件 //组件名首字母大写

2021-08-14 react笔记-1 安装、环境搭建、创建项目

1、环境 1、安装nodejs 2.安装react脚手架工具 //  cnpm install -g create-react-app 全局安装 2、创建项目 create-react-app [项目名称] 3、运行项目 npm strat  //cd到项目文件夹    进入这个页面  代表运行成功  4、打包 npm run build

智能工厂程序设计 之1 智能工厂都本俱的方面(Facet,Aspect和Respect)即智能依赖的基底Substrate 之1

Q1、昨天分别给出了三个智能工厂的 “面face”(里面inter-face,外面outer-face和表面surface) 以及每个“面face” 各自使用的“方”(StringProcessor,CaseFilter和ModeAdapter)  。今天我们将继续说说三个智能工厂的“方面” 。在展开之前先看一下三个单词:面向facing,取向oriented,朝向toword。理解这三个词 和

[SWPUCTF 2021 新生赛]web方向(一到六题) 解题思路,实操解析,解题软件使用,解题方法教程

题目来源 NSSCTF | 在线CTF平台因为热爱,所以长远!NSSCTF平台秉承着开放、自由、共享的精神,欢迎每一个CTFer使用。https://www.nssctf.cn/problem   [SWPUCTF 2021 新生赛]gift_F12 这个题目简单打开后是一个网页  我们一般按F12或者是右键查看源代码。接着我们点击ctrl+f后快速查找,根据题目给的格式我们搜索c

C语言程序设计 笔记代码梳理 重制版

前言 本篇以笔记为主的C语言详解,全篇一共十章内容,会持续更新基础内容,争取做到更详细。多一句没有,少一句不行!  形而上学者谓之道,形而下学者谓之器 形而上学者谓之道,形而下学者谓之器 第1章 C语言的流程 1.C程序经历的六个阶段 编辑(Edit)预处理(Preprocess)编译(Compile)汇编(Assemble)链接(Link)执行(Execute)  2.

【NodeJS】Error: Cannot find module 'ms'

转载自:http://blog.csdn.net/echo_ae/article/details/75097004 问题: Error: Cannot find module 'ms'at Function.Module._resolveFilename (module.js:469:15)at Function.Module._load (module.js:417:25)at Module

ACM东北地区程序设计大赛

不得不说随着参赛级别的提高,题目真的是越来越难啊,不过队长真是给力啊,在我们三个共同努力之下拿下了地区赛三等奖,哈哈我们可是大一唯一一只获奖队,终于在这次比赛打败了田大神。。。大神是失手了,俺和他差距还是挺大的。。。队友陈彤马上要去服兵役了,他说这是我们送给他最好的离别礼物,希望那家伙在部队好好干,以后谁干揍我!!!东北地区赛结束后,今年已经估计没机会参加亚洲区比赛了,赶紧补高数和线数啊!!别挂了