Time Limit: 1 second

Memory Limit: 128 MB

2008北京奥运会,你想成为四川汶川的一名火炬手,结果层层选拔,终于到了最后一关,这一关是一道很难的题:任意给定一个正整数N(N<=100000),求一个最小的正整数M,使得N*M的十进制表示形式里只含有1和0.

【输入格式】

一行,输入一个整数N。

【输出格式】

输出一行,如果有解,输出最小的M,否则输出“No Solution”

【数据规模】

100%的数据保证答案不超过1000000。

Sample Input1

12

Sample Output1

925

【题目链接】:http://noi.qz5z.com/viewtask.asp?id=u236

【题解】



题目给的最后的答案范围不对;

最后的答案最大可能为14708277972909

(并不是题目描述的100W);

所以两个数的乘积会非常大;

但数据会保证两个数的乘积用long long能存的下(最后答案很大的话它相应的输入的N减小了一点);

做法:

首先找到第一个大于n的数字x(x满足所有的数字仅有0和1构成);

之后再用二进制进位的规则不断地给这个数字加1就好;

比如

101001

+1

101010

只不过不是真的加1;比如上面实际上就是加10了;

且这样总能满足数字全由0和1组成;

且为最小;(这样加最多只要加20W次,妥妥地不超);

然后看看能不能被n整除

如果能

就直接输出这个数字除m的结果;就是答案了;

然后结束程序;

//如果直接按照十进制加1枚举,每次还要判断这个数字是不是全由01组成;而且枚举量是巨大的;实际上最多要枚举1e18次。。呵呵



【完整代码】

#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <set>
#include <map>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue>
#include <vector>
#include <stack>
#include <string>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second typedef pair<int,int> pii;
typedef pair<LL,LL> pll; void rel(LL &r)
{
r = 0;
char t = getchar();
while (!isdigit(t) && t!='-') t = getchar();
LL sign = 1;
if (t == '-')sign = -1;
while (!isdigit(t)) t = getchar();
while (isdigit(t)) r = r * 10 + t - '0', t = getchar();
r = r*sign;
} void rei(int &r)
{
r = 0;
char t = getchar();
while (!isdigit(t)&&t!='-') t = getchar();
int sign = 1;
if (t == '-')sign = -1;
while (!isdigit(t)) t = getchar();
while (isdigit(t)) r = r * 10 + t - '0', t = getchar();
r = r*sign;
} const int MAXN = 10+20;
const LL INF = 8e18;
const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
const double pi = acos(-1.0); string s;
int a[MAXN];
int len; LL fi(int b[MAXN])
{
LL t = 0;
rep2(j,len,1)
t=t*10+b[j];
return t;
} int main()
{
//freopen("F:\\rush.txt","r",stdin);
cin >>s;
reverse(s.begin(),s.end());
len = s.size();
rep1(i,1,len)
a[i] = s[i-1]-'0';
LL n = fi(a);
rep1(i,1,len)
if (a[i]>1)
{
int j = i+1;
while (j<=len && a[j]>1) j++;
j--;
a[j]=0;a[j+1]++;
rep1(k,1,j-1)
a[k] = 0;
}
if (a[len+1]>0)len++;
LL t=fi(a);
while (t<INF)
{
if (t%n==0)
{
LL ans = t/n;
cout << ans << endl;
return 0;
}
a[1]++;
rep1(i,1,len)
if (a[i]>1)
a[i+1]++,a[i] = 0;
if (a[len+1]>0) len++;
t = fi(a);
}
puts("No Solution");
return 0;
}

【u236】火炬的更多相关文章

  1. (火炬)MS SQL Server数据库案例教程

    (火炬)MS SQL Server数据库案例教程 创建数据库: CREATE DATABASE TDB //数据库名称 ON ( NAME=TDB_dat,//逻辑文件名 在创建数据库完成之后语句中引 ...

  2. 洛谷——P1988 火炬

    P1988 火炬 题目描述 2008北京奥运会,你想成为四川汶川的一名火炬手,经过层层选拔,终于到了最后一关,这一关是一道很难的题:任意给定一个正整数N(N<=100000),求一个最小的正整数 ...

  3. rqnoj-208-奥运火炬到厦门-dp

    这道题目是把一个连续的串看成一个环. 那么除了原始的求最大字段和外. 还存在一种情况是前面的连续最大值,加上后面的连续最大值. #include<stdio.h> #include< ...

  4. RQNOJ 202 奥运火炬登珠峰:01背包

    题目链接:https://www.rqnoj.cn/problem/202 题意: 登珠峰需要携带a(L)O2和t(L)N2. 有n个气缸可供选择.其中第i个气缸能装下a[i](L)O2和t[i](L ...

  5. 某中国500强企业BI系统成功应用案例

    随着某集团20多年的不断发展发展,现已成为中国500强.中国大企业集团竞争力前25强.中国信息化标杆企业和国家重点火炬高新技术企业.拥有总资产数十亿元.员工数万名,涉足电力.家电.能源.等多个行业,并 ...

  6. 如何从零基础学习VR

    转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...

  7. 学习indy组件之一idhttp的使用方法

    登录 注册 百度首页 新闻 网页 贴吧 知道 音乐 图片 视频 地图 百科 文库 经验 搜索答案我要提问 首页 分类 公社 知道行家 问医生 高质量问答 经验 个人中心手机知道开放平台   关于del ...

  8. 二模12day1解题报告

    T1.笨笨与电影票(ticket) 有n个1和m个0,求每个数前1的个数都大于等于0的个数的排列数. 非常坑的一道题,推导过程很烦.首先求出所有排列数是 C(n+m,m),然后算不合法的个数. 假设存 ...

  9. Camera.Parameters 参数

    public class Camera.Parameters extends Object java.lang.Object    ↳ android.hardware.Camera.Paramete ...

随机推荐

  1. phpcms 允许英文目录有空格

    大家都用过phpcm添加栏目吧,在添加栏目里面,有个选项是 英文目录,这里目录可以用作伪静态功能.这么英文不能有空格等特殊字符.但是如果页面中需要引用包含空格的字符呢,例如,关于我们页面,我要显示英文 ...

  2. Python 模块chardet安装过程(windows环境)

    最近需要一个txt文件的批量转码功能,在网上找到一段批量处理java源文件的py程序如下: #-*- coding: utf-8 -*- import codecs import os import ...

  3. SPARK Day04

    广播变量和累加器 广播变量 广播变量理解图 广播变量使用 val conf = new SparkConf() conf.setMaster("local").setAppName ...

  4. 简单利用XSS获取Cookie信息实例演示

    简单利用XSS获取Cookie信息实例演示   首先要找到一个有XXS的站,这里就不整什么大站了,谷歌一下inurl:'Product.asp?BigClassName',搜出来的命中率也比较高.随便 ...

  5. 【JZOJ4876】【NOIP2016提高A组集训第10场11.8】基因突变

    题目描述 邪恶的707刚刚从白垩纪穿越回来,心中产生了一个念头:我要统治人类! 但是统治人类是很庞大且复杂的一个工程,707尝试了洗脑,催眠,以及武装镇压都没能成功地统治人类,于是她决定从科学上对人类 ...

  6. [ITOO]动态建库 标签: 库数据库mysql 2016-07-17 21:23 241人阅读 评论(2) 收

    最近一直在做权限系统的动态建库,动态建库,说白了就是在你点击"注册"按钮的时候,根据你输入的信息,来创建一个企业所需要的数据库的过程,因为现阶段并没有提供购买等功能,所以暂时咱们是 ...

  7. TIJ——Chapter Fourteen:Type Information

    Runtime type information(RTTI) allows you to discover and use type information while a program is ru ...

  8. Uva 10334

    UVa 10334 这道题几乎和UVa 495是一样的. #include<iostream> #include<cstdio> #define mod 1000000 usi ...

  9. 可变形参 Day07

    package com.sxt.kebianxingcan; /* * 可变形参 * 声明:数据类型...标识符 * 作用:将实参作为数组处理 * 规则:一个方法只能有一个可变形参并且作为最后一个形参 ...

  10. Django ORM------Mysql

    ORM操作 select * from tb where id > 1 #对应关系 models.tb.objects.filter(id__gt=1) models.tb.objects.fi ...