题目:UVA10624 - Super Number(dfs)

题目大意:给你n和m要求找出这种m位数,从第n位到第m位都满足前i位是能够被i整除,假设没有这种数,输出-1.有多个就输出字典序最小的那个。

解题思路:将每一个位置都用0..9枚举一下,注意第一个字符不能是0,然后dfs推断每一个位置是否都满足要求。注意这里是会爆long long的,所以要取模一下。本来以为这种做法会超时的,结果居然过了,预计是例子数少,并且找不到的情况也比較少。

代码:

#include <cstdio>
#include <cstring> const int N = 35;
typedef unsigned long long ll; int num[N];
int m, n; bool judge (int cur) { ll sum = 0;
for (int i = 0; i <= cur; i++) {
sum = sum * 10 + num[i];
if (i > 17)
sum = sum % (cur + 1);
}
sum = sum % (cur + 1);
return sum ? false : true;
} bool dfs (int cur) { if (cur == m)
return true;
for (int i = 0; i < 10; i++) { if (!cur && !i)
continue; num[cur] = i;
if (cur < n - 1 || judge(cur)) {
if (dfs (cur + 1))
return true;
}
}
return false;
} int main () { int t;
scanf ("%d", &t);
for (int i = 1; i <= t; i++) { scanf ("%d%d", &n, &m);
printf ("Case %d: ", i);
if (!dfs(0))
printf ("-1\n");
else {
for (int j = 0; j < m; j++)
printf ("%d", num[j]);
printf ("\n");
}
}
return 0;
}

UVA10624 - Super Number(dfs)的更多相关文章

  1. UVA11882-Biggest Number(DFS+最优化剪枝)

    Problem UVA11882-Biggest Number Accept: 177    Submit: 3117Time Limit: 1000 mSec    Memory Limit : 1 ...

  2. LeetCode Letter Combinations of a Phone Number (DFS)

    题意 Given a digit string, return all possible letter combinations that the number could represent. A ...

  3. ZOJ 3436 July Number(DFS)

    题意   把一个数替换为这个数相邻数字差组成的数  知道这个数仅仅剩一位数  若最后的一位数是7  则称原来的数为 July Number  给你一个区间  求这个区间中July Number的个数 ...

  4. 湖南省第六届省赛题 Biggest Number (dfs+bfs,好题)

    Biggest Number 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 You have a maze with obstacles and non-zero di ...

  5. ZOJ - 3816 Generalized Palindromic Number dfs

    Generalized Palindromic Number Time Limit: 2 Seconds                                     Memory Limi ...

  6. UVa 10624 - Super Number

    题目大意 给定两个数n和m,如果长度为m的数满足对于每个i(n<=i<=m),数字的前i位都能被i整除,那么这个数就是超级数,求出字典序最小的符合要求的超级数. 分析 直接暴力搜索 #in ...

  7. Codeforces Beta Round #51 B. Smallest number dfs

    B. Smallest number Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/55/pro ...

  8. UVA - 11882 Biggest Number(dfs+bfs+强剪枝)

    题目大意:给出一个方格矩阵,矩阵中有数字0~9,任选一个格子为起点,将走过的数字连起来构成一个数,找出最大的那个数,每个格子只能走一次. 题目分析:DFS.剪枝方案:在当前的处境下,找出所有还能到达的 ...

  9. 10624 - Super Number

    题目链接 题意:给出n到m的范围,求出一个数在前i位数组成的数字能被i整除.假设存在输出这个数,假设不存在.输出-1. 思路:回溯,每次放第i位,然后推断是否符合题意.这题踩着时间过去的2.6s(看了 ...

随机推荐

  1. oc/object-c/ios用int还是NSInteger

    当需要使用int类型的变量的时候,可以像写C的程序一样,用int,也可以用NSInteger,但更推荐使用NSInteger,因为这样就不用考虑设备是32位的还是64位的. 可以看如下定义:#if _ ...

  2. spring boot配置springMVC拦截器

    spring boot通过配置springMVC拦截器 配置拦截器比较简单, spring boot配置拦截器, 重写preHandle方法. 1.配置拦截器: 2重写方法 这样就实现了拦截器. 其中 ...

  3. Debian学习笔记

    14.1. 禁止非root用户登录系统 在/etc目录下新建一个nologin文本文件,内容随意.当系统发现该文件,就会禁止其它用户登录,并显示该文件内容. 14.2. 禁用CTRL+ALT+DEL组 ...

  4. 使用wget提示无法建立SSL连接

    wget 下载URL 提示无法建立SSL连接 解决方法: 原命令上加上" --no-check-certificate" 这是因为wget在使用HTTPS协议时,默认会去验证网站的 ...

  5. pytest文档3-pycharm运行pytest

    前言 上一篇pytest文档2-用例运行规则已经介绍了如何在cmd执行pytest用例,平常我们写代码在pycharm比较多 写完用例之后,需要调试看看,是不是能正常运行,如果每次跑去cmd执行,太麻 ...

  6. Hydra 无法爆破SSH 解决办法

    今天测试ssh爆破,发现使用hydra有些问题,windows版本没有协议支持其他的貌似都可以,kali本身也有hydra环境但是也会出现问题,所以就搜了一些资料贴在这里,当然这也是我测试过的,重新编 ...

  7. Android两次后退键退出

    转载请注明出处:http://blog.csdn.net/javacattle/article/details/41964045 仅仅要在 *.Java 文件里加入就可以 private int ba ...

  8. php--session垃圾回收机制

    在PHP中,没有任何变量指向这个对象时,这个对象就成为垃圾.PHP会将其在内存中销毁:这是PHP的GC垃圾处理机制,防止内存溢出. GC的工作就是扫描所有的Session信息,用当前时间减去sessi ...

  9. 【Web】Rest && 权限管理 && LDAP && OAuth && Nginx && Lua 等

    最好的8个 Java RESTful 框架:http://www.importnew.com/17138.html 如何设计RESTful的API权限:https://segmentfault.com ...

  10. HDU2089 ------不要62(数位dp)

    不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...