洛谷 P1037 产生数

https://www.luogu.org/problemnew/show/P1037

JDOJ 1298: [NOIP2002]产生数 T3

https://neooj.com:8082/oldoj/problem.php?id=1298

题目描述

给出一个整数n(n<10^{30})n(n<1030)和kk个变换规则(k \le 15)(k≤15)。

规则:

一位数可变换成另一个一位数:

规则的右部不能为零。

例如:n=234n=234。有规则(k=2k=2):

22->55
33->66
上面的整数234234经过变换后可能产生出的整数为(包括原数):

234234
534534
264264
564564
共44 种不同的产生数

问题:

给出一个整数 nn 和kk 个规则。

求出:

经过任意次的变换(00次或多次),能产生出多少个不同整数。

仅要求输出个数。

输入输出格式

输入格式:

键盘输入,格式为:

n knk
x_1 y_1x1​y1​
x_2 y_2x2​y2​
... ...

x_n y_nxn​yn​

输出格式:

屏幕输出,格式为:

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

输入输出样例

输入样例#1: 复制

234 2
2 5
3 6
输出样例#1: 复制

4
#include<cstdio>
#include<cstring>
int z,ans=,k;
int a[],b[];
int t[];
bool v[];
char s[];
void dfs(int e)
{
for(int i=;i<=k;i++)
{
if(!v[b[i]]&&a[i]==e)
{
z++;
v[b[i]]=true;
dfs(b[i]);
}
}
}
int main()
{
scanf("%s",s);
scanf("%d",&k);
for(int i=;i<=k;i++)
scanf("%d%d",&a[i],&b[i]);
int l=strlen(s);
for(int i=;i<l;i++)
{
z=;
int c=s[i]=s[i]-'';
memset(v,false,sizeof(v));
v[c]=true;
dfs(c);
t[i]=+z;
}
int k[][];
memset(k,,sizeof(k));
for(int i=l;i>=;i--)
t[i]=t[i-];
k[][]=;
k[][]=;
k[][]=t[];
for(int i=;i<=l;i++)
{
k[i][]=k[i-][];
int x=;
for(int j=;j<=k[i][];j++)
{
k[i][j]=k[i-][j]*t[i]+x;
x=k[i][j]/;
if(k[i][j]>=)
k[i][j]%=;
}
if(x)
{
k[i][]++;
k[i][k[i][]]=x;
}
}
for(int i=k[l][];i>=;i--)
printf("%d",k[l][i]);
}

NOIP 2002 产生数的更多相关文章

  1. NOIP 2002 选数

    洛谷 P1036 选数 洛谷传送门 JDOJ 1297: [NOIP2002]选数 T2 JDOJ传送门 Description ​ 已知 n 个整数 x1,x2,-,xn,以及一个整数 k(k< ...

  2. NOIP 2002提高组 选数 dfs/暴力

    1008 选数 2002年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 已知 n 个整数 x1,x2,…, ...

  3. [NOIP 2002普及组]产生数(floyd+高精度)

    https://www.luogu.org/problem/P1037 题目描述 给出一个整数 n(n<1030) 和 k 个变换规则(k<=15). 规则: 一位数可变换成另一个一位数: ...

  4. NOIP 2002过河卒 Label:dp

    题目描述 如图,A 点有一个过河卒,需要走到目标 B 点.卒行走规则:可以向下.或者向右.同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点.例如 ...

  5. NOIP 2002 提高组 字串变换

    题目描述 已知有两个字串 A, B 及一组字串变换的规则(至多6个规则): A1 -> B1 A2 -> B2 规则的含义为:在 A$中的子串 A1 可以变换为 B1.A2 可以变换为 B ...

  6. 2018.10.14 NOIP训练 猜数游戏(决策单调性优化dp)

    传送门 一道神奇的dp题. 这题的决策单调性优化跟普通的不同. 首先发现这道题只跟r−lr-lr−l有关. 然后定义状态f[i][j]f[i][j]f[i][j]表示猜范围为[L,L+i−1][L,L ...

  7. 2018.07.08 NOIP模拟 好数(线段树)

    好数 题目背景 SOURCE:NOIP2016-AHSDFZ T3 题目描述 我们定义一个非负整数是"好数",当且仅当它符合以下条件之一: 1. 这个数是 0 或 1 . 2. 所 ...

  8. 过河卒 NOIp 2002 dp

    题目描述 棋盘上AAA点有一个过河卒,需要走到目标BBB点.卒行走的规则:可以向下.或者向右.同时在棋盘上CCC点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点.因此称之为“马拦 ...

  9. [ NOIP 2002 ] TG

    \(\\\) \(\#A\) 均分纸牌 有\(N\)堆纸牌,每堆有若干张,但纸牌总数必为\(N\)的倍数.可以在任一堆上取若干张纸牌,然后移动给其左右任意一侧的纸牌堆,求将所有的牌堆牌数都变为平均值最 ...

随机推荐

  1. Ultimate Chicken Horse GameProject第三次迭代成果文档

    经过三次迭代我们实现了游戏的基本功能 项目文档的github链接:https://github.com/k6tok12355/Ultimate-Chicken-Horse 下面是我们在第一次迭代中设定 ...

  2. 从项目中理解let和const为什么如此重要

    变量声明 变量声明方式 伴随js诞生的var // 语法 var varName = value var a = 1 // 这样子你就得到了一个变量 var缺陷场景分析 var specialUser ...

  3. celery分布式任务队列的使用

    一.Celery介绍和基本使用 Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celery ...

  4. 基于web公交查询系统----管理员公交站点管理页面实现

    主要用到内容:vue,coreui bootstrap框架,Ajax,springmvc搭建的接口,css之类的都是顺手拈来的简单的界面设计 网页代码: <!DOCTYPE html> & ...

  5. 百度APP移动端网络深度优化实践分享(三):移动端弱网优化篇

    本文由百度技术团队“蔡锐”原创发表于“百度App技术”公众号,原题为<百度App网络深度优化系列<三>弱网优化>,感谢原作者的无私分享. 一.前言 网络优化解决的核心问题有三个 ...

  6. 03Shell条件测试

    条件测试 Shell 条件测试 格式 1: test 条件表达式 格式 2: [ 条件表达式 ] 格式 3: [[ 条件表达式 ]] 具体参数说明可以通过 man test 进行查看 文件测试 [ 操 ...

  7. python语法01

    在某.py文件中调用其他.py文件中的内容. 全局变量的使用. 线程的使用. if name == 'main': 的作用 新建两个python脚本文件 f1File.py ""& ...

  8. 1. mvc 树形控件tree + 表格jqgrid 显示界面

    1.界面显示效果 2.资源下载 地址 1. jstree  https://www.jstree.com/   2.表格jqgrid  https://blog.mn886.net/jqGrid/  ...

  9. Visual Studio 2017使用ODT 连接Oracle 数据库出现异常

    2019.5.23 更新 突然发现原来是是sqlnet.ora在搞鬼,只要将SQLNET.AUTHENTICATION_SERVICES=(nts)  改为 SQLNET.AUTHENTICATION ...

  10. 2019前端UI框架排行榜

    一.Mint UI 流行指数:★★★★ Mint UI是 饿了么团队开发基于 Vue.js 的移动端UI框架,它包含丰富的 CSS 和 JS 组件,能够满足日常的移动端开发需要. 官网:https:/ ...