Codeforces Round #499 (Div. 2)(1011)
Natasha is planning an expedition to Mars for nn people. One of the important tasks is to provide food for each participant.
The warehouse has mm daily food packages. Each package has some food type aiai .
Each participant must eat exactly one food package each day. Due to extreme loads, each participant must eat the same food type throughout the expedition. Different participants may eat different (or the same) types of food.
Formally, for each participant jj Natasha should select his food type bjbj and each day jj -th participant will eat one food package of type bjbj . The values bjbj for different participants may be different.
What is the maximum possible number of days the expedition can last, following the requirements above?
The first line contains two integers nn and mm (1≤n≤1001≤n≤100 , 1≤m≤1001≤m≤100 ) — the number of the expedition participants and the number of the daily food packages available.
The second line contains sequence of integers a1,a2,…,ama1,a2,…,am (1≤ai≤1001≤ai≤100 ), where aiai is the type of ii -th food package.
Print the single integer — the number of days the expedition can last. If it is not possible to plan the expedition for even one day, print 0.
4 10
1 5 2 1 1 1 2 5 7 2
2
100 1
1
0
2 5
5 4 3 2 1
1
3 9
42 42 42 42 42 42 42 42 42
3
In the first example, Natasha can assign type 11 food to the first participant, the same type 11 to the second, type 55 to the third and type 22 to the fourth. In this case, the expedition can last for 22 days, since each participant can get two food packages of his food type (there will be used 44 packages of type 11 , two packages of type 22 and two packages of type 55 ).
In the second example, there are 100100 participants and only 11 food package. In this case, the expedition can't last even 11 day.
题意:有n个人去火星,有m斤食物,每个人只能吃一种食物,而且每天必须吃一斤食物,问n个人最多能活几天。
题解:由于数据量比较小,完全可以用暴力解决,一年一年往上加,不满足条件则找到最优解。
#include<stdio.h>
#include<string.h>
#include<stack>
#include<string.h>
#include<queue>
#include<algorithm>
#include<iostream>
#include<map>
#include<vector>
#define PI acos(-1.0)
using namespace std;
typedef long long ll;
const int MAXN=3e5+;
map<int,int>::iterator it;
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
map<int,int >mp;
int i,siz,n,rt,m,g=,flag=,ck=;
int ans[MAXN]= {};
int t[MAXN]= {};
int s[MAXN]= {};
scanf("%d%d",&n,&m);
for(i=; i<m; i++)
{
scanf("%d",&rt);
mp[rt]++;
}
int r=n-mp.size();
for(it=mp.begin(); it!=mp.end(); it++)
{
s[g++]=it->second;
}
sort(s,s+g,cmp);
for(i=; i<g; i++)
{
if(i==n)
break;
ans[ck++]=s[i];
}
for(; ck<n; ck++)
ans[ck]=; for(i=; i<n; i++)
t[i]=ans[i];
for(i=; i<=; i++)
{
for(int j=; j<n; j++)
{
if(ans[j]-i<)
{
int k,cur=ans[j]-i;
for(k=; k<n; k++)
{
int kk=ans[k]-i;
if(kk>=i)
{
ans[k]-=i;
ans[j]=;
break;
}
}
if(k==n)
{
flag=;
break;
}
} }
if(flag==)
break;
for(int i=; i<n; i++)
ans[i]=t[i]; } printf("%d\n",i-); return ;
}
当然这道题也可以二分查找
#include<stdio.h>
#include<string.h>
#include<stack>
#include<string.h>
#include<queue>
#include<algorithm>
#include<iostream>
#include<map>
#include<vector>
#define PI acos(-1.0)
using namespace std;
typedef long long ll;
const int MAXN=3e5+;
int m,n,l,flag;
int str[MAXN];
map<int,int>::iterator it;
int solve(int mid)
{
int ans=;
for(int i=;i<l;i++)
{
ans+=str[i]/mid;
}
if(ans>=m)
flag=;
if(ans>=m)
return ;
return ;
}
int main()
{
cin>>m>>n;
int k;
map<int,int>mp;
for(int i=;i<n;i++)
{
cin>>k;
mp[k]++;
}
for(it=mp.begin();it!=mp.end();it++)
{
str[l++]=it->second;
}
int left=,right=,mid;
while(left<=right)
{
mid=(left+right)/;
if(solve(mid))
{
left=mid+;
}
else
{
right=mid-;
}
}
if(!flag)
right=;
cout<<right<<endl;
return ;
}
Codeforces Round #499 (Div. 2)(1011)的更多相关文章
- Codeforces Round #624 (Div. 3)(题解)
Codeforces Round #624 (Div.3) 题目地址:https://codeforces.ml/contest/1311 B题:WeirdSort 题意:给出含有n个元素的数组a,和 ...
- Codeforces Round #219 (Div. 1)(完全)
戳我看题目 A:给你n个数,要求尽可能多的找出匹配,如果两个数匹配,则ai*2 <= aj 排序,从中间切断,分成相等的两半后,对于较大的那一半,从大到小遍历,对于每个数在左边那组找到最大的满足 ...
- Codeforces Round #249 (Div. 2) (模拟)
C. Cardiogram time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- Codeforces Round #544 (Div. 3) (补)
D:没有注意到a==0&&b==0的情况,把自己卡崩了.对于数学公式推导一定要注意关于0的特殊情况,不可以少 #include <iostream> #include &l ...
- Codeforces Round #613 (Div. 2) (A-E)
A略 直接求和最大的子序列即可(注意不能全部选中整个子序列) or #include<bits/stdc++.h> using namespace std; void solve(){ i ...
- C. Queen Codeforces Round #549 (Div. 2) (搜索)
---恢复内容开始--- You are given a rooted tree with vertices numerated from 11 to nn . A tree is a connect ...
- Codeforces Round #612 (Div. 2) (A-D)
直 接看所有A后面连续P的个数最大值 #include<cstring> #include<cstdio> #include<set> #include<io ...
- Codeforces Round #499 (Div. 1)部分题解(B,C,D)
Codeforces Round #499 (Div. 1) 这场本来想和同学一起打\(\rm virtual\ contest\)的,结果有事耽搁了,之后又陆陆续续写了些,就综合起来发一篇题解. B ...
- Codeforces Round #524 (Div. 2)(前三题题解)
这场比赛手速场+数学场,像我这样读题都读不大懂的蒟蒻表示呵呵呵. 第四题搞了半天,大概想出来了,但来不及(中途家里网炸了)查错,于是我交了两次丢了100分.幸亏这次没有掉rating. 比赛传送门:h ...
随机推荐
- About GCC
GCC used to stand for the GNU C Compiler, but since the compiler supports several other languages as ...
- tf随笔-6
import tensorflow as tfx=tf.constant([-0.2,0.5,43.98,-23.1,26.58])y=tf.clip_by_value(x,1e-10,1.0)ses ...
- ng 变量和常量服务
<!DOCTYPE html> <html ng-app="myApp"> <head lang="en"> <met ...
- Java8新特性Optional、接口中的默认方法与静态方法
Optional Optional 类(java.util.Optional) 是一个容器类,代表一个值存在或不存在,原来用 null 表示一个值不存在,现在 Optional 可以更好的表达这个概念 ...
- 运用 jenkins 让你的项目优雅的持续化集成
0.到系统管理->系统设置 1.安装插件 Publish over SSH 2.配置 Publish over SSH 参数 1.pass 是私钥密码,此私钥文件放在安装 jenkins 的主机 ...
- 深入理解java虚拟机-第八章
第8章 虚拟机字节码执行引擎 8.2 运行时栈帧结构 栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构. 每一个栈帧包括了局部变量表.操作数栈.动态连接.方法返回地址和一 ...
- self = [super init]
Objective-C的推荐init方法写法如下: - (id) init { if(self = [super init]) { //为子类增加属性进行初始化 } return self; } 返回 ...
- IDEA Intellij中vim插件使用小技巧
在 IDEA Intellij小技巧和插件 一文中简单介绍了一下IdeaVim插件.在这里详细总结一下这个插件在日常编程中的一些常用小技巧.供有兴趣使用这个插件,但对Vim还不十分熟悉的朋友参考.当然 ...
- Collections排序
0.前言 ThreeSet的底层实现是红黑树,它在创建set的过程中实现排序.Collections.sort是在对整个集合进行排序,按道理来说使用TreeSet插入集合元素直至建立整个TreeSet ...
- RK3288 模块单独编译
模块以Email为例: 1.执行build目录下的脚本文件envsetup.sh $ source ./build/envsetup.sh 2.选择版本(user为用户版本 eng为工程版本) $ ...