luogu P1037 产生数 x】的更多相关文章

P1037 产生数 题目描述 给出一个整数 n(n<10^30) 和 k 个变换规则(k<=15). 规则: 一位数可变换成另一个一位数: 规则的右部不能为零. 例如:n=234.有规则(k=2): 2->5 3->6 上面的整数 234 经过变换后可能产生出的整数为(包括原数): 234 534 264 564 共 4 种不同的产生数 问题: 给出一个整数 n 和 k 个规则. 求出: 经过任意次的变换(0次或多次),能产生出多少个不同整数. 仅要求输出个数. 输入输出格式 输入…
题目链接:https://www.luogu.com.cn/problem/P1037 题目描述 给出一个整数 \(n(n<10^{30})\) 和 \(k\) 个变换规则 \((k \le 15)\) . 规则: 一位数可变换成另一个一位数: 规则的右部不能为零. 例如:\(n=234\).有规则(\(k=2\)): \(2\)->\(5\) \(3\)->\(6\) 上面的整数\(234\)经过变换后可能产生出的整数为(包括原数): \(234\) \(534\) \(264\) \…
手动博客搬家:本文发表于20180310 11:46:11, 原地址https://blog.csdn.net/suncongbo/article/details/79506484 题目链接: (Luogu)https://www.luogu.org/problemnew/show/P3172 (BZOJ)http://www.lydsy.com/JudgeOnline/problem.php?id=3930 题目大意: 给定N,M,L,R,从区间[L,R]内选出N个整数使得它们的gcd恰好为m…
luogu loj 被这道题送退役了 题是挺有趣的,然而可能讨论比较麻烦,肝了2h 又自闭了,鉴于CSP在即,就只能先写个打表题解了 下面令\(n<m\),首先\(n=1\)时答案为\(2^m\),然后打表可以发现,\(\forall i>n+1\ ans_{n,i}=3^{m-(n+1)}ans_{n,n+1}\),现在考虑怎么快速打表 下面记从上往下行编号从\(1\)到\(n\),从左往右列编号从\(1\)到\(m\).要发掘两个性质,第一个是对于一条左下到右上的对角线,填的数一定是先一段…
题目链接:https://www.luogu.org/problemnew/show/P1012 题解: 首先,同等长度的数字,用字典序的方法比较大小,和直接比较数字大小是一样的. 其次,对于任意两个数字进行拼接,哪个放在前面哪个放在后面,直接用字符串拼接起来,比较一下两种情况哪个比较大就可以了. 但是,暂时我还没想到怎么证明,在多个数字拼接时,两两比较拼接大小,再加上排序就可以得出正确答案…… AC代码: #include<bits/stdc++.h> using namespace std…
[题目描述:] 给出一个整数 n \((n<10^{30})\) 和 k 个变换规则\((k≤15)\) . 规则: 一位数可变换成另一个一位数: 规则的右部不能为零. 例如: n=234 .有规则( k=2 ): 2 -> 5 3 -> 6 上面的整数 234 经过变换后可能产生出的整数为(包括原数): 234 534 264 564 共 4 种不同的产生数 [问题:] 给出一个整数 n 和 k 个规则. 求出: 经过任意次的变换( 0 次或多次),能产生出多少个不同整数. 仅要求输出…
原题传送门 这题需要运用莫比乌斯反演(懵逼钨丝繁衍) 设F(t)表示满足gcd(x,y)%t=0的数对个数,f(t)表示满足gcd(x,y)=t的数对个数,实际上答案就是f(d) 这就满足莫比乌斯反演的关系式了 显然我们珂以得知F(t)=(b/t)*(d/t) 我们根据反演的第二个公式便珂以得出 \[f(d)=\sum_{n|d}\mu(\frac{d}{n})F(d)\] 在用下整除分块就过了 #include <bits/stdc++.h> #define N 1000005 #defin…
原题链接:P3217 [HNOI2011]数矩形 什么??!怎么又是计算几何,您钛毒瘤了-- 这道题真的是毒瘤 凸包?旋转卡壳? 看一下数据,N<=1500? 暴力 没错,就是暴力,N^2没毛病 枚举任意两个点,计算距离和连成线段的中点,这些线段作为矩形的对角线 矩形对角线长度相等,互相平分 所以--给线段排序 cmp先按线段长度排序,再按中点坐标排序 最后暴力统计 end 上代码 记得要用long long #pragma GCC optimize("O3") #include…
题面 我先对数字根打了个表,然后得到了一个结论:\(a\)的数字根=\((a-1)mod 9+1\) 我在询问大佬后,大佬给出了一个简单的证明: \(\because 10^n\equiv 1(mod 9)\) \(\therefore a_{n}*10^n+a_{n-1}*10^{n-1}+...+a_{1}\equiv a_{n}+a_{n-1}+...+a_{1}(mod 9)\) 这样的话一个区间\([l,r]\)的数字根就可以转化为\((pre_{r}-pre_{l-1}-1)mod…
题目链接 蒟蒻今天终于学会了AC自动机,感觉很稳 (后一句愚人节快乐) 这题开一个f[i][j][k]表示有没有受到限制,正在枚举第j位,来到了AC自动机的第k个节点 的方案数 随后可以刷表更新 注意如果是在枚举第一位的话注意前导0 #include<cstdio> #include<algorithm> #include<cstring> #include<cctype> #include<cstdlib> #include<queue&…
题目链接 正式迈入了数位DP的大门…… 心情激动 (看我立个flag,我如果专攻数位DP的话,到wc之前就会有秒数位DP蓝题的能力) 数位DP讲解链接 讲的非常详细,良心博客.比我写的博客加在一起还要良心. 设f[i][j]表示第i位,上一位是j的方案数. 按照那篇博客的指示枚举即可,注意判断前导零. #include<cstdio> #include<cstdlib> #include<cctype> #include<algorithm> #includ…
题目描述 给出一个整数n(n<10^30)和k个变换规则(k≤15). 规则: 一位数可变换成另一个一位数: 规则的右部不能为零. 例如:n=234.有规则(k=2): 2->53->6上面的整数234经过变换后可能产生出的整数为(包括原数): 234534264564共4 种不同的产生数 问题: 给出一个整数 n 和k 个规则. 求出: 经过任意次的变换(0次或多次),能产生出多少个不同整数. 仅要求输出个数. 输入输出格式 输入格式: 键盘输入,格式为: n kx1​ y1x2​ y…
题目背景 本题由世界上最蒟蒻最辣鸡最撒比的SOL提供. 寂月城网站是完美信息教室的官网.地址:已和谐 . 题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌! 好在在他眼里,并不是所有数都是萌的.只有满足“存在长度至少为2的回文子串”的数是萌的——也就是说,101是萌的,因为101本身就是一个回文数:110是萌的,因为包含回文子串11:但是102不是萌的,1201也不是萌的. 现在SOL想知道从l到r的所有整数中有多少个萌数. 由于答案可能很大,所以只需要输出答案对1000000007(10^…
我本来想看看SAM,就看见了这个.. 这道题很容易让人想到数位DP,用\(f[i][j]\)表示考虑到第\(i\)位,最后一位是\(j\)的方案数.看到1e18,直接矩阵快速幂加速,因为它每位转移都是差不多的.. (本咸鱼复制的矩阵乘法的板子,结果忘了调矩阵大小,调了半天Orz) #include <iostream> #include <cstring> #include <cstdio> #include <cmath> using namespace…
题目描述 出题是一件痛苦的事情! 题目看多了也有审美疲劳,于是我舍弃了大家所熟悉的 A+B Problem,改用 A-B 了哈哈! 好吧,题目是这样的:给出一串数以及一个数字 C,要求计算出所有 A-B=C 的数对的个数.(不同位置的数字一样的数对算不同的数对) 输入格式 第一行包括22个非负整数N和C,中间用空格隔开. 第二行有N个整数,中间用空格隔开,作为要求处理的那串数. 输出格式 输出一行,表示该串数中包含的所有满足A-B=C的数对的个数. 说明/提示 对于73%73%的数据,N≤200…
P1036 选数 题目描述 已知 n 个整数 x1,x2,…,xn,以及一个整数 k(k<n).从 n 个整数中任选 k 个整数相加,可分别得到一系列的和.例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为: 3+7+12=22 3+7+19=29 7+12+19=38 3+12+19=34. 现在,要求你计算出和为素数共有多少种. 例如上例,只有一种的和为素数:3+7+19=29). 输入输出格式 输入格式: 键盘输入,格式为: n , k (1<=…
LINK:数矩形 题意:给出n个点 求出一个最大的矩形. 矩形可以使斜着的.(不会告诉你样例我算了几年 这道题的一个潜规则 矩形面积都是整数 我也不知道为啥一定是整数 姑且是题目输出的要求吧. 所以用double什么的精度会挂的很惨. 考虑暴力 n^3枚举点 剩下一个点利用一些奇奇怪怪的向量什么的可以计算出来.(难写+TLE 考虑矩形的性质 对边平行且相等还得有一个角是直角 这个性质过于没用. 考虑另一个性质 对角线相等.这个性质就算是一个强性质. 我们n^2枚举点对 可以把对角线拿出来 然后围…
题目描述 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213 又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613 输入输出格式 输入格式: 第一行,一个正整数n. 第二行,n个正整数. 输出格式: 一个正整数,表示最大的整数 输入输出样例 输入样例#1: 3 13 312 343 输出样例#1: 34331213 很水的排序2333开始还以为是贪心 #include<…
好题鸭.. 不好直接求三角形个数,那就用全集-补集,转化为求三点共线的数量. 具体求法是求出水平共线数量与竖直共线数量和斜线共线数量. 用排列组合的知识可知为水平和竖直的为$C_n^3$​与$C_m^3​$. 求斜线三点共线:显然,对于点$(a,b) (x,y)$连成的线段$(其中a>x,b>y)$,在它们中间有$gcd(a-x,b-y)-1$个整点,因此基本的思路就是枚举两个点,然后第3个点就是$gcd(a-x,b-y)-1$种可能了.我们又发现,这些线段是可以平移和对称(/和\)的,于是并…
题目链接 带修改莫队模板. 加一个变量记录现在是第几次修改,看看当前枚举的询问是第几次修改,改少了就改过去,改多了就改回来. 话说我栈用成队列了能过样例?!!!! 从此深信一句话:样例是出题人精心设计的,绞尽脑汁才设计出一个能让错误代码通过的数据qwqqqqq #include<cstdio> #include<cstdlib> #include<cctype> #include<algorithm> #include<cstring> #inc…
洛谷 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):…
P2859 [USACO06FEB]摊位预订Stall Reservations 维护一个按右端点从小到大的优先队列 蓝后把数据按左端点从小到大排序,顺序枚举. 每次把比右端点比枚举线段左端点小的数据从优先队列中删掉. 在整个过程中队列的最大长度即为答案. 总之用优先队列模拟一下就ok了 对于luogu需要输出方案数的问题: 再开一个优先队列存未用的编号 每次有线段进队时取走最小的编号,出队时再还回来. 似乎暴力也行(大雾) #include<iostream> #include<cst…
因为本蒻实在太蒻了...对于即将到来的NOIP2018ssfd,所以下决心要把自己近期做过的题目(衡量标准为洛谷蓝题难度或以上)整理一下,归归类,简单地写一下思路,就当作自己复习了吧qwq 本随笔持续更新,自2018.9.19开始,计划更新到2018NOIP截止 (但是因为最近写的比赛题比较多..但是没有办法把这些题放上来..所以只能放上主流OJ上面有的题) 如果本蒻今年有幸没有AFO掉,flag先里在这里--之后学省选知识点的时候会重开一贴更新的,到时候希望是更有难度的题目吧. 搜索 [NOI…
搜索 [NOIP2013]华容道 最短路+带剪枝的搜索,是一个思维难度比较大的题目. CF1064D Labyrinth 考虑贪心,用双向队列bfs [NOIP2017]宝藏 剪枝搜索出奇迹 题解:https://www.cnblogs.com/fengxunling/p/9777606.html luogu 有趣的数 [ZJOI2007] 时态同步 [NOIP2002] 矩形覆盖 这题数据太水... 题解:https://www.cnblogs.com/fengxunling/p/984161…
题目链接 luogu P2657 [SCOI2009]windy数 题解 我有了一种所有数位dp都能用记忆话搜索水的错觉 代码 #include<cstdio> #include<algorithm> inline int read() { int x = 0,f = 1; char c = getchar(); while(c < '0' || c > '9') c = getchar(); while(c <= '9' && c >= '…
Libre 6007 「网络流 24 题」方格取数 / Luogu 2774 方格取数问题 (网络流,最大流) Description 在一个有 m*n 个方格的棋盘中,每个方格中有一个正整数.现要从方格中取数,使任意 2 个数所在方格没有公共边,且取出的数的总和最大.试设计一个满足要求的取数算法.对于给定的方格棋盘,按照取数要求编程找出总和最大的数. Input 第 1 行有 2 个正整数 m 和 n,分别表示棋盘的行数和列数.接下来的 m 行,每行有 n 个正整数,表示棋盘方格中的数. Ou…
Luogu 1903 数颜色 | 分块 莫队不会啊-- 这道题直接分块也能卡过! 这道题的做法很有趣:对于每个位置i,记录它的颜色a[i]上一次出现的位置,记为pre[i]. 这样在查询一个区间[l, r]的时候,对于每个区间内的元素,如果pre[i] < l则这个颜色是第一次出现,ans++. 可以分块后把每一块内部的pre[i]都排好序,这样只要二分查找lower_bound(l)就可以知道块内有多少pre[i] < l的元素. 剩下不完整的块只需单独处理. 问题是修改的时候没法修改了,只…
https://www.luogu.org/problem/show?pid=1025 n的k划分 且不出现划分成0的情况  可以 分为两种情况 所有划分的数 都大于1的情况 至少划分的数里面有1的情况 并且 这两个情况是互补的 第一个情况可以 当作把所有的数 都减去1  然后就相当于 dp[n-k][k]  就是n-k的k划分 然后另外一个就是  dp[n-1][k-1] 就是n-1 的 k-1划分 #include<bits/stdc++.h> using namespace std; ]…
题目链接:https://www.luogu.org/problemnew/show/P1004 标准的DP,不明白为什么有普及+提高的难度 四维DP[i][j][k][l] 表示第一遍走到i,j格子,第二遍走到k,l格子 状态转移方程:max(dp[i-1][j][k-1][l],dp[i-1][j][k][l-1],dp[i][j-1][k-1][l],dp[i][j-1][k][l-1] 每走一步要加上当前格子的数g[i][j]+g[k][l] 注意如果 当i==k&&j==l的时候…
题目链接: https://www.luogu.org/problemnew/show/P3813 题目: 给定一个 h*w的矩阵,矩阵的行编号从上到下依次为 1..h,列编号从左到右依次1..w. 在这个矩阵中你需要在每个格子中填入 1..m中的某个数. 给这个矩阵填数的时候有一些限制,给定 n 个该矩阵的子矩阵,以及该子矩阵的最大值 v,要求你所填的方案满足该子矩阵的最大值为 v. 现在,你的任务是求出有多少种填数的方案满足 n 个限制. 两种方案是不一样的当且仅当两个方案至少存在一个格子上…