luogu P1037 【产生数】
貌似都是用佛洛依德写的,我就来个\(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 【产生数】相关推荐
- BZOJ 3930 Luogu P3172 选数 (莫比乌斯反演)
BZOJ 3930 Luogu P3172 选数 (莫比乌斯反演) 手动博客搬家:本文发表于20180310 11:46:11, 原地址https://blog.csdn.net/suncongbo/ ...
- [Luogu] P3413 萌数
题目背景 本题由世界上最蒟蒻最辣鸡最撒比的SOL提供. 寂月城网站是完美信息教室的官网.地址:已和谐 . 题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌! 好在在他眼里,并不是所有数都是萌的.只 ...
- 关于数位动规(入门到进阶,难度中档)
数位动规,就是对于数位进行动规(日常一句废话···) 刚好今天听数位dp,就总结一下最近写的题吧.郭神说要学懂数位dp,还是要搞懂它内部是怎么工作的.比如一个有大小的数,我们在这里剥夺它作为一个整数的 ...
- NOIP普及组历届真题(1997~2018)
供大家刷题. 先上快捷的查看方式:NOIP普及组历届真题 第二页 来自洛谷--一个很好的刷题网站 剩下是具体题目和难度以及是第几年的题. P1002 过河卒 NOIp普及组 2002 普及- P100 ...
- 2017-2018年度刷题记录
2018暑假刷题1: T1.CF6A Triangle (#模拟 -1.4) T2.CF59A Word(#模拟 -1.5) T3.[洛谷]P2772 寻找平面上的极大点(#贪心 -1.4) T4.[ ...
- 10 23 周总结+一道奇妙数论
还有部分字符串的处理算法未有学习完,本人太菜了qwq.感觉比赛还是欠缺了些东西,灵感吧还是经验呢,效率还是差了些,不多说,题目的话还是没有补完,补完了再写题解吧,呃,晚上的cf打的还是不错的,平均下来 ...
- ACM本周搜索做题小结和心得体会
这周除了接着看上次没看完剩下的题,主要的就是做题了 我把这周新学到的和以前还没总结过的以及做题心得再主要说一下 这周做题和看到的主要是以下这几类 我把这周做题时遇到的某几类题简单归了一下类然后总结 遍 ...
- 2023年你最值得了解的信息技术-AI篇(一)
列表 85 - 其他 辽宁省 大连优联智能 自动化生产线提供商 未融资 大连优联智能是一家自动化生产线提供商,集规划设计.制造安装.系统集成.视觉检测及AI数据智能分析于一体,可为汽车车身及发动机制造 ...
- 【图论】【高精】产生数(ssl 1021/ luogu 1037)
产生数 ssl 1021 luogu 1037 题目大意: 有一个数,可以使某些数字变成相对应的数字,问有多少种变法 原题: Description 给出一个整数 n(n<10^30) 和 k ...
最新文章
- C++集成开发环境(IDE)的优点
- Eclipse不编译解决方案
- Typora最好用的Markdown编辑器
- 关闭(杀死)8080端口
- linux中sybase删除数据库,Linux_Sybase ASE数据库的常见问题解答,1 数据库占用磁盘空间的形式 - phpStudy...
- Python 学习笔记 - 协程
- java语言的继承性_基于java中子类的继承性的应用介绍
- MATLAB绘制地图超详细教程
- clover写入efi_Clover EFI Bootloader r5111 四叶草黑苹果引导程序下载
- 从应用工程师的角度再谈车载 Android 系统
- 如何准备全国大学生电子设计大赛控制题?
- android恢复删除文件,如何恢复手机删除的文件
- 候鸟算法matlab实现
- run npm fund for details
- 【Python魔术方法】py复习
- 【Jsoup】 基本使用
- 北京2008年奥运会体育图标
- 人人都是产品经理 - 苏杰 读书笔记
- linux TL-WN725N2.0 AP Raspberry Pi 无线网卡驱动 路由设置
- python2打包pyQT5