POJ 1426:Find The Multiple
Time Limit: 1000MS | Memory Limit: 10000KB | 64bit IO Format: %I64d & %I64u |
Description
digits.
Input
Output
Sample Input
2
6
19
0
Sample Output
10
100100100100100100
111111111111111111
题意是要找到input数的一个倍数,该倍数其十进制只含有0和1。
刚刚看完了广度优先搜索,A了几道题之后,做这个题卡住了,原因是不知道怎么用广度搜索表示十进制只有0 1的数。结果看了discuss才知道一开始用1,之后1导出10 11,10导出100 101,11导出110 111.这么一直下去就能有所有的数了。觉得嗯嗯,不错(。。。)
之后是自己建队列,结果莫名其妙地MLE,我也真是什么错误都见识过了,不知道怎么办,索性因为输入时大于等于1小于等于200的,得到结果打表吧。
打表代码:
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>
#include <queue>
#include <cstring>
#pragma warning(disable:4996)
using namespace std; long long temp;
queue<long long> q; int main()
{
freopen("i.txt","r",stdin);
freopen("o.txt","w",stdout); __int64 test,temp;
while(1)
{
cin>>test; if(test==0)
break;
while(q.size())q.pop(); q.push(1);
while(1)
{
temp=q.front();
q.pop();
if(temp%test==0)
{
cout<<"a["<<test<<"]="<<temp<<";"<<endl;
break;
}
else
{
q.push(temp*10);//亮点在于所有0 1组成的十进制的数都可以这样广度搜索出来,这种想法很亮。
q.push(temp*10+1);
} }
}
return 0;
}
最终代码:
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>
#include <queue>
#include <cstring>
#pragma warning(disable:4996)
using namespace std; long long a[205]; int main()
{
a[1]=1;
a[2]=10;
a[3]=111;
a[4]=1100;
a[5]=100;
a[6]=11010;
a[7]=11011;
a[8]=11000;
a[9]=111111111;
a[10]=1000000;
a[11]=1000010;
a[12]=1001100;
a[13]=1010100;
a[14]=1011010;
a[15]=1100010;
a[16]=1110000;
a[17]=1110100;
a[18]=10111111110;
a[19]=100111;
a[20]=101000;
a[21]=101010;
a[22]=110000;
a[23]=110101;
a[24]=111000;
a[25]=111100;
a[26]=11001000010;
a[27]=11010111111;
a[28]=11011000000;
a[29]=11011000111;
a[30]=11011001010;
a[31]=11011001011;
a[32]=11011100000;
a[33]=11011100001;
a[34]=11011101110;
a[35]=11011110110;
a[36]=110111111100;
a[37]=111000000000;
a[38]=111000010010;
a[39]=111001000110;
a[40]=111001001000;
a[41]=111001010110;
a[42]=111010011000;
a[43]=111101111110;
a[44]=111110000100;
a[45]=111110011110;
a[46]=1001111110;
a[47]=1010001001;
a[48]=1010010000;
a[49]=1010010001;
a[50]=1010010100;
a[51]=1010111100;
a[52]=1011101000;
a[53]=1100000001;
a[54]=11011111110;
a[55]=11100000010;
a[56]=11100110000;
a[57]=11110001100;
a[58]=11110100100;
a[59]=11111100011;
a[60]=11111111100;
a[61]=1000101100;
a[62]=1010011000;
a[63]=1111011111;
a[64]=1010000000000;
a[65]=1010000000100;
a[66]=1010000101110;
a[67]=1010001101100;
a[68]=1010001110000;
a[69]=1010011100001;
a[70]=1010011110010;
a[71]=1010110000110;
a[72]=1110111111000;
a[73]=1111010000110;
a[74]=1111010100000;
a[75]=1111010111100;
a[76]=1111011111000;
a[77]=1111100000010;
a[78]=1111101010110;
a[79]=1111101101100;
a[80]=1111101110000;
a[81]=1111110001101;
a[82]=1111110111010;
a[83]=10010111001;
a[84]=10011101100;
a[85]=10011110110;
a[86]=10100101010;
a[87]=10100111010;
a[88]=10110001000;
a[89]=10111111110;
a[90]=11011111110;
a[91]=11011111111;
a[92]=11101111000;
a[93]=11111010111;
a[94]=1000011010;
a[95]=1000101100;
a[96]=1001100000;
a[97]=1001101110;
a[98]=1010110010;
a[99]=1101111111111111111;
a[100]=1000000;
a[101]=1000001;
a[102]=1000110;
a[103]=1110000000010110110;
a[104]=1110000000011110000;
a[105]=1110000000011110110;
a[106]=1110000001010000100;
a[107]=1110000001011001101;
a[108]=1110000001011101100;
a[109]=1110000001110010101;
a[110]=1110000001110011000;
a[111]=1110000001110011100;
a[112]=1110000010000000000;
a[113]=1110000010001000011;
a[114]=1110000010001101110;
a[115]=1110000010010110110;
a[116]=1110000010011101100;
a[117]=1110000010011110010;
a[118]=1110000010101000110;
a[119]=1110000010101100111;
a[120]=1110000010101111000;
a[121]=1110000010110100010;
a[122]=1110000010111000110;
a[123]=1110000010111001100;
a[124]=1110000010111111100;
a[125]=1110000011000000000;
a[126]=1110000011000011110;
a[127]=1110000011000101110;
a[128]=1110000011010000000;
a[129]=1110000011101001001;
a[130]=1110000011101111000;
a[131]=1110000011110111100;
a[132]=1110000100000001100;
a[133]=1110000100000111110;
a[134]=1110000100111100000;
a[135]=1110000100111100010;
a[136]=1110000101001100000;
a[137]=1110000101100000111;
a[138]=1110000101110100100;
a[139]=1110000101110100101;
a[140]=1110000101110110000;
a[141]=1110000110001100101;
a[142]=1110000111000100100;
a[143]=1110000111110000110;
a[144]=1110000111110010000;
a[145]=1110000111111011010;
a[146]=1110001000000010110;
a[147]=1110001000010110110;
a[148]=1110001000010111100;
a[149]=1110001000011010010;
a[150]=1110001000011011100;
a[151]=1110001000011100010;
a[152]=1110001000101101000;
a[153]=1110001000101101001;
a[154]=1110001001000001110;
a[155]=1110001001001001100;
a[156]=1110001001011110000;
a[157]=1110001010010000110;
a[158]=1110001010011010100;
a[159]=1110001010101010001;
a[160]=1110001010101100000;
a[161]=1110001011010110100;
a[162]=1110001011011001000;
a[163]=1110001011101010101;
a[164]=1110001011101110000;
a[165]=1110001011110101110;
a[166]=1110001100000111000;
a[167]=1110001100100001001;
a[168]=1110001100101110000;
a[169]=1110001101001001001;
a[170]=1110001101001110000;
a[171]=1110001101010000110;
a[172]=1110001101111101000;
a[173]=1110001101111110010;
a[174]=1110001110011000100;
a[175]=1110001110011010000;
a[176]=1110001111000100000;
a[177]=1110001111010110011;
a[178]=1110010001011110100;
a[179]=1110010010110111011;
a[180]=1110010010111000100;
a[181]=1110010011001101001;
a[182]=1110010011010000100;
a[183]=1110010011011010000;
a[184]=1110010011011110000;
a[185]=1110010011100001100;
a[186]=1110010011111011100;
a[187]=1110010100000110001;
a[188]=1110010101001111000;
a[189]=1110010110000101100;
a[190]=1110010110000110100;
a[191]=1110010110010010001;
a[192]=1110010110111000000;
a[193]=1110011000000010110;
a[194]=1110011000001000010;
a[195]=1110011000001111000;
a[196]=1110011000010010000;
a[197]=1101000101;
a[198]=1111111111111111110;
a[199]=111000011;
a[200]=1000;
long long test; while(1)
{
cin>>test; if(test==0)
break;
cout<<a[test]<<endl;
} return 0;
}
还是觉得0 1表示那里是亮点,乘以10,乘以10+1就能推出所有了,我当时怎么就没想到呢???
版权声明:本文为博主原创文章,未经博主允许不得转载。
POJ 1426:Find The Multiple的更多相关文章
- 【POJ - 1426】Find The Multiple(dfs)
-->Find The Multiple 原文是英语,直接上中文了 Descriptions: 给定一个正整数n,请编写一个程序来寻找n的一个非零的倍数m,这个m应当在十进制表示时每一位上只包含 ...
- 广搜+打表 POJ 1426 Find The Multiple
POJ 1426 Find The Multiple Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 25734 Ac ...
- POJ 1426 Find The Multiple --- BFS || DFS
POJ 1426 Find The Multiple 题意:给定一个整数n,求n的一个倍数,要求这个倍数只含0和1 参考博客:点我 解法一:普通的BFS(用G++能过但C++会超时) 从小到大搜索直至 ...
- DFS/BFS(同余模) POJ 1426 Find The Multiple
题目传送门 /* 题意:找出一个0和1组成的数字能整除n DFS:200的范围内不会爆long long,DFS水过~ */ /************************************ ...
- POJ 1426 Find The Multiple(寻找倍数)
POJ 1426 Find The Multiple(寻找倍数) Time Limit: 1000MS Memory Limit: 65536K Description - 题目描述 Given ...
- POJ.1426 Find The Multiple (BFS)
POJ.1426 Find The Multiple (BFS) 题意分析 给出一个数字n,求出一个由01组成的十进制数,并且是n的倍数. 思路就是从1开始,枚举下一位,因为下一位只能是0或1,故这个 ...
- BFS 或 同余模定理(poj 1426)
题目:Find The Multiple 题意:求给出的数的倍数,该倍数是只由 1与 0构成的10进制数. 思路:nonzero multiple 非零倍数 啊. 英语弱到爆炸,理解不了题意... ...
- 数字图像处理实验(10):PROJECT 05-01 [Multiple Uses],Noise Generators 标签: 图像处理MATLAB 2017-05-26 23:36
实验要求: Objective: To know how to generate noise images with different probability density functions ( ...
- POJ 3321:Apple Tree + HDU 3887:Counting Offspring(DFS序+树状数组)
http://poj.org/problem?id=3321 http://acm.hdu.edu.cn/showproblem.php?pid=3887 POJ 3321: 题意:给出一棵根节点为1 ...
随机推荐
- 「CF650E」Clockwork Bomb
传送门 Luogu 解题思路 显然对于两棵树共有的边,我们不会动它. 考虑第二颗树中有和第一棵树不同的边怎么处理. 我们设 \(fa_1[u],fa_2[u]\) 分别代表 \(u\) 在两棵树中的父 ...
- 最短路径问题:Dijkstra算法
定义 所谓最短路径问题是指:如果从图中某一顶点(源点)到达另一顶点(终点)的路径可能不止一条,如何找到一条路径使得沿此路径上各边的权值总和(称为路径长度)达到最小. 下面我们介绍两种比较常用的求最短路 ...
- 软件环境常识 --dev sit uat
DEV环境:DEV顾名思义就是develop,即代码开发的环境. SIT环境:System Integration Test系统集成测试,开发人员自己测试流程是否走通. UAT环境:User Acce ...
- IdentityServer4专题之六:Resource Owner Password Credentials
实现代码: (1)IdentityServer4授权服务器代码: public static class Config { public static IEnumerable<Identity ...
- vue小程序ref和v-for结合使用得到ref数组的一些问题
项目中需要对每一个民宿里的每一个房间都需要popup弹出层来介绍每一个房间,房间数据都在一个接口(此民宿)上. 主要代码如下: HTML: <view v-for='(item,index) i ...
- 浅谈Spring发展史
1 码农的春天----------Spring来了 Spring官网 :http://www.springframework.org 关于Spring的发展起源要回溯到2002年,当时正是Java E ...
- 六 Hibernate多表操作&级联&外键维护
Hibernate的一对多关联映射 Hibernate的多对多关联映射 数据库表与表之间的关系:一对多,多对多,一对一 一对多:一个部门对应多个员工,一个员工只能属于一个部门.一个客户对应多个联系人, ...
- 分享一款免费的工控组态软件(PCHMI)
PCHMI严格的讲它并不是一款组态软件,也不是一款SCADA软件,而是一个基于.NET构架的DLL文件,开发者可以使用微软的Visual Studio将PCHMI.DLL加载到工具箱里面进行二次开发. ...
- 解决Google浏览器不能打开kubernetes dashboard方法【转】
在这片文章中,我将展示如何在Google Chrome上打开kubernetes dashboard.本文不叙述如何安装搭建docker和kubernetes,有关详情请上网查阅! 很多小伙伴们在自己 ...
- 图像检索:CEDD(Color and Edge Directivity Descriptor)算法 颜色和边缘的方向性描述符
颜色和边缘的方向性描述符(Color and Edge Directivity Descriptor,CEDD) 本文节选自论文<Android手机上图像分类技术的研究>. CEDD具有抽 ...