貌似都是用佛洛依德写的,我就来个\(DFS\)搜索的方法吧。

首先通过字符串读入来读入这个数字。

然后对每一位数字进行\(DFS\),每搜索到一个数字计数器加一。最后根据分步计算原理,将每位数可扩展的数进行相乘输出即可。

另外第四、第五组数据较大好久没有写高精度写挂了好几次滑稽


Coding:

#include<bits/stdc++.h>
using namespace std;string num;
int k,a[20],b[20],ans = 0,sum[30] = {};//ans每一位可以扩展多少个数字
bool vis[10] = {};//vis记录当前数字有没有被搜过inline int read()//快读
{int x = 0;char ch = getchar();while(ch < '0' || ch > '9') ch = getchar();while(ch >= '0' && ch <= '9'){x = (x<<3)+(x<<1) + ch-'0';ch = getchar();}return x;
}inline void mul(int a[],int b)//低精度乘高精度
{for(int i = 1;i <= a[0];i++){a[i] *= b;}for(int i = 1;i <= a[0];i++){if(a[i] >= 10){a[i+1] += a[i]/10;a[i] %= 10;if(i == a[0]) a[0]++;}}
}inline void dfs(int x)
{vis[x] = 1;//每搜到一个打个标记ans++;for(int i = 1;i <= k;i++){if(a[i] == x && !vis[b[i]]) dfs(b[i]);//如果符合且未被搜索}
}int main()
{cin >> num;k = read();sum[0] = 1;sum[1] = 1;for(int i = 1;i <= k;i++){a[i] = read();b[i] = read();}for(int i = 0;i < num.size();i++){dfs(num[i]-'0');mul(sum,ans);memset(vis,0,sizeof(vis));//消除影响ans = 0;}for(int i = sum[0];i >= 1;i--) printf("%d",sum[i]);putchar('\n');return 0;
}

转载于:https://www.cnblogs.com/Mark-X/p/11404645.html

luogu P1037 【产生数】相关推荐

  1. BZOJ 3930 Luogu P3172 选数 (莫比乌斯反演)

    BZOJ 3930 Luogu P3172 选数 (莫比乌斯反演) 手动博客搬家:本文发表于20180310 11:46:11, 原地址https://blog.csdn.net/suncongbo/ ...

  2. [Luogu] P3413 萌数

    题目背景 本题由世界上最蒟蒻最辣鸡最撒比的SOL提供. 寂月城网站是完美信息教室的官网.地址:已和谐 . 题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌! 好在在他眼里,并不是所有数都是萌的.只 ...

  3. 关于数位动规(入门到进阶,难度中档)

    数位动规,就是对于数位进行动规(日常一句废话···) 刚好今天听数位dp,就总结一下最近写的题吧.郭神说要学懂数位dp,还是要搞懂它内部是怎么工作的.比如一个有大小的数,我们在这里剥夺它作为一个整数的 ...

  4. NOIP普及组历届真题(1997~2018)

    供大家刷题. 先上快捷的查看方式:NOIP普及组历届真题 第二页 来自洛谷--一个很好的刷题网站 剩下是具体题目和难度以及是第几年的题. P1002 过河卒 NOIp普及组 2002 普及- P100 ...

  5. 2017-2018年度刷题记录

    2018暑假刷题1: T1.CF6A Triangle (#模拟 -1.4) T2.CF59A Word(#模拟 -1.5) T3.[洛谷]P2772 寻找平面上的极大点(#贪心 -1.4) T4.[ ...

  6. 10 23 周总结+一道奇妙数论

    还有部分字符串的处理算法未有学习完,本人太菜了qwq.感觉比赛还是欠缺了些东西,灵感吧还是经验呢,效率还是差了些,不多说,题目的话还是没有补完,补完了再写题解吧,呃,晚上的cf打的还是不错的,平均下来 ...

  7. ACM本周搜索做题小结和心得体会

    这周除了接着看上次没看完剩下的题,主要的就是做题了 我把这周新学到的和以前还没总结过的以及做题心得再主要说一下 这周做题和看到的主要是以下这几类 我把这周做题时遇到的某几类题简单归了一下类然后总结 遍 ...

  8. 2023年你最值得了解的信息技术-AI篇(一)

    列表 85 - 其他 辽宁省 大连优联智能 自动化生产线提供商 未融资 大连优联智能是一家自动化生产线提供商,集规划设计.制造安装.系统集成.视觉检测及AI数据智能分析于一体,可为汽车车身及发动机制造 ...

  9. 【图论】【高精】产生数(ssl 1021/ luogu 1037)

    产生数 ssl 1021 luogu 1037 题目大意: 有一个数,可以使某些数字变成相对应的数字,问有多少种变法 原题: Description 给出一个整数 n(n<10^30) 和 k ...

最新文章

  1. C++集成开发环境(IDE)的优点
  2. Eclipse不编译解决方案
  3. Typora最好用的Markdown编辑器
  4. 关闭(杀死)8080端口
  5. linux中sybase删除数据库,Linux_Sybase ASE数据库的常见问题解答,1 数据库占用磁盘空间的形式 - phpStudy...
  6. Python 学习笔记 - 协程
  7. java语言的继承性_基于java中子类的继承性的应用介绍
  8. MATLAB绘制地图超详细教程
  9. clover写入efi_Clover EFI Bootloader r5111 四叶草黑苹果引导程序下载
  10. 从应用工程师的角度再谈车载 Android 系统
  11. 如何准备全国大学生电子设计大赛控制题?
  12. android恢复删除文件,如何恢复手机删除的文件
  13. 候鸟算法matlab实现
  14. run npm fund for details
  15. 【Python魔术方法】py复习
  16. 【Jsoup】 基本使用
  17. 北京2008年奥运会体育图标
  18. 人人都是产品经理 - 苏杰 读书笔记
  19. linux TL-WN725N2.0 AP Raspberry Pi 无线网卡驱动 路由设置
  20. python2打包pyQT5

热门文章

  1. 黑马vue---13、事件修饰符的介绍
  2. html和css入门 (三)
  3. jquery的deferred对象
  4. 【原创】QT在嵌入式系统中显示中文的方法
  5. 新建一个doophp项目
  6. 栈的应用——迷宫的非递归解法
  7. 使用钩子函数[3] - 建立一个全局的鼠标钩子
  8. php获取ios或android通过文件头(header)传过来的坐标,通过百度接口获取具体城市和地址,并存入到session中...
  9. java:BufferedReader接受输入进来的2个数字,并将它们相加
  10. BIRCH聚类算法原理