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 ...
随机推荐
- LINQ to SQL 模拟实现 ROW_NUMBER() OVER(ORDER BY ...) 的功能
Ø 前言 本来是想使用 LINQ 实现类似 SQL: ROW_NUMBER() OVER(ORDER BY -) 的功能,但是貌似 LINQ 不支持,反正没找到解决办法,无奈使用了LINQ Sele ...
- oracle sum(x) over( partition by y ORDER BY z ) 分析
之前用过row_number(),rank()等排序与over( partition by ... ORDER BY ...),这两个比较好理解: 先分组,然后在组内排名. 今天突然碰到sum(... ...
- 使用Word批量删除换行和空白行
转载自:https://blog.csdn.net/dearmorning/article/details/78811137 问题一:从pdf文档中复制一部分内容到word的时候,pdf的自动换行会自 ...
- configure编译选项
1.rpath与rpath-link的区别 参考链接:http://blog.csdn.net/xph23/article/details/38157491 rpath 是 运行时候链接的库, rpa ...
- python2的比较函数,cmp
class Shu(object): def __init__(self,ss): self.ss = ss def __str__(self): return '(%s: %s)' % (self. ...
- jquery 学习(一) - 选择器
基本选择器(html) <div>123</div> <div id="n1">123</div> <span>321& ...
- More Effective C++ 条款0,1
More Effective C++ 条款0,1 条款0 关于编译器 不同的编译器支持C++的特性能力不同.有些编译器不支持bool类型,此时可用 enum bool{false, true};枚举类 ...
- 实验一 Java开发环境的熟悉--20165221
实验报告封面 课程:Java程序设计 班级:1652班 姓名:谭笑 学号:20165221 成绩: 指导教师:娄嘉鹏 试验日期:2018.4.2 实验组次:21 预习程度:已预习 实验时间:15:35 ...
- kali linux 安装QQ
之前在kali上尝试过Wineqq2012,显示版本过低,放弃了.最近听说crossover比wine的支持要好,再次尝试. 1.下载 https://www.codeweavers.com/ 选择d ...
- SpringMVC使用Burlap发布远程服务
参考这篇文章https://www.cnblogs.com/fanqisoft/p/10283156.html 将提供者配置类中的 @Bean public HessianServiceExporte ...