首页 > 其他分享 >【牛客训练记录】牛客周赛 Round 76

【牛客训练记录】牛客周赛 Round 76

时间:2025-01-12 21:15:21浏览次数:1  
标签:周赛 76 int long 牛客 solve ans -- define

训练情况

赛后反思

D题被卡常了,我知道是优先队列的问题,但是一直有一个点过不去,E题疑似二分,但是我不会处理快速幂溢出的问题

A题

工作日每天 \(3\) 题,求 \(x\) 天一共有几周,一周有五个工作日,剩下不足 \(7\) 天的分类讨论。

#include <bits/stdc++.h>
// #define int long long
#define endl '\n'

using namespace std;

void solve(){
    int x; cin>>x;
    int ans = x/7*5;
    x -= x/7*7;
    if(x > 5) ans += 5;
    else ans += x;
    cout<<ans*3<<endl;
}

signed main(){
    // int T; cin>>T; while(T--)
    solve();
    return 0;
}

B题

阅读理解题,子串的长度可以为 \(1\),想要子串出现的次数尽可能多,子串的长度就需要尽可能小,所以这题在求哪一个字母出现的次数最多。

#include <bits/stdc++.h>
// #define int long long
#define endl '\n'

using namespace std;

void solve(){
    int n; cin>>n;
    string s; cin>>s;
    map<char,int> cnt;
    for(int i = 0;i<n;i++){
        cnt[s[i]]++;
    }
    char ans = 0;
    int now = 0;
    for(int i = 'a';i<='z';i++){
        if(cnt[i] > now){
            ans = i;
            now = cnt[i];
        }
    }
    cout<<ans<<endl;
}

signed main(){
    // int T; cin>>T; while(T--)
    solve();
    return 0;
}

C题

gcd是最大公因数,我们想要答案和最小,我们要尽可能选择互质的两个数,因为互质两个数的 gcd = 1,我们可以发现 gcd 的次数越多,答案越小,所以我们把数列中所有的元素求一次最大公因数,所有的数都可以变成这个 gcd,然后答案就是 \(gcd \times n\)。

#include <bits/stdc++.h>
#define int long long
#define endl '\n'

using namespace std;

void solve(){
    int n; cin>>n;
    vector<int> a(n + 1);
    for(int i = 1;i<=n;i++) cin>>a[i];
    int ans = a[1];
    for(int i = 2;i<=n;i++){
        ans = __gcd(ans,a[i]);
    }
    cout<<ans*n<<endl;
}

signed main(){
    // int T; cin>>T; while(T--)
    solve();
    return 0;
}

D题

被玄学卡了一个测试点,但是这题应该是优先队列跑不了了,我们容易观察到贪心,我们有操作次数的时候,我们要优先选择对答案贡献大的,所以我们需要对数组进行从大到小排序,取最大的数进行操作,我们可以把对答案的贡献扔到优先队列里面,这样每次取出来的贡献就是最大的,每次取出优先队列的队头,如果能操作的话,操作之后再扔回去,奇数减一再除以二,偶数直接除以二,如果除以二的操作次数用完了,但是减一还有操作次数,就把所有的奇数取出来减一,直到不能操作为止。

#include <bits/stdc++.h>
#define int long long
#define endl '\n'

using namespace std;

const int N = 2e5 + 3;

int n,m,k;
int a[N];
priority_queue<int> q;

void solve(){
    cin>>n>>m>>k;
    for(int i = 1;i<=n;i++){
        int x; cin>>x;
        q.push(x);
    }
    while(q.size()&&m&&k){
        int x = q.top();
        q.pop();
        if(x&1){
            if(m&&k){
                m--,k--;
                q.push((x-1)/2);
            } else {
                q.push(x);
            }
        } else {
            if(m){
                m--;
                q.push(x/2);
            } else {
                q.push(x);
            }
        }
    }
    int ans = 0;
    while(q.size()){
        bool flag = true;
        if(k&&q.top()%2==1) k--,q.push(q.top()-1),q.pop(),flag=false;
        if(m&&q.top()%2==0) m--,q.push(q.top()/2),q.pop(),flag=false;
        if(flag) ans+=q.top(),q.pop();
    }
    cout<<ans<<endl;
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    // int T; cin>>T; while(T--)
    solve();
    return 0;
}

标签:周赛,76,int,long,牛客,solve,ans,--,define
From: https://www.cnblogs.com/longxingx/p/18667294

相关文章

  • 《废品机械师抢先版》V0.7.3.b776官方中文学习版
    《废品机械师抢先版》官方中文版https://pan.xunlei.com/s/VODaeeHvgXUAgJbj2b1-3DR6A1?pwd=wwdv#生存模式!在生存模式中,机械师探索一个充满敌人、宝藏和危险机器人的动态生成的开放世界环境!与朋友组队,建立基地来保护自己和贵重物品。最有创造力的人会活下来!挑战模式!在机械......
  • [luoguP3376] 网络最大流
    题意给出一个网络,求流量的最大值sol网络流板子题。网络流是OI中比较常用的算法之一,以较高的建图难度深受出题人喜爱,不过近几年题目数量减少。当然,在学习建图之前,需要先学会网络流的板子。一些定义(部分摘自OI-Wiki)网络是特殊的有向图\(G=(V,E)\);源点\(s\)是网络的起......
  • LeetCode:76.最小覆盖子串
    LeetCode:76.最小覆盖子串+helperdivdsxcpv+lean+edjuxdsksforgetAnalyticstomyself解题思路先找出所有的包含T的子串。找出长度最小那个子串,返回即可。用双指针维护一个滑动窗口。移动右指针,找到包含T的子串,移动左指针,尽量减少包含T的子串的长度。循环上述过程,找......
  • 《CPython Internals》阅读笔记:p76-p95
    《CPythonInternals》学习第5天,p76-p95总结,总计20页。一、技术总结无。二、英语总结(生词:1)1.checkvi/vt.toexamsthtoensureitiscorrect,true,oringoodcondition.示例:(1)AfterI'dfinishedthetest,Icheckedmyanswersformistakes.这种用法比......
  • 牛客练习赛133
    A万年沉睡的宝藏题意:有一些岛和一些宝藏,都用字符串来描述,会有4个操作:给一个岛加一个宝藏,问这个岛有多少宝藏,某个宝藏是否在这个岛上,有多少岛上有至少一个宝藏。用map存string和set就行了,注意特判没有这个岛的情况。点击查看代码voidsolve(){intq;std::cin>>q......
  • P8076 [COCI2009-2010#7] RESTORAN
    RESTORAN题目链接。Problem给定一张\(n\)个点,\(m\)条边的无向图。现在要求一种对边的染色的方式,使得每个度数不小于\(2\)的点基于白色边相连,又与黑色边相连。无解输出-1。数据范围:\(1\len,m\le10^5\),不保证没有重边。Sol经典套路?先考虑无解的情况,当且仅当存在一......
  • 【开源】基于SpringBoot框架学生选课系统(计算机毕业设计)+万字毕业论文 T376
    系统合集跳转源码获取链接点击主页更能获取海量源码博主联系方式拉到下方点击名片获取!!!博主联系方式拉到下方点击名片获取!!!10年计算机开发经验,主营业务:源码获取、项目二开、语音辅导、远程调试、毕业设计、课程设计、毕业论文、BUG修改一、系统环境运行环境:最好是......
  • SSM新生报到小程序 计算机专业毕业设计程序源码67624
    摘 要随着中国经济的飞速增长,消费者的智能化水平不断提高,许多智能手机和相关的软件正在得到更多的关注和支持。其中,新生报到小程序更是深得消费者的喜爱,它的出现极大地改善了消费者的生活质量,同时,它还创造了一种快捷、有效的数据信息管理网络平台,让消费者更加轻松地掌握自......
  • P7603 [THUPC2021] 鬼街 题解
    P7603[THUPC2021]鬼街题解第一次见折半报警器的trick,记录一下首先观察到\(x\len\le10^5\),所以\(x\)最多有6个质因数,\(x=30030\)可以取到,这使得对于修改,我们可以暴力单点修改。接下来考虑询问,朴素的做法是:每一次灵异事件之后,都对所有监控器进行检验是否满足和......
  • 电流传感器HLSR50-P KX022-1020加速度计 LM27761DSGR稳压器 MAX14752EUE SAF7755HV音
    1、HLSR50-P是一款开环霍尔效应电流传感器,主要用于电子测量直流、交流和脉冲电流,同时确保初级和次级电路之间的电隔离。HLSR50-P电流传感器规格用于测量:AC/DC传感器类型:霍尔效应,开环电流-检测:50A通道数:1输出:比率,电压灵敏度:16mV/A频率:400kHz线性度:±0.5%......