AtcoderABC313场

news2025/2/24 6:38:20

A - To Be SaikyoA - To Be Saikyo

在这里插入图片描述在这里插入图片描述

题目大意

有N个人,编号从1到N。每个人有一个整数分数,称为编程能力;第i个人的编程能力是Pi分。人1需要多少分才能成为最强者?换句话说,最小非负整数x是多少,使得对于所有i ≠ 1,满足P1 + x > Pi?

思路分析

为了使第1个人成为最强者,他需要比其他人的分数都高。找出所有其他人的分数中的最大值max。因此,答案是max + 1 - P1。如果max已经小于等于P1,则答案是0,因为第1个人已经是最强者。

时间复杂度

O(N)

AC代码

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

int main() {
    int n;
    cin >> n; 
    vector<int> p(n);
    for (int i = 0; i < n; i++) {
        cin >> p[i]; 
    }
    int m = 0;
    for (int i = 1; i < n; i++) {
        m = max(m, p[i]); // 找到除了第一个人之外的最高分数
    }

    cout << max(0, m + 1 - p[0]) << endl;
    return 0;
}

B - Who is Saikyo?B - Who is Saikyo?

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

题目大意

给定N个竞技选手,他们之间存在优劣关系。优劣关系具有传递性,即若选手A优于选手B,选手B优于选手C,则选手A优于选手C。定义最强选手为对其他所有选手具有优势的选手。给定M个关系信息,判断是否能确定最强选手,并输出其编号。如果有多个可能为最强选手,输出-1。

思路分析

右边为被超过,最强不可能出现右边,记录右边程序员出现的次数de[i]。
如果某个程序员的计数值de[i]为0,说明他没有被其他程序员所超过,他就可能是最强程序员。如果存在多个计数值为0的程序员(在它之前的ans!=-1),程序会输出-1并终止程序。否则,程序会将最强程序员的索引加1赋值给变量ans,并输出ans的值。

时间复杂度

O(N+M)

AC代码

#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m;
  cin >> n >> m; 
  vector<int> deg(n);  
  
  while (m--) {
    int a, b;
    cin >> a >> b;  /
    --a, --b;  
    deg[b]++;  
  }
  int ans = -1;  
  for (int i = 0; i < n; i++) {
    if (deg[i] == 0) {  
      if (ans != -1) {  // 如果已经有选手被赋值给ans
        cout << -1 << endl;  // 输出-1,表示无法确定最强选手
        return 0;
      } else {
        ans = i + 1;  
      }
    }
  }
  
  cout << ans << endl;  
  return 0;
}

C - Approximate Equalization 2C - Approximate Equalization 2

在这里插入图片描述在这里插入图片描述

题目大意

给定一个整数序列A,可以进行以下操作任意次数(包括零次):
选择两个整数i和j(1≤i,j≤N),将A_i减一并将A_j加一。找到使得序列A的最大值和最小值之间的差最多为1所需的最小操作次数。

思路分析

将最大值逐渐减小,将最小值逐渐增大,来使得最大值和最小值之间的差最多为1。

  • 首先将序列A排序,这样最大值和最小值就会排列在序列a的末尾和开头。
  • 然后构造一个均匀分布的序列b,使得序列b的平均值接近每个元素之和的平均值。
  • 将多余的1分配给序列b的末尾的元素,以最大程度地减小操作次数。
  • 最后,计算序列a和序列b的元素之间的差值,得到最小操作次数。

时间复杂度

O(NlogN)

AC代码

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
    int n;
    cin >> n; 
    vector<int> a(n);  
    ll sum = 0; 

    for (int i = 0; i < n; i++) {
        cin >> a[i]; 
        sum += a[i]; 
    }

    sort(a.begin(), a.end());  
    vector<int> b(n, sum / n);  // 创建长度为N的数组b,初始值为sum/n
    for (int i = 0; i < sum % n; i++) {
        b[n - 1 - i]++;  // 将sum % n个1分别分配给数组b的尾部元素
    }

    ll ans = 0; 
    for (int i = 0; i < n; i++) {
        ans += abs(a[i] - b[i]); 
    }

    cout << ans / 2 << endl;  
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/854003.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

10万SUV大魔王?市场再添新成员,北汽新魔方正式上市,鸿蒙加持

根据报道&#xff0c;北京汽车宣布新一款名为新魔方的车型已经在位于北京汽车株洲基地的超级工厂开始大规模生产。这款车型是继北京新EU5 PLUS之后的又一重要产品&#xff0c;被认为将对10万级SUV市场带来颠覆性影响。 据报道&#xff0c;北汽魔方是首款搭载鸿蒙HarmonyOS智能操…

【UE4 RTS】05-Fixing Camera Movement

前言 本篇实现了两个功能&#xff1a;一是解决CameraPawn旋转后&#xff0c;前进方向没变的问题&#xff1b;二是玩家可选择提高CameraPawn的移动速度 效果 一、解决CameraPawn旋转后&#xff0c;前进方向没变的问题 二、玩家可提高CameraPawn移动速度 步骤 一、解决Camera…

IDEA离线安装插件

一、背景 有时&#xff0c;在ideal中我们无法获取到插件&#xff0c;可能是因为内网或者无法访问插件库等原因&#xff0c;此时我们需要离线安装插件 IDEA离线仓库&#xff1a;https://plugins.jetbrains.com/ 二、步骤 2.1 下载插件&#xff1a;https://plugins.jetbrains.…

20230809在WIN10下使用python3处理Google翻译获取的SRT格式字幕(DOCX)

20230809在WIN10下使用python3处理Google翻译获取的SRT格式字幕&#xff08;DOCX&#xff09; 2023/8/9 19:02 由于喜欢看纪录片等外文视频&#xff0c;通过剪映/PR2023/AUTOSUB识别字幕之后&#xff0c;可以通过google翻译识别为简体中文的DOCX文档。 DOCX文档转换为TXT文档之…

收藏!新增6省!2023年度杰青、优青名单汇总(附下载)

2023省级自然科学基金项目名单 杰青、优青项目是国家及各省市为促进青年科学和技术人才的成长&#xff0c;加速培养造就一批进入世界科技前沿的优秀学术带头人而特别设立的科学基金&#xff0c;是各个科研单位竞相争夺的青年科技人才。 按照惯例&#xff0c;2023年国家自然基…

百度资深PMO阚洁受邀为第十二届中国PMO大会演讲嘉宾

百度在线网络技术&#xff08;北京&#xff09;有限公司资深PMO阚洁女士受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾&#xff0c;演讲议题&#xff1a;运筹于股掌之间&#xff0c;决胜于千里之外 —— 360斡旋项目干系人。大会将于8月12-13日在北京举办&#xff0c;…

Java基础(八)二维数组

数组 二、二维数组 1. 二维数组使用步骤 定义二维数组 格式&#xff1a;数据类型 数组名[][]; 或 数据类型[][] 数组名; int scores[][]; int[][] scores;为二维数组元素分配内存 格式&#xff1a;数据类型 数组名[][]; 或 数据类型[][] 数组名; int scores[][]; scores …

MinGW-w64的安装详细步骤(c/c++的编译器gcc、g++的windows版,win10、win11真实可用)

文章目录 1、MinGW的定义2、MinGW的主要组件3、MinGW-w64下载与安装3.1、下载解压安装地址3.2、MinGW-w64环境变量的设置 4、验证MinGW是否安装成功5、编写一段简单的代码验证下6、总结 1、MinGW的定义 MinGW&#xff08;Minimalist GNU for Windows&#xff09; 是一个用于 W…

无菌车间ar实景巡检为企业带来了诸多好处

随着科技的不断发展&#xff0c;AR增强现实技术逐渐渗透到各个行业&#xff0c;为生产制造带来了前所未有的便捷。特别是在制造业中&#xff0c;AR增强现实技术的应用正逐步改变着传统的生产模式&#xff0c;为企业带来了诸多优势。 传统的巡视方式往往需要人工实地查看设备&am…

多进程利用TCP进行信息群发功能

/服务器的代码 #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <string.h> #include <stdio.h> #include <stdlib.h> #define SEVER_IP &quo…

抖音商品上架有攻略:详细介绍步骤与注意事项

抖音是一款非常流行的短视频分享平台&#xff0c;也是一个非常适合进行商品销售的平台。上架商品是在抖音上进行电商销售的重要一环&#xff0c;下面不若与众将介绍抖音商品的上架流程和注意事项。 1. 注册账号和认证&#xff1a;首先&#xff0c;你需要在抖音平台上注册一个账…

同步辐射散射数据处理分析方法及实验过程

同步辐射散射数据处理分析方法及过程 同步辐射散射测试是一种先进的材料表征技术&#xff0c;已广泛应用于材料科学、生物学、化学等领域。同步辐射散射技术利用同步辐射光源产生的高亮度辐射&#xff0c;通过散射实验来研究样品的结构、形态和动态行为。 同步辐射散射处理分析…

ThreadLLocal的学习

ThreadLocal的学习 ThreadLocal的学习1.ThreadLocal是什么&#xff1f;2.ThreadLocal的数据结构Java的四种引用类型 3.ThreadLocal为什么会出现内存泄露&#xff1f;既然会出现内存泄露为什么Entry的key还要使用弱引用&#xff1f;如何避免内存泄露&#xff1f; ThreadLocal的学…

数据分析案例《共享单车使用量综合分析案例》上新啦

《共享单车使用量综合分析案例》是一门数据分析和统计学的课程&#xff0c;旨在教学生如何综合运用数据分析技术&#xff0c;研究共享单车使用量的变化和影响因素&#xff0c;从真实的数据中探索有关共享单车使用量的问题&#xff0c;并通过数据挖掘、统计分析等方法&#xff0…

详解推送Git分支时发生的 cannot lock ref 错误

在码云上建了一个项目仓库,分支模型使用 git-flow ,并在本地新建了一个功能分支 feature/feature-poll。后来在推送时发生错误,提示 cannot lock ref ...... 这样的错误信息。下面复盘一下具体过程和解决办法,以供参考。 在码云中建立仓库时,考虑到想按照 GitFlow 的模式…

怎么把两个pdf合并成一个?这几种方法值得了解

怎么把两个pdf合并成一个&#xff1f;在日常工作中&#xff0c;我们经常需要合并两个或多个PDF文件成一个。但是&#xff0c;对于不熟悉PDF编辑器的人来说&#xff0c;这可能是一个棘手的问题。在本文中&#xff0c;我们将介绍一些合并PDF文件的方法&#xff0c;有需要的小伙伴…

音视频--视频数据传输

参考文献 H264码流RTP封装方式详解&#xff1a;https://blog.csdn.net/water1209/article/details/126019272H264视频传输、编解码----RTP协议对H264数据帧拆包、打包、解包过程&#xff1a; https://blog.csdn.net/wujian946110509/article/details/79129338H264之NALU解析&a…

【Leetcode】对称二叉树||递归(击败100%)

step by step. 题目&#xff1a; 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1]示例 2&#xff1a; 输入&#xff1a;root [2,1,3] 输出…

lc2536.子矩阵元素加1

暴力解法&#xff1a;直接按照题目所示在矩阵的相应位置加一 时间复杂度&#xff1a;O(n2 * queries.length) 空间复杂度&#xff1a;O(1) 二维差分&#xff1a;创建二维差分数组&#xff0c;通过对差分数组的修改来影响原来的数组&#xff0c;最后还原 时间复杂度&#x…

FcaNet: Frequency Channel Attention Networks

FcaNet: Frequency Channel Attention Networks Abstract预备知识GAPDTC&#xff08;离散余弦变换&#xff09; 本文methodRevisiting DCT and Channel AttentionChannel Attention Multi-Spectral Channel AttentionMulti-Spectral Channel Attention ModuleCriteria for Choo…