产生数(floyd)
如果1可以变换到2,2可以变换到3,那么1可以变换到3,这可以用Floyd算法,要注意一点的是,其它数不可以变换到零,而零可以变到其它数,
我的高精度算法一开始是错的,我的做法会导致进位的数也乘了s,在最后要处理carry,但要记得carry/10,不然会成死循环
#include<iostream>
#include<cstring>
using namespace std;
int f[20][20];
int cnt[50];
int main(){
string str;
int m;
cin>>str>>m;
for(int i=1;i<=m;i++){
int x,y;
cin>>x>>y;
f[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(f[i][k]&&f[k][j])f[i][j]=1;
}
}
}
for(int i=1;i<=9;i++)f[i][i]=1;
for(int i=0;i<=9;i++){
for(int j=1;j<=9;j++){
if(f[i][j])cnt[i]++;
}
}
cnt[0]++;
int a[1000]={0};
int len=1;
a[1]=1;
long long int ans=1;
for(int i=0;i<str.size();i++){
int s=cnt[str[i]-'0'];
int carry=0;
for(int j=1;j<=len;j++){
int temp=a[j]*s+carry;
a[j]=temp%10;
carry=temp/10;
}
while(carry)a[++len]=carry%10,carry/=10;
};
for(int i=len;i>=1;i--)cout<<a[i];
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理