网易互娱2017实习生招聘在线笔试第一场 题目1 : 电子数字
http://hihocoder.com/contest/ntest2016spring1/problem/1
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
描述
电子数字在生活中很常见,而许多的电子数字是由LED数码管制作而成。数字LED数码管一般由7个发光二极管封装在一起,组成’8’字型,引线在内部连接完成。如下图所示,我们可以对每个发光管进行编码从1到7。而数字0到数字9可以由这七根发光管的亮暗来表示。
对LED数码管的二极管进行编码
用LED数码管表示数字0-9
假设我们现在有从左到右排列好的K个LED数码管,并且我们已知每个数码管当前有哪些编号的二极管是亮着的,另外剩余的二极管由于某些原因,我们并不清楚它们的亮暗情况。由于已经有部分二极管是确定亮着的,所以每个LED数码管能表示的数字范围会有所缩小,譬如假设1号二极管已经确定是亮着的状态,那么这个LED数码管就不能表示数字1和4。
我们想知道的是,给定一个数N,在这K个LED数码管的当前亮暗的状态下,所有可能表示的数中,比N小的数有多少个。
注意,前导0是必须的,假设有4个数码管的话,’0000’表示0,’0123’表示123,即每个数的表示方法唯一。
输入
每个输入数据包含多个测试点。
第一行为测试点的个数 S ≤ 100。之后是 S 个测试点的数据。测试点之间无空行。
每个测试点的第一行为 K(1 ≤ K ≤ 5)和N(0 ≤ N ≤ 109)。之后是K行,每行表示对应数码管已点亮的二极管的情况。每行至少包含一个数字,表示对应点亮的二极管的编号,即每个数码管至少有一根二极管是点亮的。二极管编号的范围保证在1到7之间,且每行无重复编号。
注意表示数码管点亮情况的每行数字之间以及行首行末之间可能存在冗余空格,每行的字符总长度不超过100。
输出
对于每个测试点,对应的结果输出一行,表示这K个数码管在当前状态下,所有可能表示的数中,比N小的数有多少个。
样例解释
第一个样例中,只有’020’, ‘026’, ‘028’符合要求。
第三个样例中,只有’000’符合要求。
样例输入
3
3 50
3 11 4 5
1 5 6 7
4 100
1 2 34 5
67
1 17
样例输出
3
0
1
没做出来,,,,练吧
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <stack>
#include <cmath>
#include <string>
#include <set>
#include <cstring> //memset
#include <vector>
#include <algorithm>
#include <map>using namespace std;vector<vector<int>> vs;
int count_total;
int NN;//二维数组中
//vector<vector<int>> vs;
//分别按序从vs[0..vs.size()-1]盒子中取出一个数的组合数所形成的数字。
//因为每行中的数字已经排序,所以这个递归得到的数字是排序的
//所以当判断res >= NN 时退出就可以了。这样会快很多
int f(int index, int res) //用递归会超时
{if(index == vs.size())if(res >= NN)return 0;elsecount_total++;int num = vs[index].size();for(int i = 0; i < num; i++){int cur_res = res * 10;cur_res += vs[index][i];f(index + 1, cur_res);}
}int number[10][7] = {
{1,1,1,0,1,1,1}, //0
{0,0,1,0,0,1,0},
{1,0,1,1,1,0,1},
{1,0,1,1,0,1,1},
{0,1,1,1,0,1,0},
{1,1,0,1,0,1,1},
{1,1,0,1,1,1,1},
{1,0,1,0,0,1,0},
{1,1,1,1,1,1,1},
{1,1,1,1,0,1,1} //9
};int main()
{int S;while(scanf("%d", &S) != EOF){int K, N;for(int si = 0; si < S; si++){K = N = 0;scanf("%d %d", &K, &N);if(N == 0){printf("0\n");return 0;}NN = N;count_total = 0;vs.clear();char ch;int in1[7] = {0};int in_total = 0;for(int i = 0; i < K; i++) //k行{memset(in1,0,sizeof(in1));in_total = 0;getchar();while(scanf("%c", &ch) != EOF && ch != '\n'){if(ch != ' '){in1[in_total++] = ch - '0' - 1;}}vector<int> one;for(int i = 0; i < 10; i++){int tmp_judge = in_total;for(int j = 0; j < in_total; j++){if(number[i][ in1[j] ] == 1)tmp_judge--;}if(tmp_judge == 0){one.push_back(i);}}vs.push_back(one);}int res = 0;f( 0, res);printf("%d\n", count_total);}}
}
网易互娱2017实习生招聘在线笔试第一场 题目1 : 电子数字相关推荐
- 网易互娱2017实习生招聘在线笔试第一场-题目3
题目3 : 画线 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小王最近在开发一种新的游戏引擎,但是最近遇到了性能瓶颈.于是他打算从最基本的画线功能开始分析优化.画线其 ...
- 网易互娱2017实习生招聘在线笔试第一场-2源代码编译
http://hihocoder.com/contest/ntest2016spring1/problem/2 拓扑排序 处理一下字符串 没什么好说的.. 时间限制:10000ms 单点时限:1000 ...
- 网易互娱2017实习生招聘在线笔试第一场-3划线
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描写叙述 小王近期在开发一种新的游戏引擎,可是近期遇到了性能瓶颈.于是他打算从最主要的画线功能開始分析优化. 画线事实上就是调用 ...
- 网易互娱2017实习生招聘在线笔试第一场-1电子数字
http://hihocoder.com/contest/ntest2016spring1/problem/1 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 电子数 ...
- 网易互娱2017实习生招聘在线笔试第一场-电子数字
题目1 : 电子数字 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 电子数字在生活中很常见,而许多的电子数字是由LED数码管制作而成.数字LED数码管一般由7个发光二极 ...
- 网易互娱2017实习生招聘在线笔试(二)
题目2 : 源代码编译 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在网易游戏的日常工作中,C++ 是一门常用的语言.面对众多的 C++ 代码,等待源文件编译的漫长时 ...
- 网易互娱2017实习生招聘在线笔试--源代码编译
描述 在网易游戏的日常工作中,C++ 是一门常用的语言.面对众多的 C++ 代码,等待源文件编译的漫长时间是个令人糟心的时刻,一直以来大家对此怨声载道.终于有一天,大家找到了你,一位优秀的程序员,请你 ...
- 网易互娱2017实习生招聘在线笔试(三)
题目3 : 画线 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小王最近在开发一种新的游戏引擎,但是最近遇到了性能瓶颈.于是他打算从最基本的画线功能开始分析优化.画线其 ...
- 网易互娱2017实习生招聘在线笔试(一)
题目1 : 电子数字 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 电子数字在生活中很常见,而许多的电子数字是由LED数码管制作而成.数字LED数码管一般由7个发光二极 ...
最新文章
- 云原生安全的挑战与实践
- MongoDB复制集(Replication Sets)介绍
- c语言动态链表creat函数,用create建立动态链表
- 专栏 | 基于 Jupyter 的特征工程手册:特征选择(四)
- VRRP在生产环境中的应用
- windows cmd install nscp
- Web前端开发好学吗?谈谈一位学姐的前端工程师之路
- 对打字练的小键人的网站91xjr.com站资源打包,gulp独立分文件夹打包
- 揭秘“菲住布渴”中运用的黑科技:除了check in、坐电梯、开门...全部刷脸之外,还有什么?
- wp缩略图php,wordpress缩略图彻底解决方法,自动获取第一张图片缩略图
- 饿了么商家开放平台踩坑记录1,php更新商品信息提示业务异常BUSINESS_ERROR by勤勤学长 318692996
- 开关二极管IN4148
- 【ESP01S】使用串口调试助手,发送AT指令收回的是乱码/重复一遍AT指令发回的问题
- 学游戏原画都需要掌握哪些软件
- 016.文件和目录操作命令--md5sum
- 加速度传感器的应用(检测打滑)——利用传感器检测智能车加速度及速度全面解析方案
- Java里面是先算乘除后算加减,JAVA基础之基本加减乘除计算
- 一个难民做出35000亿帝国,比尔盖茨靠他成首富,乔布斯认他为偶像!
- 求一个整数的位数(包含0,正数和负数)
- linux 链接 time wait,Linux很多TIME_WAIT问题的解决方法