当前位置: 首页 > news >正文

郓城网站制作公司注册流程步骤

郓城网站制作,公司注册流程步骤,搜索百度下载安装,上海建设银行网站招聘奶牛晒衣服 题目分析 这里出现了“弄干所有衣服的最小时间”,那么可以考虑用二分去做。 第一阶段二段性分析 假设当前需要耗费的时间为mid分钟,如果mid分钟内可以烘干这些衣服,那么我们可以确定右边界大于mid的区间一定也可以。但是此时我…

奶牛晒衣服

题目分析

这里出现了“弄干所有衣服的最小时间”,那么可以考虑用二分去做。

第一阶段二段性分析

假设当前需要耗费的时间为mid分钟,如果mid分钟内可以烘干这些衣服,那么我们可以确定右边界大于mid的区间一定也可以。但是此时我需要找的是最短时间,那么mid一定比大于mid的值更小,所以大于mid的值我就不用管了,也就是我可以确定我能够舍弃掉mid右边的值。我还想要确定比mid更小的值是否也满足条件,所以我要在mid的左边继续二分。

if(check(mid)) {r = mid;}//因为mid是符合条件的,所以我要留着它,而不是r=mid-1

假设当前需要耗费的时间为mid分钟,如果mid分钟内不可以烘干这些衣服,那么我们可以确定右边界小于mid的区间一定也不可以。所以小于mid的值我就不用管了,也就是我可以确定我能够舍弃掉mid左边的值。我还想要找比mid更大的值是否可以满足条件,所以我要在mid的右边继续二分。

else {l = mid + 1;}//因为mid是不符合条件的,所以我不要留着它,而不是l=mid

综上该题满足二段性,可以用二分,二分的板子就不说了,接下来说一下check函数如何写。

第二阶段写check函数

check(mid)要实现的作用是检查能否在mid分钟内烘干这些衣服。对于一个衣服的湿度w[i],如果w[i]/a大于mid(注意这里要采用函数实现上取整的话,应该使用double类型,所以在java里使用函数实现上取整时,用 a ∗ 1.0 a*1.0 a1.0将整数类型转化为浮点数类型),就需要使用烘干机,使用的时间是(a[i]-mid*a)/b,a是自然烘干每分钟可以减少的湿度,b是烘干机烘干每分钟额外减少的湿度。因为烘干衣服不足1分钟也要按一分钟算,所以这里要上取整。

java

static boolean check(int mid){long s = 0;for (int i = 0; i < n; i++) {if (Math.ceil(w[i]/(a*1.0))>mid){s += Math.ceil((w[i]-a*mid)/(b*1.0));}}return s <= mid;
}

c++

//这里的w[i]+a-1和w[i] - a * x + b - 1,即比正常多出来的+a-1和+b-1都是为了实现上取整。
bool check(int x){long sum = 0;for (int i = 0; i < n; i ++){if ((w[i]+a-1) / a <= x)continue;sum += (w[i] - a * x + b - 1) / b;}if (sum <= x)return true;else return false;
}

第三阶段二分范围确定

烘干的时间最长就是不使用烘干机,自然风干需要a[i]分钟,而a[i]最大是1e9,所以l=0,r=1e9。

注意一个特殊情况,如果k=1,那么其实烘干机有和没有都一样,自然风干所需要的时间就是所有衣服中最大的湿度。

题目代码

#include <iostream>
#include <stdbool.h>
#define N 500010int n, a, b;
int w[N];bool check(int x){long sum = 0;for (int i = 0; i < n; i ++){if ((w[i]+a-1) / a <= x)continue;sum += (w[i] - a * x + b - 1) / b;}if (sum <= x)return true;else return false;
}
int main(){scanf("%d%d%d",&n, &a, &b);for (int i = 0; i < n; i ++){scanf("%d", &w[i]);}int l = 0;int r = 5e5 + 5;while (l < r){int mid = (l + r) / 2;if (check(mid))r = mid;elsel = mid + 1;}printf("%d", l);return 0;
}
import java.util.Scanner;
public class Main{static int a;static  int b;static int n;static int[] w;public static void main(String[] args) {Scanner scan = new Scanner(System.in);n = scan.nextInt();w = new int[n];a = scan.nextInt();b = scan.nextInt();
//       int max = a+b;for (int i = 0; i <n; i++) {w[i]= scan.nextInt();
//            max= Math.max(max, w[i]);}int l = 0;int r = 500005;while (l<r){int mid=(l+r)/2;if(check(mid)){r=mid;}else {l=mid+1;}}System.out.println(l);}static boolean check(int mid){long s = 0;for (int i = 0; i < n; i++) {if (Math.ceil(w[i]/(a*1.0))>mid){s += Math.ceil((w[i]-a*mid)/(b*1.0));}}return s <= mid;}
}
http://www.yayakq.cn/news/103520/

相关文章:

  • 网站的备案在哪备案吗手机商城和实体的价格一样吗
  • 网站建设的设计方案和实施计划设计公司装修图
  • 新品发布会方案丹东seo推广优化报价
  • 网站logo源码乐陵seo优化信
  • 怎么推广网站孙俪做的网站广告
  • 设计个网站多少钱做网站网页尺寸是多少钱
  • 广州网站建设推广公司哪家好网站建设前景分析
  • wordpress 电商插件电脑网络优化软件
  • 万网网站如何建设微信网站开发流程图
  • 什么网站可以做兼职设计湖南智慧住建云官网
  • 最具有口碑的网站建设现在做跨境电商平台有哪些
  • 什么网站可做浏览器首页门户系统大全
  • 深圳网站建设哪个公司号整合营销策划方案
  • 二级域名著名网站唐山百度推广
  • 自己做商业网站做博客网站最好用什么系统
  • 最有效的网站推广公司找人一起做素材网站
  • 行情网免费网站大全织梦仿wordpress
  • 网站 ca证书怎么做企业电子网站的建设案例
  • 公司网站开发与维护网站备份流程
  • 云南省建设执业资格注册管理中心网站怎么让公司网站显示官网
  • 广东专注网站建设企业网站首页几天做完
  • 如何一个空间做多个网站网站做漏洞扫描费用
  • 网站结构 网站内容建设谷歌浏览器app
  • wordpress站群管理网站 域名 授权服务器 分布式
  • 做设计的几种网站python不用框架做网站
  • 济宁网站建设有限公司政协信息化网站建设的请示
  • 怎么知道网站的空间是谁做的电子商务网站建设特色
  • 网站定制哪家安全山东东营市广饶县
  • 大连网站快速排名提升山东省建设部官方网站
  • 国外服务器做网站不能访问网页设计广州网站