工资(money)
2024-08-24 02:11:36
(money/money.in/money.out)
时限1000ms 内存256MB
聪哥在暑假参加了打零工的活动,这个活动分为n个工作日,每个工作日的工资为Vi。有m个结算工钱的时间,聪哥可以自由安排这些时间,也就是说什么时候拿钱,老板说的不算,聪哥才有发言权!(因为聪哥是土豪,他是老板的老板)
聪哥不喜欢身上一次性有太多的钱,于是他想安排一下拿钱的时间,使他一次性拿的钱中最大的最小。(最后一天一定要领钱)
输入
第一行 2个数 n,m
接下来n行,每行一个数,代表Vi.
输出
最小的最大钱数。
样例输入
7 5
100
400
300
100
500
101
400
样例输出
500
样例说明
100 400//300 100//500//101//400//
“//”表示老大要去拿钱。
数据范围
20% 1<=n<=20
另 20% 1<=n<=50,Vi的和不超过1000
100% 1<=n<=100,000,m<=n,Vi<=10,000
做法:二分答案。
大概用了20+分钟。
代码:
#include<cstdio>
int n,m,l=,r;
int a,b,c;
int s[];
int main(){
freopen("money.in","r",stdin);
freopen("money.out","w",stdout);
scanf("%d%d",&n,&m);m--;
for(int i=;i<=n;i++){
scanf("%d",&s[i]);
r+=s[i];
}
while(){
if(l==r) break;
int mid=(l+r)>>;a=b=;
for(int i=;i<=n;i++){
if(a+s[i]>mid){++b;a=s[i];}
else a+=s[i];
}
if(b>m) l=mid+;
else r=mid;
}
printf("%d\n",l);
return ;
}
然而只得了90分,为什么呢?
他的数据不清真。说好的Vi<=10000呐!
我的r都溢出了好几遍。。。
数据的锅,我不背。
最新文章
- Sonar安装配置
- FastCgi 与 PHP-FPM
- jQuery基础--样式篇(3)
- 使用BPEL创建Web服务组合
- IOS-Swift、Objective-C、C++混合编程
- mybatis 使用动态SQL
- SQLite数据库增删改查
- dhtmlx之dhtmlXGrid显示数据 --大数据
- JQuery和JSON方式参数传递并处理JAVAWEB中文乱码问题
- 蓝桥杯-四平方和-java
- 王家林人工智能AI课程大纲和电子书 - 老师微信13928463918
- C# 对MongoDB 进行增删改查的简单操作
- .net core2 单元测试
- Recurrent Neural Network[survey]
- python--__init__()方法和__new__()方法
- Html链接标签:
- mysql awr v1.0.3修正说明以及发布
- AOP在大规模软件开发项目中的应用(图)
- C# 把字符串中间的多个连续的空格转化成一个空格
- winform 按键控制
热门文章
- Nginx(二) 反向代理&;负载均衡
- 微信扫码下载APK遮罩提示示例
- Linux安装PHP环境
- [POI2013]POL-Polarization
- .NET 错误 47 存储区提供程序工厂类型“Oracle.DataAccess.Client.OracleClientFactory”未实现 IServiceProvider 接口。请使用实现该接口的存储区提供程序。
- 42使用NanoPiM1Plus在Android4.4.2下的录音测试
- Android RxJava 2.0中backpressure(背压)概念的理解
- iOS从手机相册选择一张照片并显示 Objective-C
- 机器学习_K近邻Python代码详解
- 梦想CAD控件 2019.01.20更新