首页 > 其他分享 >CodeForces 991C Candies(二分答案)

CodeForces 991C Candies(二分答案)

时间:2023-01-04 02:11:06浏览次数:59  
标签:二分 Candies LL mid CodeForces 991C 蛋糕 ans include

CodeForces 991C Candies(二分答案)

http://codeforces.com/problemset/problem/991/C

 

 

 

 

题意:

给出一个数n,表示有n块蛋糕,有两个人a,b。a每次可以取k块蛋糕(如果剩下的蛋糕不足k,则一次性取完),

b每次取当前蛋糕的十分之一(如果不是整数的话,向下取整,例如,有9块蛋糕的话,那么b取0块)

求一个最小的k,使得a所取的蛋糕至少大于n的一半。

 

思路:

二分枚举k然后判断是否满足条件即可。

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <string>
#include <math.h>
#include <algorithm>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <sstream>
const int INF=0x3f3f3f3f;
typedef long long LL;
#define Bug cout<<"---------------------"<<endl
const int mod=1e9+7;
const int maxn=2e5+10;
using namespace std;

int judge(LL n,LL k)
{
    LL t=n;
    LL sum1=0;
    LL sum2=0;
    while(t)
    {
        if(t>=k)
        {
            t-=k;
            sum1+=k;
        }
        else
        {
            sum1+=t;
            t=0;
        }
        sum2+=t/10;
        t-=t/10;
    }
    if(sum1>=sum2)
        return 1;
    else
        return 0;
}

int main()
{
    LL n;
    scanf("%lld",&n);
    LL l=1;
    LL r=n;
    LL mid;
    LL ans;
    while(l<=r)
    {
        mid=(l+r)>>1;
        if(judge(n,mid))
        {
            ans=mid;
            r=mid-1;
        }    
        else
            l=mid+1;
    }
    printf("%lld\n",ans);
    return 0;
}

 

标签:二分,Candies,LL,mid,CodeForces,991C,蛋糕,ans,include
From: https://www.cnblogs.com/jiamian/p/17023828.html

相关文章

  • 1.3 vp Educational Codeforces Round 139 (Rated for Div. 2)
    A-ExtremelyRound题意:给出n,找出从1到n中,只出现过一次非0数字的数思路:一开始以为是暴力,wa了一发老老实实找规律。就是找最高位,最高位是几,就有几个,再加上,每多一位要加9......
  • Codeforces Round #838 (Div. 2) A--C
    ​​https://codeforces.com/contest/1762​​A.DivideandConquer分析:数组所有元素和为偶数则为good。那么肯定要考虑奇偶性问题。1.如果和直接==偶数,那cout<<0;2.但是......
  • Codeforces Round #750 E
    E.PchelyonokandSegments题链我们可以发现答案最多是sqrt(2n)个也就是500个考虑dpdp[i][j]表示前i个分成了j段且第j段的max转移就是dp[i][j]=max{dp[i][j],s[i......
  • Educational Codeforces Round 139 vp记
    被Jerry__Jiang神爆杀的一天EducationalCodeforcesRound139vp记ProblemA简单题,随便枚举下即可Code#include<bits/stdc++.h>#defineintlonglong#define......
  • Educational Codeforces Round 118 E
    E.CrazyRobot题链很轻松能发现是bfs我们肯定是从L出发然后看他们该点可以去的地方是不是只有一条并且旁边挨着'+'但是打完一交发现wa332.#..L.发现我们会先......
  • Educational Codeforces Round 114 D
    D.TheStrongestBuildtilian发现n只有10啊m也是1e5我们考虑最好的状态肯定就是大家都选最大的时候但是如果被禁用掉了的话咋办呢我们肯定贪心的去减少一个最小的地......
  • Codeforces 1373 D. Maximum Sum on Even Positions 做题记录(单调队列)
    因为只能转一个子数组,很显然转长度为奇数的子数组,对最大化答案是没有意义的(偶数位的数字之和不会变化)。因此只考虑转偶长度的子数组。转动偶数长度的子数组,相当于......
  • Educational Codeforces Round 9
    EducationalCodeforcesRound9https://codeforces.com/contest/6323/6:ABCA.GrandmaLauraandApples模拟#include<bits/stdc++.h>#defineintlonglongusi......
  • Codeforces Good Bye 2022 CF 1770 F Koxia and Sequence 题解
    题目链接注意题目要求的是所有好序列的所有元素的XOR之和的XOR之和。我一开始以为是所有XOR之和的加法和导致不知道官方题解在讲什么。假设我们枚举一个位置\(1\lei\le......
  • Codeforces Round #781 (Div. 2)C
    CodeforcesRound#781(Div.2)CC我之前没有看懂题目,我现在把我认为正确的题意描述出来有一棵树,一开始都没有病毒什么的,但是我们需要把这一棵树里的所有节点变成有病......