[AtCoder ARC077 .E] [扫描线] [乱搞]guruguru

电子技术设计——16×16点阵汉字显示设计 同时,设计还应注重提升显示品质,以保证汉字的稳定展示和观感舒适。本设计的目的是构建一个能够准确在LED点阵上展示汉字的系统,并允许用户通过输入设备来选择所需的汉字,我们将验证设计方案的实际操作性和效果,以确保其满足设计目标。在LED点阵显示和汉字信息处理技术的结合下,研究者们着手研究如何在LED点阵上有效地显示汉字,并提出了一系列显示算法和优化策略,旨在实现清晰且易于阅读的汉字显示效果。首先,你需要准备16×16的LED点阵面板,通常这些点阵是8×8点阵的两倍,因此可以由两个8×8的点阵组合而成。 阅读详情

一次从a到b的变化可以看成一个(a,b)(a< b),或(a,m),(0,b)(a>b)的线段
可以枚举favorite值,用扫描线记录穿过了多少线段,那么从左端点到favorite值的部分就可以省去,注意a>b的情况,当穿过(0,b)的线段时,还要把(a,m)的部分删去

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <queue>
#include <vector>
#define fi first
#define se second

using namespace std;

const int N=200010;

typedef long long ll;

int n,m,cnt,a[N];
struct stp{
  int fi,se,lk;
  stp(int x=0,int y=0,int z=0):fi(x),se(y),lk(z){}
  friend bool operator <(stp a,stp b){
    return a.fi>b.fi;
  }
}p[N];

priority_queue<stp> Q;

inline char nc(){
  static char buf[100000],*p1=buf,*p2=buf;
  return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;
}

inline void rea(int &x){
  char c=nc(); x=0;
  for(;c>'9'||c<'0';c=nc());for(;c>='0'&&c<='9';x=x*10+c-'0',c=nc());
}

inline int cmp(stp a,stp b){ return a.fi<b.fi; }

int main(){
  rea(n); rea(m);
  for(int i=1;i<=n;i++) rea(a[i]);
  for(int i=1;i<n;i++){
    if(a[i]<a[i+1]) p[++cnt]=stp(a[i],a[i+1]);
    else p[++cnt]=stp(a[i],m),p[++cnt]=stp(0,a[i+1],m-a[i]);
  }
  ll ans=1LL<<60,cur=0;
  for(int i=1;i<=cnt;i++) cur+=p[i].se-p[i].fi;
  sort(p+1,p+1+cnt,cmp); int q=1;
  for(int i=1;i<=m;i++){
    while(!Q.empty()&&Q.top().fi<i)
      cur+=Q.top().fi-Q.top().se-1+Q.top().lk,Q.pop();
    cur-=Q.size();
    while(q<=cnt&&p[q].fi<i)
      cur-=i-p[q].fi+p[q].lk-1,Q.push(stp(p[q].se,p[q].fi,p[q].lk)),q++;
    if(cur<ans) ans=cur;
  }
  cout<<ans<<endl;
  return 0;
}
拆解一个800G光模块:手把手带你认识里面的MT插芯和光纤阵列(FA) 本文详细拆解了800G光模块中的关键组件MT插芯和光纤阵列(FA),揭示了并行光学技术如何实现高速数据传输。通过显微镜下的精密观察,展示了MT插芯的高精度构造和光纤阵列的连接奥秘,同时解析了高精度研磨工艺对光信号传输的重要性。这些微型组件是高速收发模块实现800Gbps带宽的核心技术。 阅读详情

相关推荐

〖进阶篇1〗YAML参数解析:从nav2_params.yaml看机器人导航调优

本文深入解析了ROS2 Nav2导航系统中关键的nav2_params.yaml文件,提供了从定位、行为树、运动控制到环境感知等核心模块的参数调优实战指南。文章通过具体场景案例,如狭窄走廊、动态仓库和高精度对接,详细阐述了如何调整AMCL粒子数、控制器权重、代价地图膨胀半径等参数,以解决机器人导航中的犹豫、碰撞和精度问题,帮助开发者实现从“能用”到“好用”的进阶。

m9n0o的博客 417

[arc077e]guruguru

题目大意有一个台灯,等级为1~m的一个整数。 有一个喜爱等级x,你每次操作可以让台灯等级+1(m+1会变成1)或变成x。 现在你要完成台灯等级从ai变成ai+1这n-1个操作。 如何选择x能使操作次数最小。做法每次可以讨论出某些区间需要变成x然后到达ai+1比较优还是直接加到ai+1比较优。 然后打上对应前缀tag,最后顺序扫一遍找一个最小的。#include<cstdio> #includ

不来也不去的一只失忆蝴蝶 839

C++ bitset总结

数据结构bitset 术语:某1位置位是置1,某一位复位是某一位清零。 文章目录数据结构bitset一、3种初始化方式二、位访问三、位操作四、 位集操作总结实战练习 一、3种初始化方式 bitset<32> tmp; //默认构造函数,默认全0。 bitset<32> tmp(-1); //从整形数构造 bitset<32> tmp("101"); //从包含1和0的字符串构造 二、位访问 bitset<32> tmp(256)

qq_43807092的博客 721

ARC 077 E guruguru - 差分

题目大意:走n-1步每次从a_i走到a_{i+1},每次位置+1(循环意义下)或者位置=x。求最小的x使得步数之和最小。1e5。 题解:显然直接维护a[i]为x取i时能够节省的答案,相当于是等差数列加法,差分差分然后前缀和前缀和即可。 #include&lt;bits/stdc++.h&gt; #define gc getchar() #define rep(i,a,b) for(int i=a;...

Mys_C_K的博客 278

开源有限元dealii学习——step-1

#简介 dealii是一款开源的求解偏微分方程的有限元软件,它优点: 1.多种单元类型 2.可以自适应网格 3.文档和范例齐全 4.与其它库有良好的接口 5.使用c++编写 #安装 dealii可以在官网上或者github上下载源码,解压后进入源文件目录安装。 mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/path/to/install...

weixin_42312251的博客 4385

Android13系统设置第三方app为设备所有者

DevicePolicyManagerService.java文件所在目录是frameworks/base,记得将包类名换成自己app的。2. 将拷贝到系统分区下的两个xml文件继续通过init.rc服务拷贝到data/system/目录下并修改权限。1. 拷贝设备所有者和设备管理器两个对应的xml文件到系统分区。

wzh048503的博客 2502

ARC077E - guruguru(差分)

ARC077E - guruguru Solution 考虑每一次改动对于每一个xxx的影响。 设我们要从aaa变到bbb。 当a−>x−>ba->x->ba−>x−>b时,该次对xxx的贡献为Da,b−Da,x+1D_{a,b}-D_{a,x}+1Da,b​−Da,x​+1,即一个公差为111的递减序列,差分维护ci,dic_i,d_ici​,di​分别表示当前位置新增的序列个数和这个位置新增序列的aaa的贡献,从前往后递推即可。 当a−>b−>xa-&gt

xmr_pursue_dreams的博客 269

特征提取神操作,登上Nature!计算速度狂提300%!

登上Nature!作者提出CVOCA,一种能同时处理数据的幅度和相位信息的卷积模型,在性能远超SOTA的同时,计算速度更是狂飙300%!实际上,作为机器学习和深度学习的核心技术,特征提取一直都是研究的热门!它直接影响着模型的准确性、计算效率、可解释性……同时,它也是我们改模型涨点,最好操作的部分!因为可切入点的真的非常之丰富,不管是轻量化、多尺度、时域与频域结合等,都能使模型性能得到提升!

2401_82426425的博客 4036

(AtCoder Beginner Contest 346) (G 扫描线+数组转化成二维)

那么就变成一个矩阵,左下角是(l,i)右上角是(i,r)对于矩阵每个点都是合法的,所以变成扫描线求不重复的点对。正常是 两个区间长度相乘,但是这个题目会重复。所以问题转化成一个二维坐标。如果左边区间是[l,i]右边区间是[i,r]

qq_61657632的博客 356

【Claude】权限被拒绝 (Permission Denied) 全场景排查 — 已解决

权限配置是 Claude Code 安全使用的核心机制。通过合理的 allow/deny 规则、正确的通配符使用、子代理独立配置、定期安全审计,可以在保证安全性的同时不影响开发效率。deny 优先:deny 规则优先级高于 allow,先保护敏感资源通配符精确单层匹配,**递归匹配,Bash(cmd*)允许带参数最小权限:只允许必要的操作,避免Bash(*)等危险规则CI 用 skip:Headless 模式用避免挂起子代理独立:每个子代理单独配置权限,不自动继承保护密钥:deny.env。

一键难忘的博客 3935

openCv +3.4.0 车牌定位(C++版本)

#include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc.hpp> #include "opencv2/shape.hpp" using namespace ...

Bamboo265925的博客 2337

AtCoder Beginner Contest 186F Rook on Grid | 扫描线、树状数组

本来ak完这场atcoder想写个全部题解,但是前面的题实在没意思.. 就只写一下这个题吧. 题目大意: 现在有一个n*m的矩阵,在(1,1)位置机器人,它每次可以向右移动任意格或者向下移动任意格(在没有障碍物的情况下)。 现在给出k个障碍物,询问有多少点机器人可以通过最多移动两次到达 题目思路: 题意明确以后,自然会快就会出现一个思路: 对于每一个点只有两个状态: 1.先向上移动到第一行,之后向左移动到第一列 2.先向左移动到第一列,之后向上移动到第一行 由于n和m的范围太大,所以

一只酷酷光儿的博客 637

手把手教你完成YOLOv10 PySide6目标检测界面搭建,使用Qt6设计YOLOv10检测系统,前台系统+后台管理系统开发实战,可用于大论文凑工作量或毕设必备,全网最详细教程

手把手教你完成YOLOv10 PySide6目标检测界面搭建,使用Qt6设计YOLOv10检测系统,前台系统+后台管理系统开发实战,可用于大论文凑工作量或毕设必备,全网最详细教程

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1732

atcoder库中的网络流用法

【代码】atcoder中的网络流库用法。

zhangtingxiqwq的博客 464

老版QQ原生表情gif动态

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

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Atcoder - 091C 扫描线 and Atcoder - 062D 优先队列 + 前后缀和

<Atcoder - 091C> 扫描线 https://atcoder.jp/contests/abc091/tasks/arc092_a 题意: 有n个红点,n个蓝点,所选的红点和蓝点能够成友好的条件是:红点的横纵坐标分别小于蓝点的横纵坐标。取过的点不能重复取,问最多能构成几对友好。 思路: 定义结构体,将所有红点蓝点统一按照x升序排列。然从后往前扫,碰到蓝点就传入set...

FrozenAllen的博客 836

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

AtCoder Beginner Contest 205F题Grid and Tokens(网络流)

题目链接 大概意思是一个H*W的网格中,有N个点,坐标待取值,坐标有如下N个范围 现在每个点不能有行相同或者列相同的,问最多能放多少个点上去。 emmm 这个显然是网络流 建模大概长这样子 #include <bits/stdc++.h> #include <stdlib.h> #include <algorithm> #include <stdio.h> #include <string.h> #include <queue>

weixin_45948940的博客 346

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

AtCoder Beginner Contest 355 D - Intersecting Intervals 一维扫描线,有多少对相交线段

来了新边,算他此刻与多少条边相交,加到总数中。从左往右扫描,记录当前边数。

JK01WYX的博客 451

AtCoder Beginner Contest 263 G.Erasing Prime Pairs(二分图最大匹配-网络流)

LINE Verda Programming Contest(AtCoder Beginner Contest 263)D.Erasing Prime Pairs(二分图最大匹配-网络流)

小衣同学的博客 618

Atcoder ARC 077 E - guruguru 差分

题意: 你有一个遥控器用来控制电视亮度m,遥控器上有两个按键,现在要确定一个“喜欢”亮度,使得操作次数最少。 按键: 每次把亮度+1,当亮度等于m时,按下按键亮度会变成1。 按下按键会直接将亮度调整的你最初设定的“喜欢”亮度。 数据范围: 2≤n,m≤1052≤n,m≤10^5 1≤ai≤m1≤ai≤m ai≠ai+1ai≠ai+1 算法: 开一

Cherries 1186

AtCoder Regular Contest 077 E - guruguru(贪心+差分标记)

题目链接http://arc077.contest.atcoder.jp/tasks/arc077_c题目大意有一个m级调光的灯,他有两个键,一个可以使亮度+1, 一个可以使灯到指定亮度, 如果亮度为m时再按第一个键,亮度会变为1 给你n个亮度,问你从亮度1开始模拟n个亮度最小按键次数是多少思路设cnt[i]表示第二个键设在i位置能比按第一个键节省的按键次数设l = op[i], r = op[i

lin的博客 705

AtCoder4505 [AGC029F] Construction of a tree(二分图+网络流+dfs+构造)

神仙构造完全不是吾等凡人能懂。

1065

AtCoder Regular Contest 107 F - Sum of Abs(网络流最小割)

题目链接 题意就是给定一个无向图,每个点有权值ai,bia_i,b_iai​,bi​,现在需要删去其中的一些点,其中删去一个点的花费为aia_iai​,删点后的图的分数为每一个联通块的分数之和,一个联通块的分数是这个联通块的点的bib_ibi​的和的绝对值。要求删点后的图的分数减去删点的花费的最大值(n,m<=300n,m<=300n,m<=300) 很妙的最小割题 对于一个联通块,取绝对值之后就是这个联通块内的所有点的和乘上+1或者-1 这样我们就可以考虑给每一个没有删去的点赋上一个额外

一个蒟蒻的博客 630

AtCoder AGC034D Manhattan Max Matching (网络流)

题目链接 https://atcoder.jp/contests/agc034/tasks/agc034_d 题解 降智了没想出来建图……(不过这场是真的DE放反了) 注意到曼哈顿距离有一个重要的性质: 合法的最大,也就是对于任意维数两个点的曼哈顿距离而言,假设我们把每个绝对值符号任意地改变成正号或者负号,那么合法的(实际的)曼哈顿距离是这所有值里最大的。证明显然。 那么既然我们求的是最...

suncongbo's blog 423

AtCoder Regular Contest 061 E - Snuke‘s Subway Trip(建图 + dijkstra最短路 / 0/1bfs / 并查集)

这个建图啊啊啊,差一点点就那么一点点!!

294

【ARC106E】 Medals 【网络流】【最小割】【FWT】

题意 有NNN个人(N≤18N\leq 18N≤18),第iii个人出现AiA_iAi​天然后消失AiA_iAi​天(Ai≤105A_i\leq 10^5Ai​≤105),循环下去。每天可以给某一个出现的人发一块奖牌,问最少要多少天才能让任意一个人都有至少KKK块奖牌(K≤105K\leq 10^5K≤105)。 分析 首先二分答案,这样就转化为了一个判定性问题。 考虑一个简单的网络流建模,SSS向每个人连一条容量为KKK的边,每个人向他出现的一天连一条容量为111的边,每一天向TTT连一条容量为111的边

2016gdgzoi471 387
上一篇: [BZOJ4923][Lydsy六月份月赛 .G][平衡树]K小值查询
下一篇: [AtCoder ARC077 .F] [字符串] [乱搞] SS
LowestJN
博客等级 码龄10年 76粉丝 422原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值