网易2017内推笔试题目
来源:互联网 发布:1688进货淘宝卖怎么样 编辑:程序博客网 时间:2024/05/20 06:07
http://www.nowcoder.com/discuss/6959?type=3&order=0&pos=2&page=1[编程题] 幸运的袋子一个袋子里面有n个球,每个球上面都有一个号码(拥有相同号码的球是无区别的)。如果一个袋子是幸运的当且仅当所有球的号码的和大于所有球的号码的积。例如:如果袋子里面的球的号码是{1, 1, 2, 3},这个袋子就是幸运的,因为1 + 1 + 2 + 3 > 1 * 1 * 2 * 3你可以适当从袋子里移除一些球(可以移除0个,但是别移除完),要使移除后的袋子是幸运的。现在让你编程计算一下你可以获得的多少种不同的幸运的袋子。 输入描述:第一行输入一个正整数n(n ≤ 1000)第二行为n个数正整数xi(xi ≤ 1000)输出描述:输出可以产生的幸运的袋子数输入例子:31 1 1输出例子:2#include <iostream>#include <algorithm>#include <vector>using namespace std;int dfs( int i, int s, int p, vector<int> &data, int nxt[], int n ){ if( i >= n ) { return s > p; } if( data[i] > 1 && s < p ) { return 0; } return dfs( i + 1, s + data[i], p * data[i], data, nxt, n ) + dfs( nxt[i], s, p, data, nxt, n );}int main(){ int ret = 0; const int NUM = 1001; int n = 0; int nxt[NUM]; while( cin >> n ) { vector<int> data( n, 0 ); for( int i = 0; i < n; i++ ) { cin >> data[i]; } sort( data.begin(), data.end() ); int pos = n; for( int i = n - 1; i >= 0 ; i-- ) { if( i < n - 1 && data[i] < data[ i + 1 ] ) { pos = i + 1; } nxt[i] = pos; } cout << dfs( 0, 0, 1, data, nxt, n ) << endl; } return ret;}[编程题] 饥饿的小易小易总是感觉饥饿,所以作为章鱼的小易经常出去寻找贝壳吃。最开始小易在一个初始位置x_0。对于小易所处的当前位置x,他只能通过神秘的力量移动到 4 * x + 3或者8 * x + 7。因为使用神秘力量要耗费太多体力,所以它只能使用神秘力量最多100,000次。贝壳总生长在能被1,000,000,007整除的位置(比如:位置0,位置1,000,000,007,位置2,000,000,014等)。小易需要你帮忙计算最少需要使用多少次神秘力量就能吃到贝壳。 输入描述:输入一个初始位置x_0,范围在1到1,000,000,006输出描述:输出小易最少需要使用神秘力量的次数,如果使用次数使用完还没找到贝壳,则输出-1输入例子:125000000输出例子:1#include <iostream>#include <algorithm>#include <vector>#include <map>#include <queue>using namespace std;int main(){ int ret = 0; unsigned long long x0 = 0; unsigned long long NUM0 = 1000000007; while( cin >> x0 ) { queue<unsigned long long > qu; map<unsigned long long , int > mp; qu.push(x0); mp[x0] = 0; unsigned long long num = qu.front(); while( !qu.empty() ) { num = qu.front(); qu.pop(); int cnt = mp[num]; if( 0 == num ) { //cout << cnt << endl; break; } if( cnt > 100000 ) { continue; } unsigned long long v1 = ( num * 4 + 3 ) % NUM0; if( mp.find(v1) == mp.end() ) { mp[v1] = cnt + 1; qu.push(v1); } unsigned long long v2 = ( num * 8 + 7 ) % NUM0; if( mp.find(v2) == mp.end() ) { mp[v2] = cnt + 1; qu.push(v2); } } printf("%d\n",mp[0] ? mp[0] : -1 ); } return ret;}
0 0
- 网易2017内推C++笔试题目
- 网易2017内推笔试题目
- 网易内推笔试算法题目(1)
- 2017网易内推笔试题
- 2017年网易内推笔试题
- 网易2017内推笔试题
- 【网易2017内推笔试编程题】
- 网易2017内推笔试编:藏宝图
- 网易2017内推笔试题
- 【网易2017内推笔试】小易记单词
- 网易2017内推笔试程序题
- 【2017网易内推笔试】数字游戏
- 2018网易内推笔试
- 网易内推笔试题
- 网易内推笔试题2017机器视觉算法工程师
- 2017年网易有道校园招聘内推笔试
- 2017网易有道内推笔试编程题1:洗牌
- 2017网易互联网内推笔试题(奖学金问题)
- jarsigner对未签名的apk进行签名
- java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException
- 记录一下jstl的报错问题,很容易忘记
- CentOS6.5下安装JDK1.8
- ibatis的sql配置文件--条件元素。
- 网易2017内推笔试题目
- Java与算法之(13) - 二叉搜索树
- 《Linux设备驱动开发详解》--Linux内核模块
- jpa 分页问题
- 又被忽悠了,互联网创业的陷阱你遇到了吗
- unescape,decodeURI,decodeURIComponent
- 机器学习技法作业三题目16-18
- Shell命令学习(三)
- javascript还是javascript