Codeforces Round #490 (Div. 3) D. Equalize the Remainders

Codeforces 进阶计划:从 Specialist 到 Expert 训练计划:做 Codeforces Round (Div. 3)、Codeforces Round (Div. 3) 和 Educational Codeforces Round 通过人数少于 1000 人的题目。 目前做了 3 题。 Codeforces Round #490 (Div. 3) D. Equalize the Remainders 给定两个整数 n,mn,... 阅读详情

1,题目描述:

D,使余数相等。
给你一个含有n个整数的数组a1,a2,…,an,和一个正整数m。保证m是n的因数。
在单次移动中,你可以选择在1到n之间的任一位置的数ai加1.
计算cr(0~m-1)——每个元素除以m之后的余数r。换句话说,对于每个余数,
找到与它相对应的元素。
你的任务是改变数组的元素使得c0=c1=…=cm-1=n/m;
找到满足上述要求的最小的需要改变的次数
输入:
第一行包括两个整数n,m(1~2e5,1<=m<=n)保证m是n的因数。
第二行是n个整数a1,a2,…an(0~1e9)
输出:
第一行,输出第一行——最小需要移动的数字满足下面的情况。对于任一个余数
(0~m-1),数组中的元素都有一个余数等于n/m。
第二行,输出任一数组满足条件的。可以从原数组中得到的最小的改变的次数。结果
数组中的所有结果不超过1e18.
(翻译完题目我整个人是很懵逼的,我理解题意用了好久好久好久。。。。。
最后get到:原来是0~m-1的余数的所有个数都相等等于n/m)

http://codeforces.com/contest/999/problem/D

3,AC code:

代码注释:
*类型:贪心

#include<iostream>
#include<algorithm>
#include<set>
using namespace std;
typedef long long ll;
const int N=2e5+6;
set<ll>st;
//cnt数组用来存0~m-1位置的所有的余数的个数都为n/m
//arr数组用来存输入的数组,以及改变后的数组
//res用来存当前值的余数
//val用来存应该最优应该选取的余数的值。
//ans用来存需要改变的操作数 
ll n,m,cnt[N],arr[N],res,val,ans;
int main(){
    cin>>n>>m;
    for(int i=0;i<m;cnt[i++]=n/m)st.insert((ll)i);
    for(int i=0;i<n;i++){
        cin>>arr[i];
        res=arr[i]%m;
        //贪心部分 
        if(res>*st.rbegin())val=*st.begin(); 
        else val= *st.lower_bound(res);
        //贪心部分 
        ans=ans+(val-res+m)%m;
        if(!--cnt[val])st.erase(val);
        arr[i]=arr[i]+(val-res+m)%m;
    }
    cout<<ans<<endl;
    for(int i=0;i<n;i++)cout<<arr[i]<<" ";
}
Unity零基础到入门☀️| 万字教程 讲解Unity中的数据存储 PlayerPrefs、XML、JSON【建议收藏】 本文章是Unity零基础到入门专栏的系列文章。 适合对Unity3D引擎感兴趣的小伙伴学习,偏向于新手学习! 本篇文章就来介绍一下Unity中三种基本的数据存储方式:PlayerPrefs、XML、JSON 阅读详情

相关推荐

无人机机场自动化巡检钢铁厂管廊技术方案

摘要:针对钢厂管廊人工巡检效率低、成本高等问题,提出5G+无人机自主巡检解决方案。该系统由智能机库、5G无人机、AI分析平台等组成,可实现自动起降、实时数据传输、缺陷智能识别等功能。无人机配备四合一云台相机,支持42分钟续航和复杂环境飞行,通过深度学习算法自动生成巡检报告。方案实施后可提升巡检效率3倍以上,降低人工成本和安全风险,实现全天候自动化巡检,为钢厂管廊安全管理提供智能化技术支持。(149字)

gxdhlg的专栏 1685

基础数据结构——数组

从这一篇文章开始,后面会讲一些数据结构和算法,这篇文章我们先来看看“数组”。什么是数据结构?每道编程题都有输入数据和输出数据,输入数据是代码处理的对象,输出数据是代码运行的结果。代码在执行过程中需要用一定的方式来存储、处理数据,就是数据结构。《数据结构》教材一般包含线性表(数组、链表)、栈和队列、串、多维数组和广义表、哈希、树和二叉树、图、排序等。基础数据结构数组、链表、队列、栈、二叉树。数组是最简单的数据结构,其把数据连续存储在空间中。

m0_52711790的博客 840

量子阱技术解析:从基础原理到前沿应用

本文深入解析量子阱技术,从微观“能量游泳池”的基础原理出发,阐释了其通过限制电子实现能级量子化,从而精确调控发光波长的核心机制。文章详细探讨了量子阱在半导体激光器和LED中的革命性应用,如实现低阈值电流与高亮度显示,并展望了其在能带工程及量子级联激光器等前沿领域的发展与挑战。

weixin_29267307的博客 282

D. Equalize the Remainders[模拟+set中lower_bound效率问题]

D. Equalize the Remainders题意:要求改变一个数组,使得模m后,结果为0,1,2,3,...,m-1都是n/m个,每次操作可以选择一个数+1,问至少执行多少次,并输出最终的数组思路:模拟当前元素应该往哪个元素去改变注意:std::set::lower_bound的复杂度为logN,而std::lower_bound的复杂度在set里是logn+n,原因大致是set是一颗平衡...

Haipai1998的博客 463

【KITTI数据集中Raw_Data数据标定文件中的参数关系解读】

上一节本人将KITTI Odometry数据集中的参数文件进行了解释。本节主要针对一些做融合slam的人,将Raw_Data数据标定文件中的参数按照自己的理解做如下阐述。其中,所讲之处如有错误,欢迎各位批评指正。

weixin_43389152的博客 1526

【C语言】程序员筑基功法——《函数栈帧的创建与销毁》

汇编角度带你走进函数栈帧

StackFrame 3660

Codeforces Round #550 (Div. 3) D. Equalize Them All

题意,题解都在代码里 代码: #include <iostream> #include <bits/stdc++.h> using namespace std; //#define int long long const int maxn=2e5+5; int s[maxn]; int cnt[maxn]; signed main(){ /* ...

- 223

构建个体结构脑网络的另一种方法

这篇文献提出了一种构建个体结构脑网络的方法即Morphometric INverse Divergence (MIND),通过T1像数据即可对每个被试构建一个脑网络,且通过多个特征进行构建而非单一的特征。即可获得由4个特征得到的个体结构网络矩阵,可以根据自己的需求采用不同的特征组合得到网络矩阵,也可以结合T1/T2像得到髓鞘化相关的网络矩阵,后续可修改代码批量处理自己的数据。这是文献贴出来的代码。在终端直接克隆到本地。2.修改路径运行代码。

weixin_52073820的博客 822

CodeForces - 999D——Equalize the Remainders

题目链接:https://vjudge.net/contest/336720#problem/J 题意:给出一个序列A一共n个数,给出一个m是n的因子。每次可以进行一个操作,使得A【i】+1。求至少进行多少次操作可以满足序列A中每个元素%m后的序列恰好有n/m个【0~m-1】. #include<stdio.h> #include<algorithm> #includ...

creator平 314

二极管限幅电路和钳位电路

二极管限幅电路和钳位电路学习

HW-BASE的博客 928

YOLOv11涨点改进| TGRS 2026 | 独家创新首发、特征融合改进篇| 引入STSAM协同时空注意力融合模块,发论文热点创新,注意力能够互相引导强化边界和结构细节,增强目标检测、图像分割涨点

🔥本文提出了一种改进YOLOv11网络模型的STSAM协同时空注意力融合模块,用于提升高分辨率遥感变化检测的精度。STSAM通过并行处理全局跨时相注意力和局部坐标注意力,能有效聚焦真实变化目标,强化边界和结构细节。该模块包含两个分支:Cross-Attention分支通过时间嵌入增强双时相特征的时间差异,CoordAtt分支则强化局部结构细节。实验表明,STSAM能显著提升变化检测性能,同时保持训练稳定性。文章详细介绍了模块结构、原理、优势,并提供了完整的核心代码实现和配置方法,包括三种改进方案。

Ai缝合怪、助力小伙伴高效发论文 218

D. Equalize Them All

给你 n 个数,每次操作可以选择两个相邻的数字,并把他们都变成其中一个数字。问最少需要通过几次操作能使 n 个数字变的全部相等?要是操作数最小,我们只需要从出现次数最多的数字开始向两边变化,每次记录操作的下标以及使用操作的编号即可。

m0_60610120的博客 322

【SpringBoot笔记44】SpringBoot多数据源配置(方式一:配置多个mapper扫描不同的包路径实现多数据源配置)

在SpringBoot应用开发中,一般情况下,都是只会配置一个数据源信息,之后整个工程都是对当前数据源进行增删改查的操作。但是,在实际开发里面,也有可能会遇到多数据源的情况,例如:当前工程中除了需要访问自己应用的数据库,还需要直接连接第三方系统的数据库进行业务处理,这种情况下,就需要进行多数据源的配置。SpringBoot考虑到了这一点,所以它是支持多数据源的配置的,下面介绍一下如何配置多数据源。

✅ Java 开发工程师 1116

Codeforces Codeforces Round #490 (Div. 3) D. Equalize the Remainders

题目 题意: 给出一个n,一个m(n%m==0),之后n个数,即数组a。一次操作可以对a数组任意一个元素+1。一个数组c,大小为m,**c[i]为数组a的元素对m取余结果为i的数量,问:使所有c[i]**等于n/m,至少进行多少次操作,并且输出操作后的数组a。 做法: 对于,每一个 ...

reedthink的博客 204

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Codeforces Round #490 (Div. 3) D. Equalize the Remainders(好奇怪的迭代器用法)

原题地址:http://codeforces.com/contest/999/problem/D 题意:本题就是给你n,m,保证n能被m整除,给你n个数,对这些数操作+=1,使得这些数%m后,得到的数是从0~m-1,且没个数出现n/m次。 思路:贪心,首先记录每个取余m后的结果数的个数,如果个数不大于n/m则不用改变,否则(需要改变)插入set,然后二分查找出大于该数的且余数个数小于n/m的数...

yiqzq的博客 490

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Codeforces Round #490 (Div. 3) D. Equalize the Remainders E Reachability from the Capital

E. Reachability from the Capital time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output There are n n cities and m m roads in Berland. E...

Dave_lzw的博客 504

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Codeforces Round #490 (Div. 3)(A-E)题解

Codeforces Round #490 (Div. 3)(A-E)题解 传送门 A. Mishka and Contest 思路:签到题,双指针模拟即可。 时间复杂度:O(n)O(n)O(n) #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=105+5,M=1e6+5,inf=0x3f3f3f3f,mod=1e9+7; #define mst(a) memset(a,0,sizeo

Harris-H的博客 743

Codeforces Round #490 (Div. 3) A、B、C、D(思维)、E(tarjan)、F(贪心dp)

题目链接:https://codeforc.es/contest/999 嗯,补题还是div3好AK,开了套虚拟,四个题 D题难度1900,独立做出还是挺激动开心的 E题看错了,导致没做出来,是从首都城市到能达到其他城市,我看成从其他城市到达首都了。 前三题水题至极,15分钟A没啥好说的。 A. Mishka and Contest 给n,k,n是数组长度 题意都告诉做法了,只能从两...

ccsu_deer 703

Equalize the Remainders(思维)

Equalize the Remainders You are given an array consisting of n integers a1,a2,…,an, and a positive integer m. It is guaranteed that m is a divisor of n . In a single move, you can choose any positi...

codeswarrior的博客 661

Equalize the Remainders

You are given an array consisting of n integers a1,a2,…,an, and a positive integer m. It is guaranteed that m is a divisor of n . In a single move, you can choose any position i between 1 and n and...

codertcm的博客 366

codeforces 490 div3 D. Equalize the Remainders

题目大意: 给你n个数和一个m,要求余数为0-m-1的数的数量正好是n/m,m保证是n的因子,每个数只能执行加的操作,最后输出操作的次数以及修改后的数组结果。 解题思路: 主题思想是贪心,就是让那些余数值超过n/m的数向离他最近且余数值没有满足条件的数“移动”。这里的“移动”有个巧妙的处理,就是利用STL集合中的set.lower_bound()函数,集合中保存那些未满足条件的余数值,l...

Apollo的博客 308

4306 序列处理(贪心)

1. 问题描述: 给定一个长度为 n 的整数序列 a1,a2,…,an。我们可以对该序列进行修改操作,每次操作选中其中一个元素,并使其增加 1。现在,请你计算要使得序列中的元素各不相同,至少需要进行多少次操作。 输入格式 第一行包含整数 n。第二行包含 n 个整数 a1,a2,…,an。 输出格式 一个整数,表示所需的最少操作次数。 数据范围 前 6 个测试点满足 1 ≤ n ≤ 10。所有测试点满足 1 ≤ n ≤ 3000,1 ≤ ai ≤ n。 输入样例1: 4 1 3 1 4 输

二哈 1456

codeforces 999D Equalize the Remainders

http://www.elijahqi.win/archives/3822 看做一个有向环 考虑我们其实从每个点出发如果采用最优策略那么一定都是一样的 那么不妨来看 我一遍扫描一边带着前缀和 如果遇到是小于平均值的我优先分配给他我最前面的 注意扫描一遍是不够的 但最多两遍即可 因为最优策略不可能绕一圈以上 #include&lt;bits/stdc++.h&gt; #define l...

Elijahqi 1771

Equalize the Remainders(CF-999D)

Problem Description You are given an array consisting of n integers a1,a2,…,an, and a positive integer m. It is guaranteed that m is a divisor of n. In a single move, you can choose any position i ...

Alex_McAvoy的博客 618

Codeforces Round #490 (Div. 3)【完结】

2022.3.3 题单地址: 目录

辉小歌的博客 660

Codeforces Round #490 (Div. 3) (A+B+C+D+E+F)

蒟蒻补完整的第一场cf QAQ A题 题目链接(模拟+签到) 题意:给你一个长度为N个序列,你可以每次从最左边或者最右边删除一个小于等于k的数字,问你最多能删多少个数字。 数据N,K<=100 直接上代码,不用解释。 #include<iostream> #include<algorithm> #include<cstdio> #include<stdlib.h> #include<iostream> #include<algori

矮纸斜行闲作草 394
上一篇: Codeforces Round #490 (Div. 3)B. Reversing Encryption
下一篇: Codeforces Round #491 (Div. 2)A. If at first you don't succeed...
图南1204
博客等级 码龄9年 21粉丝 118原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值