链接:https://ac.nowcoder.com/acm/contest/892/C

题意:

鸡尾酒从杭州回来,囤积了许多衣服,洗好之后,他发现晾衣服是一件麻烦的事。

晾衣绳的长度只有L,而鸡尾酒有N件衣服,每件衣服挂在衣架上之后可以横着晾或者竖着晾,横着晾比较占晾衣绳的地方,但是受光面积大,干得也快,竖着晾反之。

鸡尾酒每天都要专心卖萌,没时间管这些衣服,所以在挂好每件衣服之后就不会再调整,他只希望能最快的看到所有衣服全部被晾干。

请你帮鸡尾酒算算,假如他以最优决策挂衣服,最早经过多长时间,所有衣服都能被晾干。

如果他永远无法一次性晾干所有衣服,输出-1。

思路:

贪心没贪出来,赛后看是二分。

直接二分答案。

统计长度要用到longlong

代码:

#include <bits/stdc++.h>
using namespace std; typedef long long LL;
const int MAXN = 2e5+10;
const int INF = 1e9; struct Node
{
int time, hlen, ht, slen, st;
int nht, nst;
void Init()
{
nht = (time+ht-1)/ht;
nst = (time+st-1)/st;
}
}node[MAXN];
int n, sum; bool Check(int time)
{
LL need = 0;
for (int i = 1;i <= n;i++)
{
if (node[i].nst <= time && node[i].nht <= time)
need += min(node[i].slen, node[i].hlen);
else if (node[i].nst <= time)
need += node[i].slen;
else if (node[i].nht <= time)
need += node[i].hlen;
else
return false;
}
if (need <= sum)
return true;
return false;
} int main()
{
scanf("%d%d", &n, &sum);
LL lesslen = 0;
for (int i = 1;i <= n;i++)
{
scanf("%d%d%d%d%d", &node[i].time, &node[i].hlen, &node[i].ht, &node[i].slen, &node[i].st);
lesslen += min(node[i].slen, node[i].hlen);
node[i].Init();
}
if (lesslen > sum)
{
cout << -1 << endl;
return 0;
}
int l = 1, r = 1e9;
int res;
while (l <= r)
{
int mid = (l+r)/2;
if (Check(mid))
{
res = mid;
r = mid-1;
}
else
{
l = mid+1;
}
}
cout << res << endl; return 0;
}

  

最新文章

  1. JS提交对象数组到服务端的方法总结(C#实例)
  2. 5分钟教你Windows 10中将“运行”固定到开始菜单
  3. c++ struct的两个注意点
  4. 在虚拟机上安装Ubutu完成后卡在VM Tool的安装上
  5. log4j+logback+slf4j+commons-logging的关系与调试
  6. PowerDesigner概念模型的Notation设置
  7. js文件缓存之版本管理
  8. c++之 常量
  9. 对[foreach]的浅究到发现[yield]
  10. Oracle wm_concat(列转行函数)实际使用
  11. 跑马灯、短信与反射EditText
  12. Spring 框架
  13. python写注册
  14. 一个Silverlight工程的各文件解析
  15. PHP-循环结构-数组
  16. 配置samba文件服务器
  17. Spring异步调用注解@Async的使用
  18. easyui datagrid取消点击行的选中事件
  19. Pandas.plot 做图 demo(scatter,bar,pie)
  20. Windows搭建Nexus3私服

热门文章

  1. Kafka kafka.common.OffsetOutOfRangeException 问题处理
  2. 虚拟参考站(VRS)
  3. 使用C语言解析URL
  4. Struts2 自定义输入校验 第五弹
  5. legend2---开发日志14(游戏对用户友好的设计思路)
  6. EOF的使用
  7. base64编码方式
  8. 【boost】使用serialization库序列化子类
  9. 数据可视化入门之show me the numbers
  10. python-while循环,for ,以及字符串格式化