美团笔试答完了。又要靠单选了难过。[代码已更新]

C++  渣渣一只。
艾玛编程有点简单啊。第二题居然一次过。
一会过了考试时间发代码大神可以交流交流咩。#美团#
全部评论
/*#include <iostream> #include <cmath> #include <string> #include <set> #include <string.h> #include <algorithm> #include <vector> #include <map> #include <stack> #include <queue> #define MAXX (10000) using namespace std; int main() { int n; int getD(int); int dd[11]; dd[0] = 1; for (int i = 1; i <11; i++) { dd[i] = (dd[i - 1] * 10) % 7; } while (cin >> n) { vector<int> v; for (int i = 0; i < n; i++) { int t; cin >> t; v.push_back(t); } int count = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (i == j) continue; int temp = 0; temp = temp+(v[i] % 7)*dd[getD(v[j])]; temp %= 7; temp = (temp + v[j]) % 7; if (temp == 0) count += 1; } } cout << count << endl; } } int getD(int n) { if (n <= 9) return 1; int i = 0; while (n != 0) { i += 1; n /= 10; } return i; } ----------------------------------上面是O(n^2)解法-------------------------------------- ----------------------------------下面是O(n)解法----------------------------------------*/ #include <iostream> #include <cmath> #include <string> #include <set> #include <string.h> #include <algorithm> #include <vector> #include <map> #include <stack> #include <queue> #define MAXX (10000) using namespace std; int main() { int n; int getD(int);//这个数几位数 int dd[11]; //dd[i]=(10^i)%7 dd[0] = 1; for (int i = 1; i <11; i++) { dd[i] = (dd[i - 1] * 10) % 7; } int tongyujie[7] = { 0,1,4,5,2,3,6 }; //tongyujie[i]*i=0(mod 7) while (cin >> n) { int s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, s6 = 0;//sn表示除7余n数的个数 vector<int> v; for (int i = 0; i < n; i++) { int t; cin >> t; v.push_back(t); switch (t % 7) { case 0:s0 += 1; break; case 1:s1 += 1; break; case 2:s2 += 1; break; case 3:s3 += 1; break; case 4:s4 += 1; break; case 5:s5 += 1; break; case 6:s6 += 1; break; default:; } } int count = 0; for (int i = 0; i < n; i++) { int yushu = v[i] % 7; int temp = ((7 - yushu)*tongyujie[dd[getD(v[i])]]) % 7; //std::cout <<endl<< yushu << " " << temp << endl; if (yushu == temp) count -= 1;//自身和自身不能同时取到 switch (temp) { case 0:count += s0; break; case 1:count += s1; break; case 2:count += s2; break; case 3:count += s3; break; case 4:count += s4; break; case 5:count += s5; break; case 6:count += s6; break; default:; } } std::cout << count << endl; } } int getD(int n) { if (n <= 9) return 1; int i = 0; while (n != 0) { i += 1; n /= 10; } return i; }
点赞 回复 分享
发布于 2017-09-14 21:38
第二题没啥说的。居然一遍过一脸蒙蔽。 #include <iostream> #include <cmath> #include <string> #include <set> #include <string.h> #include <algorithm> #include <vector> #include <map> #include <stack> #include <queue> #define MAXX (10000) using namespace std; int main() { int n; while (cin >> n) { vector<int> v; for (int i = 0; i < n; i++) { int t; cin >> t; v.push_back(t); } int count = 1; for (int i = 0; i < n - 1; i++) { if (v[i] != v[i + 1]) count += 1; } if (v[0] == 0) count += 1; if (count % 2 == 0) { cout << "Bob" << endl; } else { cout << "Alice" << endl; } } }
点赞 回复 分享
发布于 2017-09-14 21:39
第一题如果直接二重循环的话只能到70%所以一定把时间复杂度降下来。 题的意思说到底就是找两个数a和b满足a*(10^b的数位数加一)+b整体同余7为0的方程。 中间防溢出可以先同余7。 那么根据上面的方程我们可以知道a%7=((0-b%7)*(10^b的数位数加一)的逆)%7。 [关于同余,一次同余式方程解法,逆等的概念请百度或者离散数学。]。 所以只要遍历b就可以了时间到了O(n)。
点赞 回复 分享
发布于 2017-09-14 21:37
没笔,看了下整除7那道题,我的想法是, 用map对每个数a保存,a%7, a*10%7...数据范围a<1e9,所以总共有10个。然后判断,比如127,保存127%7, 1270%7, 12700%7.... 然后遍历数组,对于每个数x,m = x%7,在map里找key为7-m长度为x的长度的value即可,时间复杂度是O(nlogn)
点赞 回复 分享
发布于 2017-09-14 21:24
    更新一个数组a[x][y][z]表示 位数为x的数乘以10的y次方%7 = a[x][y][z];边更新这个数组边做就OK了。                                                                                                                                                                                                              ——来自某位大佬思路   渣渣只有70%
点赞 回复 分享
发布于 2017-09-14 21:18
10%的应该是没有考虑溢出,我考虑溢出以后就70%,妈的就是不能AC
点赞 回复 分享
发布于 2017-09-14 21:16
被7整除,暴力只ac了 70%,,,,
点赞 回复 分享
发布于 2017-09-14 21:06
被7整除如何能不超时呢
点赞 回复 分享
发布于 2017-09-14 21:05
膜拜大佬
点赞 回复 分享
发布于 2017-09-14 20:52
思路分享下啊大牛
点赞 回复 分享
发布于 2017-09-14 20:44
大神说一下思路被
点赞 回复 分享
发布于 2017-09-14 20:44
大神被7整除是什么个思路
点赞 回复 分享
发布于 2017-09-14 20:43
点赞 回复 分享
发布于 2017-09-14 20:42

相关推荐

rbjjj:太杂了吧,同学,项目似乎都没深度,都是api调度耶,分层架构思想没有体现出来了,前端没有前端优化前端工程化体现,后端微服务以及分层架构没体现以及数据安全也没体现,核心再改改,注重于计算机网络,工程化,底层原理吧
点赞 评论 收藏
分享
dian3b:挺妙的,如果上纲上线显得不合人心,但是这样以来既能监督适当摸鱼,也有一定的人文关怀。
摸鱼被leader发现了...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务