(ssl 1021 洛谷 1037)产生数#floyd#

2024-02-11 06:58
文章标签 ssl 产生 洛谷 1021 floyd 1037

本文主要是介绍(ssl 1021 洛谷 1037)产生数#floyd#,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目

给出一个整数 n n n k k k 个规则。
经过任意次的变换(0次或多次),能产生出多少个不同整数。仅要求输出个数。


分析

首先这道题明显的 最短路径(难道还用深搜)
根据乘法原理答案等于0~9的状态数乘积
n超过30位,根据分析最大答案也就10^30了。
所以数组只用开到三十(为了保险,开到一百)
so其实虽然我知道__int 128,但是毕竟学校题库编译错误,所以还是得用高精度。
然后关键就是这种情况
2 1
3 2
4 3
5 4
6 5
7 6
8 7
9 8
0 9
所以需要最短路径。

#include <cstdio>
#include <cctype>
using namespace std;
const int maxn=100;
char b[maxn+1]; int n,x,y,c[11],a[11];
bool g[11][11];
void times(int s){//高精度乘法int g=0,h=0;for (int i=maxn;i>=1;i--){h=s*b[i]+g;g=h/10;b[i]=h%10;}
}
void print(){//输出int j=1;while (j<maxn&&!b[j]) j++;for (int i=j;i<=maxn;i++) putchar(b[i]+48);
}
int main(){char u=getchar();while (isdigit(u)) a[u-48]++,u=getchar();scanf("%d",&n); b[maxn]=1;for (int i=1;i<=n;i++) scanf("%d%d",&x,&y),g[x][y]=1;for (int i=0;i<=9;i++) g[i][i]=1;//自己也是状态for (int k=0;k<=9;k++)for (int i=0;i<=9;i++)for (int j=0;j<=9;j++)g[i][j]=(g[i][j]||(g[i][k]&&g[k][j]));//判断是否连通的floydfor (int i=0;i<=9;i++)for (int j=0;j<=9;j++) c[i]+=g[i][j];//计算状态数for (int i=0;i<=9;i++)for (int j=1;j<=a[i];j++) times(c[i]);print(); return 0;
}

这篇关于(ssl 1021 洛谷 1037)产生数#floyd#的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/699137

相关文章

Python如何获取域名的SSL证书信息和到期时间

《Python如何获取域名的SSL证书信息和到期时间》在当今互联网时代,SSL证书的重要性不言而喻,它不仅为用户提供了安全的连接,还能提高网站的搜索引擎排名,那我们怎么才能通过Python获取域名的S... 目录了解SSL证书的基本概念使用python库来抓取SSL证书信息安装必要的库编写获取SSL证书信息

nginx生成自签名SSL证书配置HTTPS的实现

《nginx生成自签名SSL证书配置HTTPS的实现》本文主要介绍在Nginx中生成自签名SSL证书并配置HTTPS,包括安装Nginx、创建证书、配置证书以及测试访问,具有一定的参考价值,感兴趣的可... 目录一、安装nginx二、创建证书三、配置证书并验证四、测试一、安装nginxnginx必须有"-

python实现简易SSL的项目实践

《python实现简易SSL的项目实践》本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习... 目录运行环境运行前准备程序实现与流程说明运行截图代码CA.pyclient.pyserver.py参

uva 10099(floyd变式)

题意: 有一个导游要带着一群旅客从一个城市到达另一个城市,每个城市之间有最大的旅客流量限制。 问最少几趟能将这些旅客从一个城市搞到另一个城市。 解析: 用floyd找出最小流量中的最大边,然后次数就是   ceil(总人数 / 最大承载量 - 1),-1的意思是导游每次也要在车上。 ps.老司机哭晕在厕所 代码: #include <iostream>#includ

uva 10048(floyd变式)

题意: 求两个点之间经过的路径中最大噪声最小的值。 解析: floyd的变式,每次取g[i][k] g[k][j]中的大边与当前边g[i][j]比较,取小。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#includ

poj 1734 (floyd求最小环并打印路径)

题意: 求图中的一个最小环,并打印路径。 解析: ans 保存最小环长度。 一直wa,最后终于找到原因,inf开太大爆掉了。。。 虽然0x3f3f3f3f用memset好用,但是还是有局限性。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#incl

MCU7.keil中build产生的hex文件解读

1.hex文件大致解读 闲来无事,查看了MCU6.用keil新建项目的hex文件 用FlexHex打开 给我的第一印象是:经过软件的解释之后,发现这些数据排列地十分整齐 :02000F0080FE71:03000000020003F8:0C000300787FE4F6D8FD75810702000F3D:00000001FF 把解释后的数据当作十六进制来观察 1.每一行数据

hdu 4517 floyd+记忆化搜索

题意: 有n(100)个景点,m(1000)条路,时间限制为t(300),起点s,终点e。 访问每个景点需要时间cost_i,每个景点的访问价值为value_i。 点与点之间行走需要花费的时间为g[ i ] [ j ] 。注意点间可能有多条边。 走到一个点时可以选择访问或者不访问,并且当前点的访问价值应该严格大于前一个访问的点。 现在求,从起点出发,到达终点,在时间限制内,能得到的最大

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

Android逆向(反调,脱壳,过ssl证书脚本)

文章目录 总结 基础Android基础工具 定位关键代码页面activity定位数据包参数定位堆栈追踪 编写反调脱壳好用的脚本过ssl证书校验抓包反调的脚本打印堆栈bilibili反调的脚本 总结 暑假做了两个月的Android逆向,记录一下自己学到的东西。对于app渗透有了一些思路。 这两个月主要做的是代码分析,对于分析完后的持久化等没有学习。主要是如何反编译源码,如何找到