hdu 4294 Multiple

科技中介服务机构想要提升服务效率,需要哪些数智工具支持?.docx 科技中介服务机构想要提升服务效率,需要哪些数智工具支持? 立即下载

Multiple

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 534    Accepted Submission(s): 138


Problem Description
  Given a positive integer N, you’re to solve the following problem:
  Find a positive multiple of N, says M, that contains minimal number of different digits in base-K notation. If there’re several solutions, you should output the numerical smallest one. By saying numerical smallest one, we compar their numerical value, so 0xA hex < 11 dec.
  You may assume that 1 <= N <= 10 4 and 2 <= K <= 10.
 

Input
  There’re several (less than 50) test cases, one case per line.
  For each test case, there is a line with two integers separated by a single space, N and K.
  Please process until EOF (End Of File).
 

Output
  For each test case, you should print a single integer one line, representing M in base-K notation,the answer.
 

Sample Input
  
10 8 2 3 7 5
 

Sample Output
  
2222 2 111111
 

Source
 


题目:在K进制下,用最少的不同的数,表示成n的倍数

首先要得到一个结论,就是最多用两个数就行了。

证明 :对于一个数字a,可以构造出的数字有a,aa,aaa,aaaa,aaaaa,……

每一个数对于n都有一个余数,余数最多有n个,根据鸽巢原理,前n+1个数中,必然有两个余数相等

那么二者之差,必定为n的倍数,形式为a……a0……0。

有这个结论,就简单了,先枚举一个数,然后枚举两个数,BFS即可


代码:

#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
const int N=10002;
int n,c,k,l;
int pre[N],res[N],step[N],num[2];
char ans[N],re[N];
bool bfs()
{
	queue<int> Q;
	int i,p,q;
	memset(step,0,sizeof(step));
	for(i=0;i<c;i++)
	{
		int y=num[i]%n;
		if(!num[i]||step[y]) continue;
		step[y]=1;
		pre[y]=-1;
		res[y]=num[i];
		Q.push(y);
	}
	while(!Q.empty())
	{
		p=Q.front();Q.pop();
		if(p==0) return true;
		if(l&&step[p]>l) return false;
		for(i=0;i<c;i++)
		{
			q=(p*k+num[i])%n;
			if(!step[q])
			{
				step[q]=step[p]+1;
				pre[q]=p;
				res[q]=num[i];
				Q.push(q);
			}
		}
	}
	return false;
}
int l1;
void solve(int i)
{
	if(pre[i]!=-1) solve(pre[i]);
	re[l1++]=res[i]+'0';
}
bool judge()
{
	int i;
	if(!l||l1<l) return true;
	if(l1>l) return false;
	for(i=0;i<l;i++)
	{
		if(re[i]<ans[i]) return true;
		if(re[i]>ans[i]) return false;
	}
	return false;
}
int main()
{
	int i,j;
	while(~scanf("%d%d",&n,&k))
	{
		l=0;
		bool f=false;
		for(i=1;i<k;i++)
		{
			num[0]=i;c=1;
			if(bfs())
			{
				f=true;
				l1=0;
				solve(0);
				if(judge()) {l=l1;memcpy(ans,re,sizeof(ans));}
			}
		}
		if(!f)
		{
			for(i=0;i<k;i++)for(j=i+1;j<k;j++)
			{
				num[0]=i;num[1]=j;c=2;
				if(bfs())
				{
					l1=0;
					solve(0);
					if(judge()) {l=l1;memcpy(ans,re,sizeof(ans));}
				}
			}
		}
		for(i=0;i<l;i++)putchar(ans[i]);
		puts("");
	}
	return 0;
}



ESP32蓝牙广播数据自定义指南:让你的设备更容易被手机发现 本文详细介绍了如何通过自定义ESP32蓝牙广播数据提升设备在手机端的可发现性。从广播数据结构、扫描响应优化到跨平台兼容性设置,提供了全面的技术指南和实战代码示例,帮助开发者解决智能硬件开发中的蓝牙连接难题。 阅读详情

相关推荐

别再乱调了!Zygo MetroPro软件滤波功能保姆级指南,从均值到鲁棒高斯样条一次讲清

本文深入解析Zygo MetroPro软件的滤波功能,从均值滤波到鲁棒高斯样条等九种算法,帮助用户根据测量对象特性选择最佳滤波组合。通过真实工业案例和参数配置指南,提升光学测量数据的准确性和效率,特别适用于硅晶圆、光学镜片等精密测量场景。

weixin_30888413的博客 158

HDU 4294 Multiple

dfs。给定n,求n的倍数在m进制下所用的数字种类最少,有多个就输出最小的那个。就是把HDU 1664 Different Digits 的代码中的10换成m就过了。 #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #

DotACM 592

本地使用大模型:Ollama+open-webui+AnythingLLM(Windows+linux)

随着大模型的发展,大量的开源模型可以被直接使用。大模型的使用可以选择在云端或者在本地,如果本地存储空间尚可,而且模型需求不是很大的话,我们可以选择在本地部署一个大模型来使用。针对特定的任务需求,进一步在本地去微调我们的大模型。我在windows和linux上都尝试了一遍,这里记录一下过程。

wpqgt的博客 2166

HDU 4294 Multiple【BFS】

结论:任意一个N的的倍数,都可以由最多两个数组组合而成。 证明:AAAA...A % N的值是有限的,那么一定存在个数不同的AA..A组合%N之后的值和它相同。那么这两个组合相减就是N的倍数了。 以上证明只能说明最多需要两个,并不能说明由两个数组成的N的倍数一定是AAAA..A0000的形式,理解一下就可以了。 那么这个题目就可以先判断由一个数组合,然后判断两个数的组合即可。方法是B

智障 1461

JAVA + 海康威视SDK + FFmpeg+ SRS 实现海康威视摄像头二次开发

海康威视SDK接入方案摘要 本文介绍了使用海康威视官方SDK开发物联网平台摄像头接入功能的完整方案。系统采用Java后端集成HCNetSDK控制摄像头,通过FFmpeg将RTSP流转为RTMP推送到SRS流媒体服务器,前端基于HTTP-FLV协议实现视频播放。文章详细说明了开发准备工作,包括SDK下载、SRS部署、FFmpeg安装等关键步骤,并提供了数据库表设计和接口定义。核心部分展示了如何集成海康SDK,包括提取必要代码、加载DLL文件、配置打包插件等具体实现细节,最终形成了一套支持实时预览、回放和下载的

2401_83057947的博客 2265

全国大学校园网—拓扑图欣赏

全国大学网络拓扑图(一百张) 典型十张 1、 中央财经大学 2、国防科技大学 3、济南大学 4、西安石油大学 5、南通大学IPV6网络 6、中国矿业大学 7、青海师范大学 8、内蒙古科技大学 9、三峡大学 10、中共江苏省党校 剩余90张 点赞、评论获取 ...

LiBai'S BLOG 5万+

hdu 4294 Multiple 搜索

假设a,aa,aaa……一直下去,对n取模,一定会出现循环,也就是会有aaaa…aaa和aaa…aa对n取模相同,那么把他们相减得到aaaa…0000,则只出现了2个数字得到了n的倍数。这种方法虽然不是最优,但保证了不同的数不会超过2种,所以可以直接搜索。 枚举所有组合(首先枚举只出现1种数字,再枚举出现2种的),然后搜索就够了,判重时用余数判重。 注意得到答案后要进行字典序比较。 此题不用

929

仿真学习系列(三十八):Sigrity仿真之单端S参数提取

S 参数(Scattering Parameters)是高速信号分析中最基础也最常用的指标,能够全面表征走线、过孔、连接器等互连结构的高频行为。在 Sigrity PowerSI 中,Model Extraction 是最常用的 S 参数提取方式,适用于高速差分线、单端线、过孔、参考平面等各种拓扑结构。 本节将通过示例讲解如何在 PowerSI 中完成一次完整的 S 参数提取流程,包括:对象选择、端口设置、频率范围配置以及结果查看。掌握此方法后,即可对任意高速网络执行阻抗、插损、回损、串扰分析,为进一步的

案例文章,高速信号 838

HDU4294 Multiple

去年省赛教练会汝哥讲过一个结论,至多两个数字就可以拼出任何数的倍数。 证明可以这样,AAAA...AAA若干个A,模X,能得到的余数种类是有限的,至多是1~X-1,那么总会有n个A和m个A这两个数模X余数相等,他们相减就得到了X的倍数,而相减得到的数就是两个数组成的。 这样就可以对一个数先枚举一下,对两个数再枚举一下,找组成的那个数,可以BFS。一个数用来拼数字的时候超过一定长度就可以停下了,...

weixin_30551947的博客 60

GEE土地分类:土地分类精度评定和分类后影像进行(Kmeans,Gmeans,SNIC (Simple Non-Iterative Clustering)聚类分析和滤波(focal_mode)分析

使用聚类分析和滤波分析来进一步处理土地分类后的影像数据。聚类分析可以帮助您识别影像中的相似区域。您可以使用聚类算法,如K均值聚类或层次聚类,将像素分组到具有相似像素值的群集中。这可以帮助您更好地理解图像中的空间模式和结构,并可能揭示有用的信息。滤波分析可以帮助您平滑图像并去除噪声。常见的滤波器包括中值滤波器和高斯滤波器。这些滤波器可以帮助您消除图像中的随机变化,并使其更易于解释和分析。

此星光明博客 2516

倍福PLC--PERSISTENT断电保持数据和BOOT中各文件对应的解析

将D:\TC3程序\TwinCAT Project146\TwinCAT RT(x86)\Plc 文件夹的中三个替换文件复制到:G:\TwinCAT\3.1\Boot\Plc完成替换,如下图。(2) 找到程序所存的路径,编程电脑的D:\TC3程序\TwinCAT Project146路径下,并选择对应系统平台TwinCAT RT(x86)(3) 控制器断电,拔出内存卡,使用读卡器,在编程电脑中打开:(本次测试读卡器为G盘)(5) 开机完成后,TwinCAT自动运行,当前闪灯频率为50ms。

weixin_41883890的博客 2344

hdu 4294 Multiple BFS

Multiple Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 954    Accepted Submission(s): 230 Problem Description   Given a positive

WONDERZY 661

模型实战(16)之StrongSort (OSNET)配合YOLOv5、v7、v8 实现多目标跟踪详解

StrongSort (OSNET)配合YOLOv5、v7、v8 实现多目标跟踪详解

yohnyang的博客 1770

HDU 4294 Multiple bfs

#include &lt;cstring&gt; #include &lt;algorithm&gt; #include &lt;queue&gt; #include &lt;climits&gt; #include &lt;string&gt; #include &lt;iostream&gt; using namespace std; string res,tmp; int min_len,...

weixin_42246923的博客 181

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

HDU 4294 Multiple [搜索]

  求一个K进制下是N的倍数的数,要求这个数使用的数字最少,数字个数相同时取较小的数。   首先有一个结论,至多用两个数字可以构造任意数的倍数。假设只有一个数字吗,由这一个数字构成的数模N的结果只能是0~N-1,由抽屉原理可知必然存在两个数模N的结果相同,这两个数一减,结果有两个数字构成,模N的结果是0。   然后就暴力BFS吧,队列中存的是余数,找到余数为0或者出现已经出现过的余数就返回。每...

weixin_34345560的博客 101

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

hdu4294 Multiple 数学结论 bfs

#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f #define ll __int64 #define mod 1000000007 using namespace std; int n,k,cnt,num[2],len[

Unknown 800

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

HDU 4294 Multiple (数论+bfs)

Multiple Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 616    Accepted Submission(s): 159 Problem Description   Given a positive intege

GentleH's 529

HDU 4294 Multiple(12年成都)

转载请注明出处,谢谢http://blog.youkuaiyun.com/acm_cxlove/article/details/7854526       by---cxlove 题目:在K进制下,用最少的不同的数,表示成n的倍数 http://acm.hdu.edu.cn/showproblem.php?pid=4294  首先要得到一个结论,就是最多用两个数就行了。 证明 :对于一个数字a

窝不是爱酱,喵~~~~ 2515

HDU 4294 Multiple(搜索+数学)

题意: 给定一个n,让求一个M,它是n个倍数并且在k进制之下 M的不同的数字最少。 思路: 这里用到一个结论就是任意两个数可以组成任何数的倍数。知道这个之后就可以用搜索来做了。还有一个问题就是最多找n+1个数,因为由鸽巢原理,这n+1个数当中模上n一定有一个一同的。所以他们一减就是答案。如果找到直接是它的倍数的话,就直接返回。 搜索时保存的是它的余数,如果余数为0 的时候直接返回...

dizhuo0219的博客 205

HDU 4294 Multiple (BFS)

题意: 找出k进制下,n的倍数。。。 总结:一直不会做这题,主要是对倍数,取余,模 等的性质不了解,, #include #include #include #include #include #include #include using namespace std; const int N = 10009; int n,k; int visit[N],nex[N],m,cnt

binwin20 791

HDU 4294 Multiple(12年成都网络赛-G题-BFS)

题目链接:Click here~~ 题意: 找一个 n 的最小倍数 x,使 x 在 k 进制下包含最少种数字。 解题思路: 搜那道题解的时候有人说很类似,就趁热一起刷了。 假如只有一种数字,那么我们可以在 O(N) 的时间内 check ,一共 10 种,总复杂度 O(10 * N)。 假如只有两种数字,那么我们对于特定的两个数,可以依照和那道题目的思路,d

nyist_xiaod 1283

HDU 4474 HDOJ Yet Another Multiple Problem 2012ACM亚洲赛成都赛区K题

HDU 4474 HDOJ Yet Another Multiple Problem 2012ACM亚洲赛成都赛区K题 http://acm.hdu.edu.cn/showproblem.php?pid=4474 比赛的时候犯的错,刚刚写的时候又犯了一次,囧。。。。 题目意思   输入n,m 和 m个字符(数字),要求找到一个最小的n的倍...

weixin_30719711的博客 274

【Linux 命令实战(04):文件内容查看,掌握 cat、less、head、tail】

cat:快速查看文件内容。less:分页浏览文件,支持搜索。head:查看文件开头。tail:查看文件末尾,支持实时跟踪。其中,tail -f是我建议大家重点掌握的命令。在自动化测试工作中,很多时候我们不需要等整个任务结束才分析结果。通过实时跟踪日志,就可以观察程序执行过程,及时发现接口异常、数据库连接失败等问题。当然,本篇还只是文件内容查看的基础。后面我们会继续学习如何从大量日志中筛选关键词、统计错误数量、定位异常记录。

一些微不足道的见解、希望能帮助各位 203
下一篇: hdu 4293 Groups
libing923
博客等级 码龄15年 12粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值