poj 1465 Multiple(bfs+余数判重)
题意:给出m个数字,要求组合成能够被n整除的最小十进制数。
分析:用到了余数判重,在这里我详细的解释了。其它就没有什么了。
- #include<cstdio>
- #include<cmath>
- #include<cstring>
- #include<queue>
- #include<algorithm>
- using namespace std;
- const int MAXN=;
- const int N=;
- struct Node{
- int pre;
- int r;
- int d;
- };
- int vis[MAXN];
- int num[N];
- int n,c,m;
- Node q[MAXN];
- void print(int x)
- {
- if(q[x].pre==-)
- return ;
- print(q[x].pre);
- printf("%d",q[x].d);
- }
- int bfs()
- {
- memset(vis,,sizeof(vis));
- int dl,dr;
- dl=dr=;
- Node u,v;
- u.pre=-;
- u.d=;
- u.r=;
- q[dr++]=u;
- vis[]=;
- int ok=;
- while(dl<dr)
- {
- u=q[dl++];
- for(int i=;i<m;i++)
- {
- int r=u.r*+num[i];
- if(r>=n&&r%n==){
- print(dl-);
- printf("%d\n",num[i]);
- return ;
- }
- r=r%n;
- if(!vis[r]){
- vis[r]=;
- v.r=r;
- v.d=num[i];
- v.pre=dl-;
- q[dr++]=v;
- }
- }
- }
- return -;
- }
- int main()
- {
- int T;
- while(~scanf("%d%d",&n,&m))
- {
- memset(num,-,sizeof(num));
- for(int i=;i<m;i++)
- scanf("%d",&num[i]);
- sort(num,num+m);
- if(n==)
- printf("0\n");
- else{
- int ans=bfs();
- if(ans==-)
- printf("0\n");
- }
- }
- return ;
- }
poj 1465 Multiple(bfs+余数判重)的更多相关文章
- hdu 1226 bfs+余数判重+大数取余
题目: 超级密码 Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- POJ 1465 Multiple (BFS,同余定理)
id=1465">http://poj.org/problem?id=1465 Multiple Time Limit: 1000MS Memory Limit: 32768K T ...
- hdu 1226 超级密码(bfs+余数判重)
题意:略过 分析:用m个数字组成一个能够被n整除的c进制数的最小值,实际上本题的关键就在于这个最小值上. 首先确定我们的思路是从小到大寻找.先查看一位数,即查看着m个数字是否能被n整除:若不能,就查 ...
- hdu1664 bfs+余数判重
input n 不超过50个例子,n==0结束输入 Sample Input 7 15 16 101 0 output 最少个不同数字的n的倍数的x,若不同数字个数一样,输出最小的x Sample O ...
- hdu 4444 Walk (离散化+建图+bfs+三维判重 好题)
Walk Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submi ...
- Keyboarding (bfs+预处理+判重优化)
# #10030. 「一本通 1.4 练习 2」Keyboarding [题目描述] 给定一个 $r$ 行 $c$ 列的在电视上的"虚拟键盘",通过「上,下,左,右,选择」共 $5 ...
- Hdu2437-Jerboas(取余数判重搜索)
Jerboas are small desert-living animals, which resemble mice with a long tufted tail and very long h ...
- POJ 3050 枚举+dfs+set判重
思路: 枚举+搜一下+判个重 ==AC //By SiriusRen #include <set> #include <cstdio> using namespace std; ...
- poj 1426 Find The Multiple (bfs 搜索)
Find The Multiple Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 18012 Accepted: 729 ...
随机推荐
- ARM 汇编指令
ARM汇编程序特点: l 所有运算处理都是发生通用寄存器(一般是R0~R14)的之中.所有存储器空间(如C语言变量的本质就是一个存储器空间上的几个BYTE).的值的处理,都是要传送到通 ...
- java实现音频转换
这里需要用到第三方 ffmpeg.exe package com.convertaudio; import java.io.File;import java.util.ArrayList;import ...
- linux c截断文件
http://www.cnblogs.com/zhuxiongfeng/archive/2010/08/24/1807505.html
- iOS开发--Bison详解连连支付集成简书
"最近由于公司项目需要集成连连支付,文档写的不是很清楚,遇到了一些坑,因此记录一下,希望能帮到有需要的人." 前面简单的集成没有遇到什么坑,在此整理一下官方的集成文档,具体步骤如下 ...
- Emmet语法介绍
例子: (div+p#test>span.test2.test3)*5+p[name="hello"]>div.test4^a*5 <div></di ...
- 【web性能】让css更简洁、高效
用了这么多年的CSS,现在才明白CSS的真正匹配原理,不知道你是否也跟我一样? 看1个简单的CSS: DIV#divBox p span.red{color:red;},按习惯我们对这个CSS 的 ...
- 科普:WiFi是谁申请的专利?高通吗?错!
你给Wi-Fi交过专利费吗?你知道Wi-Fi是谁申请的专利吗? 答:肯定是高通! 错! Wi-Fi技术由澳洲政府的研究机构CSIRO在90年代发明并于1996年在美国成功申请了无线网技术专利.(US ...
- CentOS下判断自己的VPS是OpenVZ的还是Xen的
一般来说,VPS的虚拟化技术,有Xen.OpenVZ.Xen HVM和VMware这几种,那么,如何判断自己的VPS是基于哪种虚拟化技术的呢? 1.执行:ls /proc/命令,一般Xen的VPS,/ ...
- iOS:核心动画具体的类和协议的介绍
核心动画类:CAAnimation.CAPropertyAnimation.CABasicAnimation.CAKeyframeAnimation.CATransition.CAAnimationG ...
- 共有19款Java 文件上传组件开源软件
http://www.oschina.net/project/tag/139/fileupload?lang=19&sort=view