URAL - 1495 One-two, One-two 2
这是在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的更多相关文章
- Regionals 2012 :: Chengdu
题目连接 排行榜 A和I都是签到题 按位BFS K Yet Another Multiple Problem 题意:给一些可以用的数字,求最小的数,它由特定的数字组成且是n的倍数 分析:暴力枚举不可行 ...
- 【BFS】HDU 1495
直达–> HDU 1495 非常可乐 相似题联动–>POJ 3414 Pots 题意:中文题,不解释. 思路:三个杯子倒来倒去,最后能让其中两个平分即可.可能性六种.判定的时候注意第三个杯 ...
- HDU 1495 非常可乐
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=103711#problem/M /*BFS简单题 链接地址: http://acm.hdu ...
- 后缀数组 POJ 3974 Palindrome && URAL 1297 Palindrome
题目链接 题意:求给定的字符串的最长回文子串 分析:做法是构造一个新的字符串是原字符串+反转后的原字符串(这样方便求两边回文的后缀的最长前缀),即newS = S + '$' + revS,枚举回文串 ...
- ural 2071. Juice Cocktails
2071. Juice Cocktails Time limit: 1.0 secondMemory limit: 64 MB Once n Denchiks come to the bar and ...
- ural 2073. Log Files
2073. Log Files Time limit: 1.0 secondMemory limit: 64 MB Nikolay has decided to become the best pro ...
- ural 2070. Interesting Numbers
2070. Interesting Numbers Time limit: 2.0 secondMemory limit: 64 MB Nikolay and Asya investigate int ...
- ural 2069. Hard Rock
2069. Hard Rock Time limit: 1.0 secondMemory limit: 64 MB Ilya is a frontman of the most famous rock ...
- 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 ...
随机推荐
- 无线DOS攻击
1.无线连接状态 IEEE 802.11定义了一种客户端状态机制,用于跟踪工作站身份验证和关联状态.无线客户端和AP基于IEEE标准实现这种状态机制.成功关联的客户站停留在状态3,才能进行无线通信.处 ...
- 进度条QProgressBar
import sys from PyQt5.QtCore import Qt, QTimer from PyQt5.QtWidgets import QApplication, QWidget, QP ...
- mysql 查询优化~join算法
一简介:参考了几位师兄,尤其是M哥大神的博客,让我恍然大悟,赶紧记录下二 原理: mysql的三种算法 1 Simple Nested-Loop Join 将驱动表/外部表的结果集作为循环基础数据,然 ...
- Android性能优化系列之Bitmap图片优化
https://blog.csdn.net/u012124438/article/details/66087785 在Android开发过程中,Bitmap往往会给开发者带来一些困扰,因为对Bitma ...
- 【学习博客】Python学习初体验
本周是正式开始学习Python的第一周.很久不写代码了,毕业第5年了,期间几乎没怎么动过手.这段时间比较规律.密集的学习又让我找回了当时的感觉,还不算陌生,我挺喜欢的这种能实实在在看到自己知识增长的状 ...
- python3字符串与文本处理
每个程序都回涉及到文本处理,如拆分字符串.搜索.替换.词法分析等.许多任务都可以通过内建的字符串方法来轻松解决,但更复杂的操作就需要正则表达式来解决. 1.针对任意多的分隔符拆分字符串 In [1]: ...
- Linux系统7z文件解压
获取p7zip_16.02_src_all.tar.bz2 1.解压 tar jxvf p7zip_16.02_src_all.tar.bz2 2.编译 cd p7zip_16.02 make &am ...
- 『转载』Matlab中fmincon函数获取乘子
Matlab中fmincon函数获取乘子 一.输出结构 [x,fval,exitflag,output,lambda] = fmincon(......) 二.结构说明 lambda结构 说 ...
- [学习笔记]Javascript采用二进制浮点数和四舍五入的错误
1.样例 var a = .3 - .2 //0.09999999999999998 var b = .2 - .1 //0.1 a == b //false 出现这样的原因在于 1.Javascri ...
- vue系列之vue-resource
vue-resource是Vue.js的一款插件,它可以通过XMLHttpRequest或JSONP发起请求并处理响应.也就是说,$.ajax能做的事情,vue-resource插件一样也能做到,而且 ...