jzoj5698-[gdoi2018day1]密码锁【贪心,差分】
正题
题目大意
nnn个数字,每次可以让一个区间加或减111。然后数字是一个[0,m−1][0,m-1][0,m−1]的循环,求最少次数让所有数字变成000
解题思路
我们做一个%m\%m%m意义下的差分数组之后问题就变成了选择两个位置一增一减使得所有的变成000。
那么我们可以将整个差分数列划分为两部分,一部分往mmm走一部分往000走,我们从小到大排序后枚举分割位置即可。
时间复杂度O(nlogn)O(n\log n)O(nlogn)
codecodecode
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=1e6+10;
ll n,m,a[N],f[N],g[N],ans;
int main()
{freopen("lock.in","r",stdin);freopen("lock.out","w",stdout);scanf("%lld%lld",&n,&m);for(ll i=1;i<=n;i++)scanf("%lld",&a[i]);a[++n]=0;for(ll i=n;i>=1;i--)a[i]=(a[i]-a[i-1]+m)%m;sort(a+1,a+1+n);for(ll i=1;i<=n;i++)f[i]=f[i-1]+a[i];for(ll i=n;i>=1;i--)g[i]=g[i+1]+m-a[i];for(ll i=n-1;i>=1;i--)if(f[i]==g[i+1])return printf("%lld",max(f[i],g[i+1])),0;return 0;
}
jzoj5698-[gdoi2018day1]密码锁【贪心,差分】相关推荐
- 贪心+差分的题目:gaming
原题链接 题目描述 "漆黑的夜晚"是一位游戏大神.他玩的游戏共有 n 个挑战房间,和 m 个 debuff.他非常强,只要不是带着所有的 debuff,他都能打过 boss 获得胜 ...
- 阿里春招笔试2020.3.27(贪心/差分/概率)
申明:大概题意是从牛客网讨论区嫖的,题目的输入.输出以及数据数据范围也有些不知,大家看看思路就好,这些细节就不管了QAQ.有错欢迎纠正~ 3.27 题目一(贪心) 给定字符串s1,s2,求从s1变为s ...
- 中石油训练赛 - 围栏翻新(思维+贪心+差分)
题目描述 小明的破旧围栏又要喷涂油漆了.围栏由N个木板构成,每个宽度都为1cm,但是高度各不相同.他给自己买了一个喷漆机器,喷涂头恰好也是1cm宽. 小明的喷漆机器是直接喷射的,因此喷头的每一个部位必 ...
- Too Many Segments (easy version) CodeForces - 1249D1(贪心+差分)
题意 给多组线段,而每一个点的覆盖次数不超过K,每次可去除一个线段,问最少去多少线段以及线段的位置. The only difference between easy and hard version ...
- 差分总结(一阶,二阶)
差分算法是一种基础算法 介绍:差分算法的特点在于支持区间修改(O(1)的时间复杂度),能够通过求前缀和获得修改后的原数组,O(n), 所以差分算法一般都是需要多次修改后,再进行一次前缀和求和的情况下 ...
- leetcode 区间问题
文章目录 304. 二维区域和检索 - 矩阵不可变[前缀和] 二维前缀和 二维前缀和 一维前缀和 模板 总结 995. K 连续位的最小翻转次数[贪心.差分.滑动窗口]!!! 贪心差分 滑动窗口 总结 ...
- C. Little Girl and Maximum Sum【差分 / 贪心】
贪心,思路很简单.肯定是公共次数最多的,放最大的值.以此类推. 我们可以用差分来维护,快速的给区间加1.最后统计每一个点背统计的次数. 然后将数值按照从大到小.给出现次数多的点赋值构造数组.最后前缀和 ...
- CodeForces - 1491C Pekora and Trampoline(差分+贪心)
题目链接:点击查看 题目大意:给出一个长度为 nnn 的序列 aaa,aia_iai 表示第 iii 个蹦床的强度,当从第 iii 个蹦床起跳的话可以跳到 i+aii+a_ii+ai 的位置,但是 ...
- [TJOI2013]拯救小矮人(反悔贪心证明),「ICPC World Finals 2019」Hobson 的火车(基环树,差分)
2021-09-07 test [TJOI2013]拯救小矮人 「ICPC World Finals 2019」Hobson 的火车 [TJOI2013]拯救小矮人 luogu4823 考试题目的数据 ...
最新文章
- 多重应用SD-WAN如何实现业务连续性—Vecloud
- 人工智能技术或成为未来网络安全的引爆点和驱动力
- 《可穿戴创意设计:技术与时尚的融合》一一3.3 纺织与教育
- 将Java Flight Recorder与OpenJDK 11结合使用
- 前端学习(2818):小程序学习之文件建立
- Java学习4大阶段完成入门,小白必读!
- 2.0版本中如何取得当前的控制器和方法
- python处理word_python操作word,自动化办公
- 【iCore1S 双核心板_ARM】例程十三:SDIO实验——读取SD卡信息
- Web APIs概念详解(附图解)
- 批处理——读写文件、字符串替换
- 就读体验丨香港科技大学工学院科技领导及创业(TLE)理学硕士学位课程(上)
- Linux标识第2个扩展分区,精益创业模式与Get Big Fast模式、火箭发射思维模式,对创业假定的不同在于它认为( )。...
- 十六种顶级的思维模型
- 2020洪灾地图_2020洪水受灾省份、人数 最新洪水灾情报告通报
- VPS SPS PPS
- 自然辩证法作业--科学与技术的关系
- 按键精灵html代码,按键精灵键盘代码~
- Dubbo学习(一)
- 资治通鉴:文言文、白话文对照读本
热门文章
- java threadsafe 注解_Java 注解详解
- asp.net添加删除表格_如何用openpyxl自动化编写Excel电子表格
- c语言中二重指针如何赋值,关于二重指针释放的有关问题
- linux系统刷分辨率,Linux下设置其分辨率及刷新率
- vue 调用mutation方法_Vuex白话教程第三讲:Vuex旗下的Mutation
- aop springboot 传入参数_Springboot添加AOP打印请求参数
- android arp工具,GitHub - SummerSnow274/ARP_sed_rev: 在Android通过ARP询问实现获取同一网络所有设备的MAC地址,AP隔离的网络除外...
- leetcote34. 在排序数组中查找元素的第一个和最后一个位置
- 一文了解贪心算法和回溯算法在前端中的应用
- 一文了解分而治之和动态规则算法在前端中的应用