当前位置: 首页 > ds >正文

【数据结构入门训练DAY-28】蓝桥杯算法提高VIP-产生数

文章目录

  • 前言
  • 一、题目
  • 二、解题思路
  • 结语

前言

本次训练内容

  1. 训练高精度乘法。
  2. 训练解题思维。

一、题目

 给出一个整数  n 和  k  个变换规则。规则:一位数可变换成另一个一位数:规则的右部不能为零。例如:n=234。有规则(k=2):2->   5 3->   6
上面的整数  234  经过变换后可能产生出的整数为(包括原数):
234
534
264
564
共  4  种不同的产生数
问题:
给出一个整数  n  和  k  个规则。
求出:
经过任意次的变换(0次或多次),能产生出多少个不同整数。
仅要求输出个数。

输入格式

n  k 
x1  y1 
x2  y2 
...  ... 

xn  yn 

(n< 10^30) 

(k< =15)

输出格式

一个整数(满足条件的个数)

样例输入

234 2
2 5
3 6

样例输出

4

二、解题思路

        这道题目我认为就是高中数学排列组合的一种应用方式,然后因为题中涉及的数目很大,所以需要使用高精度的算法来辅助作答,然后题中的数值“n”我使用字符串存储。具体代码实现如下:

#include <bits/stdc++.h>
using namespace std;int main()
{int temp[10][10];//tag[i][j]=1表示存在i->j的变换int d[10000000];int p[10000000];string n;int k;while(cin>>n>>k){int x,y;for(int i=0;i<k;i++){cin>>x>>y;temp[x][y]=1;}for(int K=1;K<=9;K++)for(int i=0;i<=9;i++)for(int j=1;j<=9;j++)if(temp[i][K]&&temp[K][j]) temp[i][j]=1;//每个数字可以变换成几种数字形态包括数字本身for(int i=0;i<10;i++){temp[i][i]=1;for(int j=0;j<10;j++)if(temp[i][j])d[i]++;}int z=0;p[0]=1;//每个数字的本身for(int i=0;n[i];i++){z=0;int x=d[n[i]-'0'];//参考数学排列组合Annfor(int i=0;i<500;i++){p[i]=(p[i]*x+z);//z是进位数z=p[i]/10;p[i]%=10;}}int i=500;while(p[i]==0) i--;for(;i>=0;i--){cout<<p[i];}cout<<endl;}
}

总结

  今天的题目我想到了核心的解题思维,但是由于排列组合的思维不知道怎么体现在编码中,还有对高精度知识点掌握的不牢固,导致今天的题目是借鉴了大佬的代码然后自己理解后写出来的,有些惭愧但是也挺开心的,因为又学会了一种解题技巧。

http://www.xdnf.cn/news/4620.html

相关文章:

  • 【前端基础】7、CSS的字体属性(font相关)
  • React Router Vs Vue Router
  • AGV智能搬运机器人:富唯智能引领工业物流高效变革
  • DeepSeek架构解析:从神经动力学视角解构万亿参数模型的认知涌现机制
  • 企业该如何选择合适的DDOS防护?
  • C++代码随想录刷题知识分享-----判断两个字符串是否为字母异位词(Anagram)【LeetCode 242】
  • 【论文阅读】Reconstructive Neuron Pruning for Backdoor Defense
  • C++类对象的隐式类型转换和编译器返回值优化
  • idea左侧项目资源管理器不见了处理
  • Python+深度学习:如何精准评估食品过敏风险?
  • 代码随想录Day20
  • Canal mysql to mysql 增加 online 库同步配置指南
  • MATLAB技巧——命令行输入的绘图,中文是正常的,到了脚本(m文件)里面就变成乱码的解决方法
  • 普通笔记本与军用加固笔记本电脑的区别,探索防水、防爆、防摔的真·移动工作站!
  • 2025软考【系统架构设计师】:两周极限冲刺攻略(附知识点解析+答题技巧)
  • java ReentrantLock
  • MySQL的基本操作
  • 《Python星球日记》 第46天:决策树与随机森林
  • 二分查找习题
  • SQL 中的中括号 [ ]、双引号 “ “、反引号 ` `:SQL Server、Oracle、MySQL三大数据库标识符 定界符 详解
  • Xilinx XCKU11P-2FFVA1156I 赛灵思 FPGA AMD Kintex UltraScale+
  • K8S - 金丝雀发布实战 - Argo Rollouts 流量控制解析
  • Python案例实战《鲜花识别模型训练及调用》
  • 使用 Selenium 截图功能,截不到原生 JavaScript 弹窗
  • 【视觉基础模型-SAM系列-2】SAM2: Segment Anything in Images and Videos
  • 【上位机——MFC】对象和控件绑定
  • kettle从入门到精通 第九十六课 ETL之kettle Elasticsearch 增删改查彻底掌握
  • C++GO语言socket套接字
  • Go语言——for循环、包构建以及包冲突
  • 怎样避免住宅IP被平台识别