产生数

ssl 1021

luogu 1037

题目大意:

有一个数,可以使某些数字变成相对应的数字,问有多少种变法

原题:

Description

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

Input

n k
x1 y1
x2 y2
… …
xn yn

Output

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

Sample Input

234 2
2 5
3 6

Sample Output

4

解题思路:

首先用Floyed求出任意一个数字可以变成什么数字,再统计一下每个数可以变成多少个数,因为数据保证规则的右方不为0,所以不用判断是否为第一位,然后用高精乘就可以了

代码:

#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int n,x,y,l,sum,a[15][15],b[50],c[15],f[50];
string str;
void gjc(int now)
{int t=0;for (int i=1;i<=35;++i){f[i]=f[i]*now+t;//高精乘t=f[i]/10;f[i]%=10;}
}
void output()
{int k=35;while (!f[k]&&k>0) k--;for (int i=k;i>0;--i)putchar(f[i]+48);//高精输出
}
int main()
{cin>>str;l=str.size();for (int i=1;i<=l;++i)b[i]=str[i-1]-48;//读入scanf("%d",&n);for (int i=1;i<=n;++i){scanf("%d %d",&x,&y);a[x][y]=1;}for (int k=0;k<=9;++k)for (int i=0;i<=9;++i)for (int j=0;j<=9;++j)a[i][j]=max(a[i][j],min(a[i][k],a[k][j]));//Floyedf[1]=1;//预处理for (int i=0;i<=9;++i)for (int j=0;j<=9;++j)if (a[i][j]||i==j)c[i]++;//统计for (int i=1;i<=l;++i)gjc(c[b[i]]);//高精乘output();
}

【图论】【高精】产生数(ssl 1021/ luogu 1037)相关推荐

  1. 高精地图数据应用分发引擎建设实践

    1. 什么是高精数据分发引擎 1.1 高精地图概述 高精地图(High Definitation Map,HD MAP),和普通导航电子地图的主要区别是精度更高.信息更丰富.精度更高主要体现在高精地图 ...

  2. 【每日DP】day 10、P1005 矩阵取数游戏【区间DP+高精(python)】难度⭐⭐⭐★

    P1005 矩阵取数游戏 输入 2 3 1 2 3 3 4 2 输出 82 说明/提示 NOIP 2007 提高第三题. 数据范围: 60%60\%60% 的数据满足:1≤n,m≤301\le n,m ...

  3. 数楼梯——恶心的高精斐波那契数列

    题目描述 楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶. 编一个程序,计算共有多少种不同的走法. 输入输出格式 输入格式: 一个数字,楼梯数. 输出格式: 走的方式几种. 输入输出样例 输入样例# ...

  4. 【题解】洛谷P1066 [NOIP2006TG] 2^k进制数(复杂高精+组合推导)

    洛谷P1066:https://www.luogu.org/problemnew/show/P1066 思路 挺难的一道题 也很复杂 满足题目要求的种数是两类组合数之和 r的最多位数m为 w/k(当w ...

  5. 【最短路】【图论】【Floyed】牛的旅行(ssl 1119/luogu 1522)

    牛的旅行 ssl 1119 luogu 1522 题目大意 有两堆点,每一堆点之中的任何两个点都一定有相连的路线,连接两堆点中的各一个点,使最远的两个点的距离最短 原题 农民John的农场里有很多牧区 ...

  6. 【NOIP2002】【Luogu1037】产生数(高精乘低精,DFS暴力搜索)

    problem 给定一个整数n和k个变换规则(一位数可变换成另一个一位数) 经过任意次的变换( 0 次或多次),能产生出多少个不同整数 n < 1e30, k <= 15 例: n=234 ...

  7. 【卡特兰数】【递推】【高精+压位】JZOJ·WZK打雪仗

    题目大意: 有2n个人站在一个圈里,有n人要去其他n人那(两人连一线),线不能与其他线碰在一起,让你求方案数. 思路: 卡特兰数,因为位数大,高精压位走起 CodeCodeCode: #include ...

  8. 【卡特兰数】【高精】WZK打雪仗(war)

    [题目背景] 一中操场的格局,同别处不大一样-其实也差不多. 又到冬天了,WZK组织了好多人去打雪仗.WZK一帮共2N人挖了一个以(0,0)为圆心的圆,所有人都在圆周上作战(不在圆的内部). 但是毕竟 ...

  9. jzojWZK打雪仗【高精】【DP】【卡特兰数】

    >Description [题目背景] 共2N人在圆周上作战(不在圆的内部). 其中的N个人每个人会前往另一个人那里结伴作战,在途中同学们只会走两点所连的直线.但是一旦发现地面上有一条脚印横在眼 ...

最新文章

  1. 基于2SK4037的射频功率放大电路实验
  2. js 阻断网页选中和右键
  3. 计算机无法安装win10,win10系统电脑提示“windows安装无法继续”的还原步骤
  4. python程序开发入门_Python开发入门14天集训营-第一章
  5. ExtJs常用数据源store
  6. 同一个页面多个ajax提交,速度缓慢
  7. 计算机专业怎么转行做建筑,【土木转行·续集】土建类同学转行计算机,什么时间转最合适?...
  8. 北斗/RTK高精度定位系统的优势及适用场景
  9. 很多人觉得FPGA难学,因为他们没总结出数电的尽头是模电!
  10. PM必备!一文掌握项目管理核心工具——WBS工作分解结构
  11. matlab 求解高次方程,Matlab求解多元高次方程组
  12. 推荐电视剧 后宫甄嬛传 2012
  13. 查看Win7电脑密钥期限
  14. 计算机内存和磁盘的关系
  15. 鸟枪换炮---IDEA
  16. Win系统 - Windows10 该内存不能为 read
  17. 学计算机的3个奋斗目标,我的学习方法和奋斗目标
  18. 可汗学院”(Khan Academy)提出的考验智商的谜题
  19. 苹果沙盒服务器验证,我收到21004的状态值回复来自苹果的沙盒测试服务器自动再生订阅的IOS?(I'm gett...
  20. Matplotlib多子图绘图后保存单个子图

热门文章

  1. java jdk win10安装_Java 安装 JDK WIN10
  2. python编写程序计算1+2+3+......+100和_Python3:计算两个列表总和为100的所有排列的最有效方法是什么?...
  3. gitee 从 拉取新分支到本地_Hexo博客详细教程(一)| 建立本地站点
  4. 邮箱通知php,PHPMailer 发送邮件(含详细介绍及使用方法说明)
  5. C++,Java编程中 标识符 常见命名约定
  6. 八数码问题II-双向bfs和map标记
  7. java中的循环结构_Java中的循环结构进阶
  8. SpringBoot自动装配源码解析
  9. 下一代微服务架构基础:ServiceMesh?
  10. Dubbo——增强SPI的实现