背景 给出一个整数 n(n<10^30) 和 k 个变换规则(k<=15). 规则:一位数可变换成另一个一位数:规则的右部不能为零. 例如:n=234.有规则(k=2):2-> 53-> 6上面的整数 234 经过变换后可能产生出的整数为(包括原数):234534264564共 4 种不同的产生数 描述 给出一个整数 n 和 k 个规则. 求出:经过任意次的变换(0次或多次),能产生出多少个不同整数. 仅要求输出个数. 格式 输入格式 n kx1 y1x2 y2... ...xn…
https://www.luogu.org/problem/P1037 题目描述 给出一个整数 n(n<1030) 和 k 个变换规则(k<=15). 规则: 一位数可变换成另一个一位数:规则的右部不能为零. 例如:n=234.有规则(k=2): 2-> 5 3-> 6 上面的整数 234 经过变换后可能产生出的整数为(包括原数): 234 534 264 564 共 4 种不同的产生数 问题: 给出一个整数 n 和 k 个规则. 求出: 经过任意次的变换(0次或多次),能产生出多…
传送门 先用 floyd 求出每一个数可以变成那些数. 然后利用乘法原理求解,需要高精度. 代码 #include <cstdio> #include <cstring> #include <iostream> using namespace std; const int MAXN = 101; char s[MAXN]; char c[MAXN]; int map[10][10]; inline char *read() { scanf("%s",…
题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2.每次取走的各个元素只能是该元素所在行的行首或行尾: 3.每次取数都有一个得分值,为每行取数的得分之和,每行取数的得分 = 被取走的元素值*2^i,其中i表示第i次取数(从1开始编号): 4.游戏结束总得分为m次取数得分之和. 帅帅想请你帮忙写一个程序,对于任意矩阵,可以求出取数后的最大得分. 输入输…
https://www.luogu.org/problem/show?pid=1005   dp好想,高精度练手题,有点不舒服的是前后取数位置的计算,代码量太少才会写题这么慢,noip之前虽然重点放在知识点补全上但是基础还是要打扎实. 代码 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<cmath> #include<qu…
这道题目折腾了我一个下午,本来我的初步打算是用SPFA(),进行搜索,枚举出发点,看看能到达某个点多少次,就是出发点到该点的路径数,如果出现环,则置为-1,关键在于这个判环过程,如果简单只找到某个点是为环路上一点,即访问它的次数超过了所有点的点数目,这样就会出问题,因为它会影响其他点,下一步是否将它进入队列,如果进入,会造成无限循环,不进的话,根本得不出正确结果,后来我写了个judge函数,判断该点是否还能影响其他点,这样的话,因为要全图搜索,又TLE了... 没办法,只好换了网站说的FLOYD…
2822: [AHOI2012]树屋阶梯 Description 暑假期间,小龙报名了一个模拟野外生存作战训练班来锻炼体魄,训练的第一个晚上,教官就给他们出了个难题.由于地上露营湿气重,必须选择在高处的树屋露营.小龙分配的树屋建立在一颗高度为N+1尺(N为正整数)的大树上,正当他发愁怎么爬上去的时候,发现旁边堆满了一些空心四方钢材(如图1.1),经过观察和测量,这些钢材截面的宽和高大小不一,但都是1尺的整数倍,教官命令队员们每人选取N个空心钢材来搭建一个总高度为N尺的阶梯来进入树屋,该阶梯每一步…
题目描述 给出一个整数 n (n<1030)和 k 个变换规则 (k < 15) . 规则: 一位数可变换成另一个一位数: 规则的右部不能为零. 例如:n = 234 .有规则( k=2 ): 2-> 53-> 6上面的整数 234 经过变换后可能产生出的整数为(包括原数): 234 534 264 564 共44 种不同的产生数 问题: 给出一个整数 n 和 k 个规则. 求出: 经过任意次的变换( 0 次或多次),能产生出多少个不同整数. 仅要求输出个数. 思路 floyd+高…
题目传送门 /* 题意:转换就是求n位数字,总和为s/2的方案数 DP+高精度:状态转移方程:dp[cur^1][k+j] = dp[cur^1][k+j] + dp[cur][k]; 高精度直接拿JayYe的:) 异或运算的规则: 0⊕0=0,0⊕1=1 1⊕0=1,1⊕1=0 口诀:相同取0,相异取1 */ #include <cstdio> #include <cstring> #include <string> #include <iostream>…
Description 求拼成阶梯状的方案数. Sol 高精度+Catalan数. 我们可以把最后一行无线延伸,所有就很容易看出Catalan数了. \(f_n=f_0f_{n-1}+f_1f_{n-2}+f_2f_{n-3}+...+f_{n-1}f_0\) 这就是Catalan数了,高精贴板子... Code /************************************************************** Problem: 2822 User: BeiYu La…