【图论】【高精】产生数(ssl 1021/ luogu 1037)
产生数
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 高精地图概述 高精地图(High Definitation Map,HD MAP),和普通导航电子地图的主要区别是精度更高.信息更丰富.精度更高主要体现在高精地图 ...
- 【每日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 ...
- 数楼梯——恶心的高精斐波那契数列
题目描述 楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶. 编一个程序,计算共有多少种不同的走法. 输入输出格式 输入格式: 一个数字,楼梯数. 输出格式: 走的方式几种. 输入输出样例 输入样例# ...
- 【题解】洛谷P1066 [NOIP2006TG] 2^k进制数(复杂高精+组合推导)
洛谷P1066:https://www.luogu.org/problemnew/show/P1066 思路 挺难的一道题 也很复杂 满足题目要求的种数是两类组合数之和 r的最多位数m为 w/k(当w ...
- 【最短路】【图论】【Floyed】牛的旅行(ssl 1119/luogu 1522)
牛的旅行 ssl 1119 luogu 1522 题目大意 有两堆点,每一堆点之中的任何两个点都一定有相连的路线,连接两堆点中的各一个点,使最远的两个点的距离最短 原题 农民John的农场里有很多牧区 ...
- 【NOIP2002】【Luogu1037】产生数(高精乘低精,DFS暴力搜索)
problem 给定一个整数n和k个变换规则(一位数可变换成另一个一位数) 经过任意次的变换( 0 次或多次),能产生出多少个不同整数 n < 1e30, k <= 15 例: n=234 ...
- 【卡特兰数】【递推】【高精+压位】JZOJ·WZK打雪仗
题目大意: 有2n个人站在一个圈里,有n人要去其他n人那(两人连一线),线不能与其他线碰在一起,让你求方案数. 思路: 卡特兰数,因为位数大,高精压位走起 CodeCodeCode: #include ...
- 【卡特兰数】【高精】WZK打雪仗(war)
[题目背景] 一中操场的格局,同别处不大一样-其实也差不多. 又到冬天了,WZK组织了好多人去打雪仗.WZK一帮共2N人挖了一个以(0,0)为圆心的圆,所有人都在圆周上作战(不在圆的内部). 但是毕竟 ...
- jzojWZK打雪仗【高精】【DP】【卡特兰数】
>Description [题目背景] 共2N人在圆周上作战(不在圆的内部). 其中的N个人每个人会前往另一个人那里结伴作战,在途中同学们只会走两点所连的直线.但是一旦发现地面上有一条脚印横在眼 ...
最新文章
- 基于2SK4037的射频功率放大电路实验
- js 阻断网页选中和右键
- 计算机无法安装win10,win10系统电脑提示“windows安装无法继续”的还原步骤
- python程序开发入门_Python开发入门14天集训营-第一章
- ExtJs常用数据源store
- 同一个页面多个ajax提交,速度缓慢
- 计算机专业怎么转行做建筑,【土木转行·续集】土建类同学转行计算机,什么时间转最合适?...
- 北斗/RTK高精度定位系统的优势及适用场景
- 很多人觉得FPGA难学,因为他们没总结出数电的尽头是模电!
- PM必备!一文掌握项目管理核心工具——WBS工作分解结构
- matlab 求解高次方程,Matlab求解多元高次方程组
- 推荐电视剧 后宫甄嬛传 2012
- 查看Win7电脑密钥期限
- 计算机内存和磁盘的关系
- 鸟枪换炮---IDEA
- Win系统 - Windows10 该内存不能为 read
- 学计算机的3个奋斗目标,我的学习方法和奋斗目标
- 可汗学院”(Khan Academy)提出的考验智商的谜题
- 苹果沙盒服务器验证,我收到21004的状态值回复来自苹果的沙盒测试服务器自动再生订阅的IOS?(I'm gett...
- Matplotlib多子图绘图后保存单个子图
热门文章
- java jdk win10安装_Java 安装 JDK WIN10
- python编写程序计算1+2+3+......+100和_Python3:计算两个列表总和为100的所有排列的最有效方法是什么?...
- gitee 从 拉取新分支到本地_Hexo博客详细教程(一)| 建立本地站点
- 邮箱通知php,PHPMailer 发送邮件(含详细介绍及使用方法说明)
- C++,Java编程中 标识符 常见命名约定
- 八数码问题II-双向bfs和map标记
- java中的循环结构_Java中的循环结构进阶
- SpringBoot自动装配源码解析
- 下一代微服务架构基础:ServiceMesh?
- Dubbo——增强SPI的实现