P1843 奶牛晒衣服(二分)

思路:就是一个模板,只是找最小化而已。在判断函数里面:当湿度<=x*A不判断, 反之sum+=(a[i]-x*A)/B+(a[i]-x*A)%B?1:0;

#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
const int maxn = 5e5 + 10;
int a[maxn], n, A, B, maxx, ans, mid;

bool check(int x){
    int sum = 0;
    for (int i = 1; i <= n;++i)
    if (a[i] > x*A){
        sum += (a[i] - x*A) / B;
        if ((a[i] - x*A) % B)sum++;
    //    cout << i << " a=" << a[i] << " a-x*A=" << a[i] - x*A << endl;
    }
//    cout << "sum=" << sum << endl;
    return sum <= x;
}

void half(){
    int l = 1, r = maxx;
    while (l <= r){
        mid = (l + r) >> 1;
    //    cout << "l=" << l << " mid=" << mid << " r=" << r << endl;
        if (check(mid)){ ans = mid; r = mid - 1; }
        else l = mid + 1;
    }
}

int main(){
    cin >> n >> A >> B;
    for (int i = 1; i <= n; ++i)
        cin >> a[i], maxx = max(maxx, a[i]);
    half();    //二分
    cout << ans << endl;
}

原文地址:https://www.cnblogs.com/ALINGMAOMAO/p/10459021.html

时间: 2024-10-10 14:11:54

P1843 奶牛晒衣服(二分)的相关文章

洛谷——P1843 奶牛晒衣服

https://www.luogu.org/problem/show?pid=1843#sub 题目背景 熊大妈决定给每个牛宝宝都穿上可爱的婴儿装 . 于是 , 为牛宝宝洗晒衣 服就成了很不爽的事情. 题目描述 熊大妈请你帮助完成这个重任 . 洗完衣服后 , 你就要弄干衣服 . 衣服在 自然条件下用 1 的时间可以晒干 A 点湿度 . 抠门的熊大妈买了 1 台烘衣机 . 使用烘衣机可以让你用 1 的时间使 1 件衣服除了自然晒干 A 点湿度外,还 可以烘干 B 点湿度,但在 1 的时间内只能对

luogu P1843 奶牛晒衣服

模拟T1,贪心+排序或者二分都行 贪心策略很好想,显然每次晒耗时最久的衣服最优,问题是要在每次晒完后都再次找到耗时最久的衣服,不能每次都sort,所以单调队列或者大根堆 二分也不难,直接二分时间,筛一遍衣服统计需要烘干的时间然后判断是否满足就行 模拟的时候敲了贪心+排序,所以这里放二分的代码(滑稽),个人感觉贪心更好写 #include<cstdio> #include<algorithm> #include<iostream> using namespace std;

P1843 奶牛晒衣服

题目背景 熊大妈决定给每个牛宝宝都穿上可爱的婴儿装 . 于是 , 为牛宝宝洗晒衣 服就成了很不爽的事情. 题目描述 熊大妈请你帮助完成这个重任 . 洗完衣服后 , 你就要弄干衣服 . 衣服在 自然条件下用 1 的时间可以晒干 A 点湿度 . 抠门的熊大妈买了 1 台烘衣机 . 使用烘衣机可以让你用 1 的时间使 1 件衣服除了自然晒干 A 点湿度外,还 可以烘干 B 点湿度,但在 1 的时间内只能对 1 件衣服使用. N 件衣服因为种种原因而不一样湿 , 现在告诉你每件衣服的湿度 , 要你 求出

NOIP2012模拟试题【奶牛晒衣服】

1.奶牛晒衣服(dry) [问题描述] 在熊大妈英明的带领下,时针和它的同伴生下了许多牛宝宝.熊大妈决定给每个宝宝都穿上可爱的婴儿装.于是,为牛宝宝洗晒衣服就成了很不爽的事情. 圣人王担负起了这个重任.洗完衣服后,你就要弄干衣服.衣服在自然条件下用1的时间可以晒干A点湿度.抠门的熊大妈买了1台烘衣机.使用烘衣机可以让你用1的时间使1件衣服除开自然晒干的A点湿度外,还可烘干B点湿度,但在1的时间内只能对1件衣服使用. N件的衣服因为种种原因而不一样湿,现在告诉你每件衣服的湿度,要你求出弄干所有衣服

NOIP模拟赛-奶牛晒衣服(dry)

一.奶牛晒衣服(dry) [问题描述] 在熊大妈英明的带领下,时针和它的同伴生下了许多牛宝宝.熊大妈决定给每个宝宝都穿上可爱的婴儿装.于是,为牛宝宝洗晒衣服就成了很不爽的事情. 圣人王担负起了这个重任.洗完衣服后,你就要弄干衣服.衣服在自然条件下用1的时间可以晒干A点湿度.抠门的熊大妈买了1台烘干机.使用烘干机可以让你用1的时间使1件衣服除开自然晒干的A点湿度外,还可烘干B点湿度,但在1的时间内只能对1件衣服使用. N件衣服因为种种原因而不一样湿,现在告诉你每件衣服的湿度,要你求出弄干所有衣服的

奶牛晒衣服(题解)

奶牛晒衣服[问题描述]在熊大妈英明的带领下,时针和他的同伴生下了许多牛宝宝.熊大妈决定给每个宝宝都穿上可爱的婴儿装.于是,为牛宝宝洗晒衣服就成了很不爽的事情.圣人王担负起了这个重任.洗完衣服后,你就要弄干衣服.衣服在自然条件下用1 的时间可以晒干A 点湿度.抠门的熊大妈买了1 台烘衣机.使用烘衣机可以让你用1 的时间使1件衣服除开自然晒干的A 点湿度外,还可烘干B 点湿度,但在1 的时间内只能对1 件衣服使用.N 件的衣服因为种种原因而不一样湿,现在告诉你每件衣服的湿度,要你求出弄干所有衣服的最

奶牛晒衣服

"愉快"的端午欢乐赛就这样落下了帷幕,作为蒟蒻的我显然是来给各位dalao垫名次的.. [问题描述] 在熊大妈英明的带领下,时针和它的同伴生下了许多牛宝宝.熊大妈决定给每个宝宝都穿上可爱的婴儿装.于是,为牛宝宝洗晒衣服就成了很不爽的事情. 圣人王担负起了这个重任.洗完衣服后,你就要弄干衣服.衣服在自然条件下用1的时间可以晒干A点湿度.抠门的熊大妈买了1台烘干机.使用烘干机可以让你用1的时间使1件衣服除开自然晒干的A点湿度外,还可烘干B点湿度,但在1的时间内只能对1件衣服使用. N件衣服

【Luogu1843】奶牛晒衣服

点此进入原题 算法:二分答案 题解: 本题算法就是二分所需的时间啦 二分答案的难点大部分都在check函数上吧 然而我居然把二分模版打错了好囧啊 总的来说这题还是不难的啊~ 代码: #include<cstdio> const int N=500005; int n,a,b,t[N],l=0,r=N; bool check(int x) { int ret=x; //x-ret表示需要的烘干机烘干的天数. for(int i=1;i<=n;i++) { int tmp=t[i]-a*x;

POJ2391.Ombrophobic Bovines(不喜欢雨的奶牛)——floyd+二分+拆点+最大流

http://poj.org/problem?id=2391 写的挫的最大流会超时~~~ 题目描述: Jack 农场主的奶牛实在是太讨厌被淋湿了.决定在农场设置降雨警报,这样在快要下 雨的时候可以让奶牛们都知道.他们设置设计了一个下雨撤退计划,这样在下雨之前每头奶牛都 能躲到避雨点.然而,天气预报并不总是准确的.为了使得错误的天气预报影响尽可能小,他们 希望尽可能晚地拉响警报,只要保证留有足够的时间让所有的奶牛都能回到避雨点就可以了. 农场有F 块草地,1≤F≤200,奶牛们在草地上吃草.这些草