【图论】【高精】产生数(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();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/321021.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P3224-[HNOI2012]永无乡【平衡树,启发式合并】

正题 题目链接:https://www.luogu.com.cn/problem/P3224 题目大意 nnn个点&#xff0c;每次可以连接两个点和询问一个点所在联通块中第kkk大的数。 解题思路 我们发现可以启发式合并&#xff0c;对于每个联通块维护一个线段树&#xff0c;然后每次合并时将小的暴力丢入大的平…

牛客国庆集训派对Day6

牛客国庆集训派对Day6 以下是我个人题解,出题人题解附带在最后 A.Birthday 费用流裸题,只要注意到135...2k−1k2135...2k-1 k^2135...2k−1k2即可已做这道题了. 其他的地方连边都很方便.每一个区域向汇点连很多条容量为111的边,但费用分别是1,3,5,...,2k−11,3,5,...,2k-11…

.NET Core微服务之基于IdentityServer建立授权与验证服务(续)

上一篇《.NET Core微服务之基于IdentityServer建立授权与验证服务》我们基于IdentityServer4建立了一个AuthorizationServer&#xff0c;并且继承了QuickStartUI&#xff0c;能够成功获取Token了。这一篇我们了解下如何集成API Service和MVC Web Application。一、集成API Serv…

P4587-[FJOI2016]神秘数【主席树】

正题 题目链接:https://www.luogu.com.cn/problem/P4587 题目大意 nnn个数&#xff0c;每次选择一个区间&#xff0c;然后询问这个区间的子集和所不能表示的最小的正整数。 解题思路 假设我们从小到大加入数字&#xff0c;我们发现如果这个数不是111显然这个区间内至少有一个…

【图论】【Floyed】舞会邀请(CODE[VS] 2604)

舞会邀请 CODE[VS] 2604 题目大意&#xff1a; Smart要叫一些人开Party&#xff0c;每个人可以通知一部分人&#xff0c;Smart去通知一些人&#xff0c;再让这些人去通知其他人&#xff0c;问Smart最少通知几个人&#xff0c;可以使全部人都被通知到 原题&#xff1a; 题目…

ASP.NET Core 2.1 : 十一. 如何在后台运行一个任务

在大部分程序中一般都会需要用到后台任务&#xff0c; 比如定时更新缓存或更新某些状态。一、应用场景以调用微信公众号的Api为例&#xff0c; 经常会用到access_token&#xff0c;官方文档这样描述&#xff1a;“是公众号的全局唯一接口调用凭据&#xff0c;有效期目前为2个小…

【Floyed】工厂的烦恼(ssl 1762)

工厂的烦恼 ssl 1762 题目大意&#xff1a; 求一个图中最长的路线的长度 原题&#xff1a; Description 某工厂发现厂里的机器在生产产品时要消耗大量的原材料&#xff0c;也就是说&#xff0c;有大量的原材料变成了废物。因此厂里想找出消耗原材料最大的一条生产线路进行…

P3899-[湖南集训]谈笑风生【主席树】

正题 题目链接:https://www.luogu.com.cn/problem/P3899 题目大意 给出nnn个点的一棵有根树&#xff0c;每次询问一个(p,k)(p,k)(p,k)&#xff0c;求有多少个点对(b,c)(b,c)(b,c)满足 ppp和bbb是ccc的祖先bbb与ppp的距离不超过kkk 蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤蛤…

好代码是管出来的——.Net中的代码规范工具及使用

上一篇文章好代码是管出来的——C#的代码规范介绍了编码标准中一些常用的工具&#xff0c;本篇就具体来介绍如何使用它们来完成代码管理。  本文主要内容有&#xff1a;Roslyn简介开发基于Roslyn的代码分析器常用的基于Roslyn的代码分析器在.Net Framework项目中使用代码分析…

NCPC2018 D.Delivery Delays[二分答案+DP check]

Delivery Delays 题意 100010001000个点,500050005000条边的无向图,披萨店在111号店.100010001000份披萨订单,每个订单有下单时间,送达地点,披萨制作出来的时间.你是快递员初始在111号点,每次可以拿无穷多披萨,送完以后返回111号点继续送,送餐的时候要求按照下单顺序送达,求等…

P6046-纯粹容器【数学期望,组合数】

正题 题目链接:https://www.luogu.com.cn/problem/P6046 题目大意 nnn个数&#xff0c;每次选择两个相邻的数删除小的那个&#xff0c;求每个数期望存活轮数。 解题思路 相当于一条链每次缩掉一条边&#xff0c;我们发现其实每个点只需要考虑左右第一个比它大的就好了。定义…

【dfs】病毒(jzoj 1284)

病毒 题目大意&#xff1a; 有n&#xff08;1<n<1000&#xff09;头奶牛&#xff0c;d&#xff08;1<d<15&#xff09;种病毒&#xff0c;每头奶牛身上有可能有很多种病毒病毒&#xff0c;每头奶牛挤出的牛奶是混在一起放的&#xff0c;问最多可以挤多少头奶牛的…

探讨.NET Core的未来

本文要点与传统的.NET Framework相比&#xff0c;.NET Core平台具有显著的性能优势。.NET Core在Microsoft平台之外也广为采用&#xff0c;并受益于强大的社区参与。.NET Core在设计上采用以服务器为中心&#xff0c;而非聚焦于Windows。.NET Core开发受益于这种设计。.NET Cor…

HDU5985 Lucky Conins 概率题

Lucky Conins 题意 最多共101010种硬币,所有的硬币之和不超过100000100000100000,每次将所有的硬币抛出,第iii中硬币正面朝上的概率为pip_ipi​,将反面朝上的硬币移除掉.直至最后剩一种硬币或没有硬币则停止.若最后剩余一种硬币,则称这种硬币是幸运的,求每种硬币的幸运概率. …

P6619-[省选联考2020A/B卷]冰火战士【树状数组二分】

正题 题目链接:https://www.luogu.com.cn/problem/P6619 题目大意 有火系战士和冰系战士有一个温度和一个战斗力&#xff0c;每次加入或删除一个战士&#xff0c;要求一个最大的kkk使得温度不低于kkk的火系战士战斗力和温度不高于kkk的冰系战士战斗力和的最小值最大。 解题思…

【数论】分数拆分

分数拆分 题目大意&#xff1a; 给出一个数k&#xff0c;问满足1/k1/x1/y且x>y的x,y有多少对 原题&#xff1a; 解题思路&#xff1a; 首先1k1x1y\frac{1}{k}\frac{1}{x}\frac{1}{y}k1​x1​y1​,变式为1k−1y1x\frac{1}{k}-\frac{1}{y}\frac{1}{x}k1​−y1​x1​,然后再…

.NET Core Community 第三个千星项目诞生:爬虫 DotnetSpider

DotnetSpider 至力于打造一个轻量化、高效率、易开发、可管理的一体化爬虫框架。它的核心要素是URL调度、基本的网页内容下载器、基于爬虫实体类的爬虫实现模式、常用数据库的支持、多线程的支持、状态的监控、运行日志、网页端管理。DotnetSpider 具有相当高的可定制性&#x…

Wannafly 挑战赛27 题解

Wannafly 挑战赛27 题目连接 https://www.nowcoder.com/acm/contest/215#question A.灰魔法师 题目 题解 考虑到可能的完全平方数只有400400400多个,因此对于每种数,直接暴力枚举所有的完全平方数计算一下就可以了. 代码 #include <iostream> #define int long lon…

【开源】OSharpNS,轻量级.net core快速开发框架发布

OSharpNS简介OSharp Framework with .NetStandard2.0&#xff08;OSharpNS&#xff09;是OSharp的以.NetStandard2.0为目标框架&#xff0c;在AspNetCore的现有组件 Microsoft.Extensions.DependencyInjection&#xff0c;Microsoft.Extensions.Configuration&#xff0c;Micro…

ATcoder-Replace Digits【线段树】

正题 题目链接:https://atcoder.jp/contests/abl 题目大意 nnn个数字开始全是111&#xff0c;要求支持 修改一个区间为一个数字&#xff08;是1∼91\sim 91∼9的数&#xff09;求所有数字串起来%998244353\%998244353%998244353 解题思路 其实就是第iii个数字乘上10i10^i10i…