[洛谷P1822]魔法指纹
题目传送门
这道题事实上解并不多,所以我们倒过来从$7$开始搜索。主过程中为广搜,而函数深搜进行拓展。其实是对于前导$0$删去的情况也要考虑,否则只有$20pts$。
最后别忘了判断$7$在不在$[A,B]$。
1 #include <bits/stdc++.h> 2 3 using namespace std; 4 5 #define rep(i, a, b) for (register int i = a; i <= b; ++i) 6 7 int A, B, ans, pw[10], dB = 0; 8 9 queue< pair<int, int> > q; 10 11 void dfs(int v, int s, int dep, int max_dep, int last) { 12 if (dep > dB+1) return; 13 if (dep == max_dep) { 14 if (s <= B && last) { 15 q.push(make_pair(s, dep)); 16 if (s >= A) 17 ans++; 18 } 19 return; 20 } 21 int bit = v % 10; 22 if (bit+last < 10) dfs(v / 10, s + (bit+last) * pw[dep], dep+1, max_dep, bit+last); 23 if (last-bit >= 0 && bit != 0) dfs(v / 10, s + (last-bit) * pw[dep], dep+1, max_dep, last-bit); 24 } 25 26 int main() { 27 scanf("%d%d", &A, &B) 28 if (A <= 7 && 7 <= B) ans++; 29 q.push(make_pair(7, 1)); 30 pw[0] = 1; 31 rep(i, 1, 9) { 32 pw[i] = pw[i-1] * 10; 33 if (B > pw[i]) dB = i; 34 } 35 36 while (!q.empty()) { 37 pair<int, int> h = q.front(); q.pop(); 38 rep(i, 0, 9) 39 dfs(h.first, i, 1, h.second+1, i); 40 if (h.second <= dB) q.push(make_pair(h.first, h.second+1)); 41 } 42 43 printf("%d", ans); 44 return 0; 45 }
这道题如果要打表也可以,就是表会很大。
转载于:https://www.cnblogs.com/ac-evil/p/10339825.html
[洛谷P1822]魔法指纹相关推荐
- [dfs] 洛谷 P1822 魔法指纹
题目描述 对于任意一个至少两位的正整数n,按如下方式定义magic(n):将n按十进制顺序写下来,依次对相邻两个数写下差的绝对值.这样,得到了一个新数,去掉前导0,则定义为magic(n).若n为一位 ...
- 洛谷 P1583 魔法照片
P1583 魔法照片 题目描述 一共有n(n≤20000)个人(以1--n编号)向佳佳要照片,而佳佳只能把照片给其中的k个人.佳佳按照与他们的关系好坏的程度给每个人赋予了一个初始权值W[i].然后将初 ...
- 洛谷——P1583 魔法照片
题目描述 一共有n(n≤20000)个人(以1--n编号)向佳佳要照片,而佳佳只能把照片给其中的k个人.佳佳按照与他们的关系好坏的程度给每个人赋予了一个初始权值W[i].然后将初始权值从大到小进行排序 ...
- [分块打表] [Luogu P1822] 魔法指纹
题目传送门 (反正老年选手写题解也没人看随便水2333333) 一向毒瘤的 dayu 模拟赛这回搞到了这道题-- 看起来很像数位 DP 不是吗? 可是不会转移啊QAQ--想了半天决定分块打表! 分块打 ...
- 洛谷 - 试炼场(全部题目备份)
整理的算法模板合集: ACM模板 目录 1.新手村 1 - 1 洛谷的第一个任务 1 - 2 顺序与分支 1 - 3 循环!循环!循环! 1 - 4 数组 1 - 5 简单字符串 1 - 6 过程函数 ...
- 模拟——魔法少女小Scarlet(洛谷 P4924)
模拟算法指的是让程序完整地按照题目叙述的方式运行得到答案! 此题选自洛谷 P4924 接下来进行旋转操作 旋转分为两部分,一部分是顺时针旋转,一部分是逆时针旋转 经过观察在我们可以发现顺时针旋转时原来 ...
- 洛谷日报 2020年3月前索引
2020 2019 2018 感觉洛谷日报全是干货!!!先记下来再说 2020 年洛谷日报索引 3 月 #260[dove]Church 编码(和 Lambda 演算) https://www.luo ...
- 洛谷日报索引(2020、2019、2018)
历年洛谷日报索引 2020 2019 2018 感觉洛谷日报全是干货!!!先记下来再说 2020 年洛谷日报索引 3 月 #260[dove]Church 编码(和 Lambda 演算) https: ...
- [转载]洛谷日报索引
2019年 6月 #183[朝田诗乃]你以为莫队只能离线?莫队的在线化改造 https://shoko.blog.luogu.org/moqueue #182[Heartlessly ]常用距离算法详 ...
最新文章
- pku1182(食物链) hdu3047 Zjnu Stadium
- python 面向对象学习
- mysql+影响的行数+获取_我们如何获得受MySQL查询影响的总行数?
- no Alcoholic drink anymore
- Visual Studio调试之断点技巧篇
- php stripslashes 去除反斜线
- jsp,div 限制字数,超出部分用省略号代替
- 用冒泡法对10个整数从小到大排序
- 重装系统后,腾讯TM2013 “应用程序无法启动,因为程序的并行配置不正确
- ES6学习笔记一:let、const、块级作用域
- kb931125—rootsupd_kb931125补丁下载
- Free MyBatis plugin下载安装及作用
- 基于单片机的智能饮水机控制系统设计(毕业设计资料)
- 练习27——IO流的所有用法(二)
- 达梦数据库DSC小记
- shader三种变量类型(uniform,attribute和varying)
- everedit 格式化json_Visual studio code (VS code)
- 【浅谈爬虫】一名合格的Python爬虫工程师必须具备技能—具体了解四大Python爬虫分类以及爬虫基本原理实现
- 为了找到物美价廉的房子,连夜爬了某租房网站1W多条租房信息
- 【使用指南】Excel筛选包含指定文本所在的整行