URAL - 1495

这是在dp的专题里写了,想了半天的dp,其实就是暴力。。。

题目大意:给你一个n,问你在30位以内有没有一个只由1或2 构成的数被 n 整除,如果

有则输出最小的那个,否则输出Impossible。

思路:因为位数是30,所以我们不能直接暴力,这样的复杂度是2^30次。那么其实我们

可以分段暴力,我们只要求出15位的所有余数的最小值,我们再处理处由15数字组成的余数,

如果答案超过十五位,我们枚举超过15位部分的余数,找对应需要的余数。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll dp[],f[],n;
void dfs(ll pos,ll now)
{
ll mod=now%n;
if(now && (dp[mod]>now || !dp[mod])) dp[mod]=now;
if(pos==)
{
if(!f[mod] || f[mod]>now) f[mod]=now;
return;
}
dfs(pos+,now*+);
dfs(pos+,now*+);
}
int main()
{
cin>>n;
if(n==)
{
puts("");
return ;
}
if(n==)
{
puts("");
return ;
}
dfs(,);
if(dp[])
{
cout<<dp[]<<endl;
return ;
}
ll ans1=-,ans2=-;
for(ll i=;i<n;i++)
{
if(!dp[i]) continue;
ll now=i;
for(int j=;j<=;j++)
{
now=now*%n;
}
ll p=n-now;
if(!f[p]) continue;
if(ans1==- || ans1>dp[i])
{
ans1=dp[i];
ans2=f[p];
}
}
if(ans1==-) puts("Impossible");
else printf("%I64d%I64d\n",ans1,ans2);
return ;
}

URAL - 1495 One-two, One-two 2的更多相关文章

  1. Regionals 2012 :: Chengdu

    题目连接 排行榜 A和I都是签到题 按位BFS K Yet Another Multiple Problem 题意:给一些可以用的数字,求最小的数,它由特定的数字组成且是n的倍数 分析:暴力枚举不可行 ...

  2. 【BFS】HDU 1495

    直达–> HDU 1495 非常可乐 相似题联动–>POJ 3414 Pots 题意:中文题,不解释. 思路:三个杯子倒来倒去,最后能让其中两个平分即可.可能性六种.判定的时候注意第三个杯 ...

  3. HDU 1495 非常可乐

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=103711#problem/M /*BFS简单题 链接地址: http://acm.hdu ...

  4. 后缀数组 POJ 3974 Palindrome && URAL 1297 Palindrome

    题目链接 题意:求给定的字符串的最长回文子串 分析:做法是构造一个新的字符串是原字符串+反转后的原字符串(这样方便求两边回文的后缀的最长前缀),即newS = S + '$' + revS,枚举回文串 ...

  5. ural 2071. Juice Cocktails

    2071. Juice Cocktails Time limit: 1.0 secondMemory limit: 64 MB Once n Denchiks come to the bar and ...

  6. ural 2073. Log Files

    2073. Log Files Time limit: 1.0 secondMemory limit: 64 MB Nikolay has decided to become the best pro ...

  7. ural 2070. Interesting Numbers

    2070. Interesting Numbers Time limit: 2.0 secondMemory limit: 64 MB Nikolay and Asya investigate int ...

  8. ural 2069. Hard Rock

    2069. Hard Rock Time limit: 1.0 secondMemory limit: 64 MB Ilya is a frontman of the most famous rock ...

  9. ural 2068. Game of Nuts

    2068. Game of Nuts Time limit: 1.0 secondMemory limit: 64 MB The war for Westeros is still in proces ...

随机推荐

  1. Python生成唯一id的方法

    1. uuid import uuid def create_uid(): return str(uuid.uuid1()) if __name__ == '__main__': print(type ...

  2. DIV仿textarea文本域,contenteditable如何只能输入纯文本

    对于支持HTML5浏览器有2种方法: 1. HTML5 <div contenteditable="plaintext-only"></div> 2.  C ...

  3. VUE2.0 饿了吗视频学习笔记(三):VUE2.0取消了v-link

    https://gitee.com/1981633/vue_study.git 源码下载地址,随笔记动态更新中 写法如下 <div class="tab-item"> ...

  4. u-boot移植(一)---准备工作

    一.工具链的制作 1.1 工具 软件工具:crosstool-ng 下载地址:git clone https://github.com/crosstool-ng/crosstool-ng crosst ...

  5. 改变checkbox的默认样式

    针对于CheckBox默认样式的改变,和选中状态的改变 <label class="checkBox"><input type="checkbox&qu ...

  6. xargs -i和-I的区别【转】

    xargs与find经常结合来进行文件操作,平时删日志的时候只是习惯的去删除,比如  # find . -type f -name "*.log" | xargs rm -rf * ...

  7. ES系列十七、logback+ELK日志搭建

    一.ELK应用场景 在复杂的企业应用服务群中,记录日志方式多种多样,并且不易归档以及提供日志监控的机制.无论是开发人员还是运维人员都无法准确的定位服务.服务器上面出现的种种问题,也没有高效搜索日志内容 ...

  8. 默认以管理员身份运行VS2013/15/17

    方法如下: 1.右击VS的快捷方式,选择[属性],打开属性对话框,再点击[高级]按钮,如下图所示: 2.再勾选[用管理员身份运行],点击[确定]即可: 然后就可以双击VS快捷方式,直接以管理员身份运行 ...

  9. java中不同类型的数值占用字节数

    在Java中一共有8种基本数据类型,其中有4种整型,2种浮点类型,1种用于表示Unicode编码的字符单元的字符类型和1种用于表示真值的boolean类型.(一个字节等于8个bit) 1.整型 类型 ...

  10. ES6的相关信息

    ECMAScript 是什么? ECMAScript 是 Javascript 语言的标准.ECMA European Computer Manufactures Association(欧洲计算机制 ...