曦皓的幸运数

【题目描述】

仅包含4或7的数被称为幸运数。

一个序列的子序列被定义为从序列中删去若干个数,剩下的数组成的新序列。两个子序列被定义为不同的当且仅当其中的元素在原始序列中的下标的集合不相等。对于一个长度为N的序列,共有2^N个不同的子序列(包含一个空序列)。

一个子序列被称为不幸运的,当且仅当其中不包含两个相同的幸运数。

对于一个给定序列,求其中长度恰好为K的不幸运子序列的个数,答案 mod (10^9+7)输出。

【输入描述】

第一行两个正整数N、K,表示原始序列的长度和题目中的K;

接下来一行N个整数ai,表示序列中第i个元素的值。

【输出描述】

输出一个数,表示不幸运子序列的个数 mod (10^9+7)。

【样例输入】

样例1:

3 2

1 1 1

样例2:

4 2

4 7 4 7

【样例输出】

样例1:

3

样例2:

4

【数据范围及提示】

对于样例1,每个长度为2的子序列都是符合条件的。

对于样例2,4个不幸运子序列元素下标分别为:{1,2}、{3,4}、{1,4}、{2,3}。注意下标集{1,3}对应的子序列不是“不幸运”的,因为它包含两个相同的幸运数4。

时间: 2024-12-20 01:06:41

曦皓的幸运数的相关文章

【蓝桥杯】历届试题 幸运数

  历届试题 幸运数   时间限制: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整除的序号位置的数删去.注意,是序号位置,不是那个数本身能否

蓝桥杯 - 幸运数 (打表)

历届试题 幸运数 时间限制: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整除的序号位置的数删去.注意,是序号位置,不是那个数本身

51nod 1230:幸运数

51nod 1230:幸运数 题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1230 题目大意:如果一个数各个数位上的数字之和是质数,并且各个数位上的数字的平方和也是质数,则称它为幸运数.例如:120是幸运数,因为120的数字之和为3,平方和为5,均为质数,所以120是一个幸运数字.给定x,y,求x,y之间( 包含x,y,即闭区间[x,y])有多少个幸运数. 数位DP 代码如下: 1 #include <cs

幸运数的各位和[Codeforces-109A]

Codeforces Beta Round #84 (Div. 1 Only)  时间限制2000ms,内存限制256MB 问题大意:定义幸运数为十进制表示只包含4.7两个数码的数.例如47.744.4都是幸运数,而5.17.467不是. 已知一个幸运数的各位之和,求满足条件的幸运数的最小值.输入保证$1≤n≤10^6$. 这题用暴力方法就可以做.需要注意题目中的几个信息: 1)输入可能达到$10^6$,因此原数必然超过$10^6÷9>10^5$,因此无论用32位还是64位整数是不可能表示的下的

[51NOD1230]幸运数(数位DP)

题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1230 dp(l,s,ss)表示长度为l的数各位和为s,各位平方和为ss的幸运数的个数. 1 #include <bits/stdc++.h> 2 #pragma comment(linker, "/STACK:10240000,10240000") 3 using namespace std; 4 5 typedef long long

曦皓的旅游

[题目描述] 曦皓去一个国家旅游,共有N个旅游景点,N-1条双向连接的道路将它们联通起来,每一条道路有固定长度.一开始曦皓位于1号景点. 现在希望你能够求出旅行长度最小的方案,使得每个景点至少被访问到一次. [输入描述] 第一行一个整数N,代表景点数目: 接下来N-1行,每行三个整数s.t.w,表示有一条从s到t的双向道路,长度为w,s和t的编号从1开始. [输出描述] 一行一个整数,代表能够访问每个景点至少一次的方案的最小旅行长度. [样例输入] 样例1: 3 1 2 3 2 3 3 样例2:

京东笔试之幸运数问题:4,7

题目描述 4和7是两个幸运数字,我们定义,十进制表示中,每一位只有4和7两个数的正整数都是幸运数字. 前几个幸运数字为:4,7,44,47,74,77,444,447... 现在输入一个数字K,输出第K个幸运数. 输入 第一行一个数字T(T<=1000)表示测试数据的组数.对于每组测试数据,输出一个数K 输出 每组数据输出一行,第K个幸运数. 样例输入 351001000000000 样例输出 74744747 77477744774747744747444444447 思路 首先把4和7化为0

幸运数

文字描述:将队列法所描述得序列拿来比较会发现一个规律,如下:初始序列: 4 , 7 4,7 得序列2: 44 , 47 , 74 , 77 得序列3: 444 , 447 , 474 , 477 , 744 , 747 , 774 , 777 规律:每个序列是包含当前位数得所有幸运数,而且相较前一个序列是以2的倍数递增,每个序列得前一半以 4 开头,后一半是以 7 开头,当把头位去掉以后,剩下得幸运数正好是上一个序列,例如序列3包含所有位数为 3 3 得幸运数,而且前 4 个幸运数是以 4 开头

51nod 1230 幸运数

题目大意 如果一个数各个数位上的数字之和是质数,并且各个数位上的数字的平方和也是质数,则称它为幸运数. 例如:120是幸运数,因为120的数字之和为3,平方和为5,均为质数,所以120是一个幸运数字. 给定x,y,求x,y之间( 包含x,y,即闭区间[x,y])有多少个幸运数. Input 第1行:一个数T,表示后面用作输入测试的数的数量.(1 <= T <= 10000) 第2 - T + 1行:每行2个数,X, Y中间用空格分割.(1 <= X <= Y <= 10^18