题目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
<pre name="code" class="cpp">// wangyi.cpp : Defines the entry point for the console application.
//
#include <iostream>
#include <vector>
#include <sstream>
using namespace std;void getNum(vector<vector<int>> numList, int deep, int temp, vector<int> &totalNums);int main(void)
{int deng[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},//7{1,1,1,1,1,1,1},{1,1,1,1,0,1,1}//9};int S_test; //测试点的个数int K_LED;    //K个LED数码管int compareNum; //给定每个测试点比较的数cin>>S_test;int *endAnswer = new int[S_test]; //输出结果for(int i=0;i<S_test;i++) //测试用例{cin>>K_LED>>compareNum; //K个LED数码管, 测试的数字cin.ignore(); //忽略上一行的换行符!!!vector<vector<int>>num_K_LED; //存储每个LED可能的数字for (int j=0;j<K_LED;j++) //多少LED数码管 就多少行{char eachLine[100]; //每行表示对应数码管已点亮的二极管的情况cin.getline(eachLine,100);//cin>>eachLine;      //每行int servenLight[7] = {0};   //单个LED的7个指示灯哪个亮int idx = 0; //数组下标for(int k=0;k<strlen(eachLine);k++) //每行转为数字{             if(eachLine[k]!=' '){servenLight[idx] = int(eachLine[k] - '0'); //取数字idx++;if(idx == 7){break;}}}vector<int > num_eachLED; //记录单个LED中servenLight[7]中亮的可能是哪些数字?for (int deng_i = 0; deng_i <10;deng_i ++) //循环0-9,符合的加入num_eachLED{bool rs = true;int idx = 0;while (servenLight[idx] !=0)  //所有亮的指示灯都在 这个数字中{if(deng[deng_i][ servenLight[idx] -1] != 1){rs = false;                      break;}idx++;}if(rs){num_eachLED.push_back(deng_i);}                              }num_K_LED.push_back(num_eachLED);}vector<int> totalNums; //记录所有组合出来的数字int deep =0; int temp =0;getNum(num_K_LED, deep, temp, totalNums);stringstream ss;ss<<compareNum; string N_string = ss.str();     //位数if(N_string.length() > K_LED)  //位数大于K的话不用再一一比较,所有组合出来的都小于N{endAnswer[i] = totalNums.size();}else{int count = 0;for (int totalNums_i = 0; totalNums_i < totalNums.size();totalNums_i++){if(compareNum >= totalNums[totalNums_i]){count++;}}endAnswer[i] = count;}      }for(int i = 0; i<S_test; i++){cout<<endAnswer[i]<<endl;}//system("pause");return 0;
}void getNum(vector<vector<int>> numList, int deep, int temp, vector<int> &totalNums)
{if(deep < numList.size()-1){for(int i=0; i < numList[deep].size(); i++){int newInt = temp + numList[deep][i] * pow(10,numList.size()- deep -1);getNum(numList, deep+1, newInt,totalNums);}}else if(deep == numList.size()-1){for(int i=0; i < numList[deep].size(); i++){int newInt = temp + numList[deep][i] * pow(10,numList.size()- deep -1);totalNums.push_back(newInt);}}
}

测试样例通过,但是不知道时间和内存是否超过。过了时间没法提交

太水了,完全被碾压

网易互娱2017实习生招聘在线笔试(一)相关推荐

  1. 网易互娱2017实习生招聘在线笔试(二)

    题目2 : 源代码编译 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在网易游戏的日常工作中,C++ 是一门常用的语言.面对众多的 C++ 代码,等待源文件编译的漫长时 ...

  2. 网易互娱2017实习生招聘在线笔试第一场-2源代码编译

    http://hihocoder.com/contest/ntest2016spring1/problem/2 拓扑排序 处理一下字符串 没什么好说的.. 时间限制:10000ms 单点时限:1000 ...

  3. 网易互娱2017实习生招聘在线笔试--源代码编译

    描述 在网易游戏的日常工作中,C++ 是一门常用的语言.面对众多的 C++ 代码,等待源文件编译的漫长时间是个令人糟心的时刻,一直以来大家对此怨声载道.终于有一天,大家找到了你,一位优秀的程序员,请你 ...

  4. 网易互娱2017实习生招聘在线笔试(三)

    题目3 : 画线 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小王最近在开发一种新的游戏引擎,但是最近遇到了性能瓶颈.于是他打算从最基本的画线功能开始分析优化.画线其 ...

  5. 网易互娱2017实习生招聘在线笔试第一场-3划线

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描写叙述 小王近期在开发一种新的游戏引擎,可是近期遇到了性能瓶颈.于是他打算从最主要的画线功能開始分析优化. 画线事实上就是调用 ...

  6. 网易互娱2017实习生招聘在线笔试第一场-题目3

    题目3 : 画线 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小王最近在开发一种新的游戏引擎,但是最近遇到了性能瓶颈.于是他打算从最基本的画线功能开始分析优化.画线其 ...

  7. 网易互娱2017实习生招聘在线笔试第一场-1电子数字

    http://hihocoder.com/contest/ntest2016spring1/problem/1 时间限制:10000ms 单点时限:1000ms 内存限制:256MB  描述  电子数 ...

  8. 网易互娱2017实习生招聘在线笔试第一场-电子数字

    题目1 : 电子数字 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 电子数字在生活中很常见,而许多的电子数字是由LED数码管制作而成.数字LED数码管一般由7个发光二极 ...

  9. 网易互娱2017实习生招聘在线笔试第一场 题目1 : 电子数字

    http://hihocoder.com/contest/ntest2016spring1/problem/1 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 电子数字在 ...

最新文章

  1. ZooKeeper的事务日志和快照
  2. 网络推广平台浅析通常网站关键词优化密度该如何把控呢?
  3. HiveSQL运行优化参数配置
  4. 48. C# -- 事件
  5. PHP读取TXT UTF-8,2)PHP中把读取.txt中内容并转为UTF-8格式
  6. prototype.js ajax.request,javascript – Prototype和Ajax.Request范围
  7. 数据结构(六)霍夫曼树与编码
  8. 王国权辞任中国电信股份有限公司执行副总裁
  9. mysql有则修改无则添加_通过sql实现无则插入有则修改(MySQL)
  10. HALCON 21.11:深度学习笔记---对象检测, 实例分割(11)
  11. TcaplusDB X 光与夜之恋|来谈一场甜甜的恋爱
  12. 一次完整的HTTP请求过程(深入分析)
  13. bzoj 4518: [Sdoi2016]征途
  14. 基于GLFW的OpenGL学习001_艾孜尔江笔记
  15. html图片的隐藏与显示,Jquery中使用show()与hide()方法动画显示和隐藏图片
  16. 计算机中丢失vba,打开Excel的时候提示visual basic项目错误导致VBA模块代码丢失
  17. 【计算机网络】数据链路层(完整版)
  18. 分享制作系统启动U盘的方法
  19. SQL:SEARCH DEPTH FIRST和 SEARCH BREADTH FIRST
  20. python批量删除文件名_Python批量修改文件名(删除指定关键字)

热门文章

  1. python在tk界面播放本地视频_如何使用python3在tkinter窗口中插入视频播放器?
  2. 认知层次不同的人,是很难沟通的
  3. html滤镜菜鸟教程,如何成为风光摄影菜鸟基础拍摄篇
  4. 关于创新创业的书,看这两本就够了
  5. gcc环境配置时遇到的问题
  6. Unity的协程详解
  7. springboot整合rocketmq:一个消费者组怎么订阅多个topic
  8. Spectral clustering(谱聚类)算法的实现
  9. Mybatis-Plus配置和使用
  10. Invalid byte tag in constant pool 19