首页 > 其他分享 >C2. Bessie's Birthday Cake (Hard Version)

C2. Bessie's Birthday Cake (Hard Version)

时间:2024-07-19 13:53:31浏览次数:15  
标签:cnt Version int Hard long Birthday ans

原题链接

题解

假如 \(y=1\) 该如何添加?

然后逐步推导

code

#include<bits/stdc++.h>
#define ll long long
using namespace std;

int a[200005];

bool cmp(int x,int y)
{
    if(x%2!=y%2) return x%2<y%2;
    else return x<y;
}

void solve()
{
    int n,x,y;
    cin>>n>>x>>y;

    for(int i=1;i<=x;i++) cin>>a[i];

    sort(a+1,a+1+x);
    vector<int> d;
    for(int i=1;i<=x;i++) d.push_back((a[i]+n-a[(i-2+x)%x+1])%n);

    sort(d.begin(),d.end(),cmp);


    int ans=max(0,x-2);

    for(auto it:d)
    {
        //printf("%d  ans:%d\n",it,ans);
        if(it==1) continue;
        if(it==2)
        {
            ans++;
            continue;
        }
        int cnt=(it-1)/2,judge=it%2;

        if(y>=cnt)
        {
            ans+=cnt;
            ans+=cnt;
            y-=cnt;
            if(!judge) ans++;
        }
        else
        {
            ans+=y;
            ans+=y;
            y=0;
        }
    }

    cout<<ans<<'\n';
}
int main()
{
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int t=1;
    cin>>t;
    while(t--) solve();
    return 0;
}


标签:cnt,Version,int,Hard,long,Birthday,ans
From: https://www.cnblogs.com/pure4knowledge/p/18311334

相关文章

  • 题解:CF1381A1 Prefix Flip (Easy Version)
    思路这道题直接用下一题的代码就行了\(C1\):注意到限制\(3n\)很大,于是看每一位是不是一样的,再操作,如样例一:转化第一位:\(01\to11\)。转化第二位:\(11\to00\to10\)。每次把当前位子提到第一位,然后翻转第一位,最后翻转回去,最多\(3n\)次,不用暴力操作直接计答案时间复杂度......
  • npm/yarn/pnpm install失败:ERR_PNPM_NO_VERSIONS No versions available for uWebSock
    ERR_PNPM_NO_VERSIONS NoversionsavailableforuWebSockets.js.Thepackagemaybeunpublished.我在新项目中想要切换包管理器从yarn到pnpm的时候,删除node_modules和yarn.lock之后,pnpminstall竟然提示这个包可能没发布。我觉得这个不可能,都需要使用了,怎么可能没发......
  • Go 语言 UUID 库 google/uuid 源码解析:UUID version7 的实现
    google/uuid库地址建议阅读内容在阅读此篇文章之前,建议先了解UUIDv1的构成、UUIDv4的API以及掌握位运算。了解UUIDv1的构成可以参考Go语言UUID库google/uuid源码解析:UUIDversion1的实现或RFC9562。了解UUIDv4的API可以看Go语言UUID库google......
  • 宝塔面板申请 Let's Encrypt证书报错:Invalid version. The only valid version for X5
    原因是由于服务器端使用了不兼容的OpenSSL版本导致的,服务器端的X509Req版本只支持0,而宝塔这边默认的版本为2。第一种1、修改/www/server/panel/class下面的acme_v2.py文件搜索找到X509Req.set_version(2)代码段,将其改为X509Req.set_version(0)2、重启宝塔面板服......
  • 完美解决ImportError: cannot import name ‘PILLOW_VERSION‘的正确解决方法,亲测有效
    完美解决ImportError:cannotimportname'PILLOW_VERSION’的正确解决方法,亲测有效!!!亲测有效完美解决ImportError:cannotimportname'PILLOW_VERSION'的正确解决方法,亲测有效!!!报错问题解决思路解决方法1.检查Pillow版本2.使用正确的版本检查方法3.更新代码示例......
  • Python安装出现严重错误的解决方法_0x80070643-( A newer version of the Python laun
    每次在装软件配置环境的时候,总会遇到别人碰不到的各种问题,人都麻了。最后我还是自己尝试这解决了,只是建议,虽然说不知道是否以后还会问题,但是可以成功安装,配置环境并运行。(本人是win11)首先解释一下pythonlauncher是什么资料解释:PythonLauncher是Python官方提供的一个工具,......
  • 安装软件Docker Desktop Installer.exe后导致的AMD显卡掉驱动,提示:The version of AMD
    打开AMDRadeonSoftware时总是弹出“TheversionofAMDRadeonSoftwareyouhavelaunchedisnotcompatiblewithyourcurrentlyinstalledAMDgraphicsdriver."提示框,如图所示:TheversionofAMDRadeonSoftwareyouhavelaunchedisnotcompatiblewithyourcurr......
  • D2. Sum over all Substrings (Hard Version)
    原题链接题解code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;lldp[1000005]={0};voidsolve(){lln,ans=0;cin>>n;strings;cin>>s;s=""+s;//使字符串1索引化for(lli=1......
  • D1. XOR Break — Solo Version
    原题链接题解,构造太难想了当\(x\)在二进制表示下,只有一个1时,肯定不行如果有两个1呢?在这种情况下,如果\(m\)最大的一位,位于\(x\)最大的一和第二大的一之间,一定失败为什么?分类讨论即可反之是否成立?设\(x\)最大的一位\(a\),第二大的位\(b\)\(m\)最大的一位\(c\)......
  • Go 语言 UUID 库 google/uuid 源码解析:UUID version4 的实现
    google/uuid库地址本文将解析googl/uuid库中UUID变体10版本4的实现。版本4的UUID采取完全随机的方式实现,简单来说就是将UUID中的122位全部随机填充(剩余的6位作标记位)。版本4的UUID存在一定的重复风险,但就如源码注释中所说:“一年内创建几十万亿个UUI......