[ABC077D] Small Multiple 同余最短路

之前写过一篇介绍同余最短路的文章,其实写的蛮烂得,鸽了这道题好久,今天中午好不容易算是做出来了。

题意

给定一个 \(K\),求出来 \(V=xk\)(\(x\) 为正整数),使得这个 \(V\) 的各数位和是最小的。

这个 \(K\) 的级别是 1e5 的。

做法

我们发现直接去具体搞明白到底是哪一个数几乎是不可能的,我们不排除有一个长到你无法想象的树中间有一大堆 0 最后还是最优的,所以我们基本上否决的直接得出数的想法了。

那么我们的重心就自然而然转向维护数位和上了。

我们不难发现一个 \(V\) 的必然的性质是 \(V%K=0\),而这个 \(K\) 的范围又是如此的眉清目秀。

为什么不维护所有数呢?我这么想到。

往同余最短路考虑一下。

我们设 \(dis[i]\) 表示 \(%K=i\) 的数字中,数位和最小的数字是多少。

我们选择从小到大思考,一个数想到一个更大的数,归根结底有两种方式。

一个是加一,一个是乘十,其他的都是这个的组合。

所以我们不难列出来约束条件。

\(f_i \ge f_{(i+10)%K}\)

\(f_i +1 \ge f_{(i+1}%K\)

这样就显然起来了,按照这个约束连边就行了,应该都会同余最短路和差分约束吧,到这里就结束了。

代码↓

#include <bits/stdc++.h>
using namespace std;
const int MN=1e6+116;
struct Node{int nxt, to, w;
}node[MN];
int head[MN], tottt;
void insert(int u, int v, int w){node[++tottt].to=v;node[tottt].w=w;node[tottt].nxt=head[u];head[u]=tottt; return;
}
int K;
int dis[MN], vis[MN];
void Dijkstra(int s){memset(dis,0x3f,sizeof(dis));memset(vis,false,sizeof(vis));priority_queue <pair<int,int>> q;q.push({0,s}); dis[s]=1;while(!q.empty()){int u=q.top().second; q.pop();if(vis[u]) continue; vis[u]=true;for(int i=head[u];i;i=node[i].nxt){int v=node[i].to, w=node[i].w;if(dis[v]>dis[u]+w){dis[v]=dis[u]+w;q.push({-dis[v],v});}}}
}
int main(){ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); cin>>K;for(int i=0; i<K; ++i){insert(i,(i*10)%K,0);insert(i,(i+1)%K,1);}Dijkstra(1);cout<<dis[0]<<'\n';return 0;
}

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

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

相关文章

20250509_信安一把梭_黑客

流量分析, 应急响应, webshell, 信安一把梭Tags:流量分析, 应急响应, webshell, 信安一把梭 0x00. 题目 某天晚上安服仔小辉辉上班摸鱼期间突然发现服务器登入页面被挤掉线了,于是第六感告诉他,服务器肯定是被黑客攻…

c# 保存文件 - 先保存到临时文件,保存成功后修改文件名

public static class FileSafeWrite{public static void WriteAllTextAtomically(string filePath, string content){// 定义临时文件路径string tempFilePath = filePath + ".tmp";try{// 将内容写入临时文…

达芬奇标记测量线文字标题动画预设(Tracked Measuring Lines)使用指南

在工程演示、科技解析、产品展示等视频创作中,专业的测量标注动画能极大提升内容的精准度与科技感。分享一款轻量化达芬奇预设 ——Tracked Measuring Lines,37MB 小巧体积即可实现 4K 分辨率的测量线文字标题动画一…

20250427_信安一把梭_No11

流量分析, 应急响应, ftp, ZIP, CRC碰撞, DASCTF, 信安一把梭Tags:流量分析, 应急响应, ftp, ZIP, CRC碰撞, DASCTF, 信安一把梭 0x00. 题目请通过分析数据包找出数据包里面一共有多少个压缩包。 请把破解出来的11压缩…

运营商数据分类分级:最佳实践、典型案例与智能化方案

运营商数据分类分级是构建数据安全体系的基石,直接满足《数据安全法》第21条合规要求,赋能5G新业务创新。通过AI驱动技术,实现99%识别率和10万张表/3小时处理效率,解决数据资产分散、敏感字段识别效率低下等核心痛…

AT_abc413_g [ABC413G] Big Banned Grid

考虑到障碍格子很少,从障碍格子入手,发现走不到 \(( n, m)\) 相当于有一条障碍线(八连通)将其分隔开来,发现就是从顶部往底部看有没有最短路,这样复杂度就只有关于障碍格子数了。

.NET性能优化-使用RecyclableBuffer取代RecyclableMemoryStream

介绍 RecyclableBuffer 是一个高性能的缓冲区管理库,它使用 ArrayPool<byte> 实现可回收内存段。该系统提供了两个互补的缓冲区写入器实现:一个针对连续内存方案进行了优化,另一个针对多段数据处理进行了优化…

css样式:button边框贪吃蛇加载效果

<!doctype html> <html lang="zh-CN"> <head> <meta charset="utf-8"/> <title>90x28圆角矩形蛇段动画</title> <script src="https://code.jquery.…

什么是NIC(网络接口卡)?

网络接口卡(NIC)是一种基本的硬件组件,它使计算机或设备能够连接到网络。它可以集成到主板中,也可以作为扩展卡安装在计算机上,这标志着它在计算机网络中不可或缺的作用。 NIC管理网络和计算机之间的数据转换和…

视频剪辑效率翻倍!CyberLink PowerDirector 从入门到专业的全能解决方案

对于视频编辑爱好者、自媒体创作者以及初入行业的剪辑新人而言,一款功能全面且操作友好的剪辑工具,是提升创作效率与作品质感的关键。CyberLink PowerDirector(威力导演)作为一款综合性视频剪辑软件,既具备满足专…

20250415_信安一把梭_encode

流量分析, 应急响应, tcp, 数据解析, pyshark, 正则匹配, json, 信安一把梭Tags:流量分析, 应急响应, 数据解析, tcp, pyshark, 正则匹配, json, 信安一把梭 0x00. 题目 请分析某设备导出的流量包,找到攻击IP和正确密…

日常练习另一部分

上次我的练习是使用vue3进行的前端训练,我上一个博客简单实现了使用路由的单页面跳转,他的好处的所有页面一起加载,并且只使用一个main和app.vue,我又在原有的基础上尝试了多页面跳转。 about.html <!DOCTYPE h…

每天一个安卓测试开发小知识之 (六)---常用的adb 命令第四期

每天一个安卓测试开发小知识之 (六)---常用的adb 命令第四期本期继续介绍adb命令root adb 查看app进程id adb服务端重启 获取当前界面的xml adb命令输入text1. root adbroot的作用是什么 如何进入root 如何退出 什么…

SAP-ABAP中STOP,EXIT,CHECK,RETURN,CONTINUE,LEAVE,REJECT的区别

Stop 命令使用该命令的程序位置INITIALIZATION, AT SELECTION-SCREEN, START-OF-SELECTION和GET 事件中处理说明1、 当在INITIALIZATION事件执行该命令,系统将直接触发应用服务器和客户端屏幕元素的发送;影响后续模块…

Arduino ide 软件 不建议大家使用 缺点多多

任何一个产品 ,不说缺点的 ,都是有问题的。 Arduino ide 自带的 下载开发板 安装包 和库 安装包 几乎都会失败!很慢 时间很长

Apifox调试报错信息

Apifox调试报错信息invalid character - in numeric literal错误 解决:在body如下设置 、 400 报错 解析请求参数发生错误 - invalid character n looking for beginning of object key string

视频融合平台EasyCVR国标GB28181视频诊断功能详解与实践

视频融合平台EasyCVR国标GB28181视频诊断功能详解与实践一、引言:海量摄像头下的运维困境 在智慧城市、智慧园区、大型连锁等场景中,动辄接入成百上千路GB28181监控摄像头。传统的运维方式高度依赖人工7x24小时盯屏,…

Refit Consul

类似于 Refit 的 HTTP 客户端库 这些库通常都基于 HttpClient,并提供了一种声明式或更简洁的方式来定义和调用 RESTful API。库名 描述 特点Flurl.Http 简洁、流畅的 HTTP 客户端库,支持流式 API。 语法简洁,链式调…

故障处理:Oracle 19.20未知BUG导致oraagent进程内存泄漏的案例处理

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效果更佳。今天朋友在做…