P1384 幸运数与排列】的更多相关文章

P1384 幸运数与排列 神奇的(逆)康托展开:求1到n的全排列中字典序第k小的排列 $k<=10^9<13!$,显然$k$最多只会影响后$13$位 前面一大串都是有序从小到大排列的,于是搞个数位dp 后面一小串用逆康托展开求出原串,枚举是否符合条件. #include<iostream> #include<cstdio> #include<cstring> #include<vector> #include<algorithm> u…
显然我们只要知道1~x范围有多少幸运数(用f(x)表示),lucky(x,y)=f(y)-f(x-1). 解法1. 计算排列数 由于y<=1000000000这个规模,我们不能暴力验证每个数是否是幸运数.可以想到,对于同样的数字组成,不同的数字排列对应不同的幸运数,比如12,21.那么就只需枚举合法的数字组成,算出相应的排列数.设数字i有a[i]个,n=Σa[i],则对应的排列数是n!/∏a[i]!. 接下来就只要枚举那些合法的数字组成了.我们希望枚举时对每位的可取数字是没有限制的,可以分类来进…
题目描述 4和7是两个幸运数字,我们定义,十进制表示中,每一位只有4和7两个数的正整数都是幸运数字. 前几个幸运数字为:4,7,44,47,74,77,444,447... 现在输入一个数字K,输出第K个幸运数. 输入 第一行一个数字T(T<=1000)表示测试数据的组数.对于每组测试数据,输出一个数K 输出 每组数据输出一行,第K个幸运数. 样例输入 3 5 100 1000000000 样例输出 74 744747 77477744774747744747444444447 分析: 我们发现…
[COJ0528]BJOI幸运数 试题描述 输入 见"试题描述" 输出 见"试题描述" 输入示例 见"试题描述" 输出示例 见"试题描述" 数据规模及约定 见"试题描述" 题解 首先想到一个比较暴力的数位 dp 方法:设 f[i][j][s1][s2] 表示前 i 位中,最高位为 j,其中奇数位的数字和为 s1,偶数位的数字和为 s2,满足这个条件的数的个数. 然而,这样的话每次询问都不得不每位处理时都枚举…
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1230 dp(l,s,ss)表示长度为l的数各位和为s,各位平方和为ss的幸运数的个数. #include <bits/stdc++.h> #pragma comment(linker, "/STACK:10240000,10240000") using namespace std; typedef long long LL; ; ; ;…
题目链接: 题目 Problem 1007 幸运数 Time Limit: 2000 mSec Memory Limit : 131072 KB 问题描述 皮特的幸运数是2和5.只由幸运数字2和5组成的数列,称为幸运数列.对于幸运数列,有两种操作. 1.switch i j 表示数列从第i个数到第j个数中,所有的2改成5,所有的5改成2.例如幸运数列25525,执行switch 2 4操作,则数列变成22255 2.count 表示要求输出当前幸运数列的最长不下降子序列(即子序列中后面的数都不小…
晚饭后朋友发来个问题,正好无事做,动手写了一下 若一个正整数有偶数个不同的真因子,则称该数为幸运数.如4含有2个真因子为 1 和 2 .故4是幸运数.求[2,100]之间的全部幸运数之和. 常规思路 被除数一直除以 1 2 3 ... 直到除以它自身,不过这种比较消耗资源(周知python简洁但效率不高) getf.py def get_Factor(x): """ n 需要求真因数的数(被除数) x x 除数 y rem 余数 quo 商 """…
历届试题 幸运数 时间限制:1.0s   内存限制:256.0MB 问题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的"筛法"生成 . 首先从1开始写出自然数1,2,3,4,5,6,.... 1 就是第一个幸运数. 我们从2这个数开始.把所有序号能被2整除的项删除,变为: 1 _ 3 _ 5 _ 7 _ 9 .... 把它们缩紧,重新记序,为: 1 3 5 7 9 .... .这时,3为第2个幸运数,然后把所有能被3整除的序号位置的数删去.注意,是序号位置,不是那个数本身…
/*C: cltt的幸运数 Time Limit: 1 s      Memory Limit: 128 MB Submit Problem Description 一棵树有n个节点,共m次查询,查询a,b的最近公共祖先是否为好数?若好数的数目是幸运数,输出YES,否则输出NO. 好数:可以表示为2的指数幂.如:1, 2,4,8,16,32,-- 幸运数就是素数. Input nn(nn表示节点数目,接下来n−1n−1行,每行两个整数 x,yx,y 其中xx是yy的父节点) mm(表示查询数目,…
/*C: cltt的幸运数 Time Limit: 1 s      Memory Limit: 128 MB Submit Problem Description 一棵树有n个节点,共m次查询,查询a,b的最近公共祖先是否为好数?若好数的数目是幸运数,输出YES,否则输出NO. 好数:可以表示为2的指数幂.如:1, 2,4,8,16,32,-- 幸运数就是素数. Input nn(nn表示节点数目,接下来n−1n−1行,每行两个整数 x,yx,y 其中xx是yy的父节点) mm(表示查询数目,…