首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
KYwlzr
2017-03-07 21:13
已编辑
吉林大学 C++
关注
已关注
取消关注
20170307C++牛客笔试题
编程 40%(素数幂) 90%(序列) 100%(算法书)
求大神粘一下100%的前两题
提示
全部评论
推荐
最新
楼层
stdc++
济南幼儿师范学校 算法工程师
第一题: #include <iostream> #include <stdio.h> #include <string.h> #include <math.h> #include <algorithm> #include <string> #include <map> #include <vector> #include <set> #include <climits> #include <ctime> #include <cassert> #define IOS ios_base::sync_with_stdio(0); cin.tie(0); using namespace std; typedef long long ll; #define mp make_pair #define fi first #define se second #define pb push_back const double pi = acos(-1.0); const int inf = 0x3f3f3f3f; const ll INF = 0x3f3f3f3f3f3f3f3fll; const int MAX_N = 1001000; int prime_cnt; int vis[MAX_N], prime[MAX_N]; void Sieve() { memset(vis, 0, sizeof (vis)); prime_cnt = 0; for (int i = 2; i < MAX_N; ++i) { if (!vis[i]) prime[prime_cnt++] = i; for (int j = 0; j < prime_cnt && 1ll * i * prime[j] < MAX_N; ++j) { vis[i * prime[j]] = 1; if (i % prime[j] == 0) break; } } } ll n; bool isPrime(ll x) { for (int i = 2; 1ll * i * i <= x; ++i) { if (x % i == 0) return false; } return true; } int main() { Sieve(); while (~scanf("%lld", &n)) { if (n > 10000) { ll q = (ll)sqrt(n + 0.5); if (isPrime(q) && q * q == n) { printf("%lld %d\n", q, 2); continue; } else if (isPrime(q + 1) && (q + 1) * (q + 1) == n) { printf("%lld %d\n", q + 1, 2); continue; } else if (isPrime(q - 1) && (q - 1) * (q - 1) == n) { printf("%lld %d\n", q - 1, 2); continue; } } int exp = 0, flag = 0; ll x = n, ret = 1; for (int i = 0; i < prime_cnt; ++i) { if (x % prime[i] == 0) { int cnt = 0; while (x % prime[i] == 0) cnt++, x /= prime[i]; ret = prime[i]; if (x == 1 && cnt > 1) exp = cnt, flag = 1; break; } } if (flag) printf("%lld %d\n", ret, exp); else printf("No\n"); } return 0; } 第二题: #include <iostream> #include <stdio.h> #include <string.h> #include <math.h> #include <algorithm> #include <string> #include <map> #include <vector> #include <set> #include <climits> #include <ctime> #include <cassert> #define IOS ios_base::sync_with_stdio(0); cin.tie(0); using namespace std; typedef long long ll; #define mp make_pair #define fi first #define se second #define pb push_back const double pi = acos(-1.0); const int inf = 0x3f3f3f3f; const ll INF = 0x3f3f3f3f3f3f3f3fll; const int MAX_N = 10010; int main() { int n, L; while (~scanf("%d%d", &n, &L)) { int find = 0, st = -1, len = 0; for (int i = L - 1; i <= 100; ++i) { if (2 * n % (i + 1)) continue; int p = 2 * n / (i + 1) - i; if (p < 0 || (p % 2)) continue; st = p / 2, len = i + 1, find = 1; break; } if (find == 0) puts("No"); else { for (int i = 0; i < len; ++i) { printf("%d", i + st); if (i < len - 1) printf(" "); else printf("\n"); } } } return 0; } 第三题: #include <iostream> #include <stdio.h> #include <string.h> #include <math.h> #include <algorithm> #include <string> #include <map> #include <vector> #include <set> #include <climits> #include <ctime> #include <cassert> #define IOS ios_base::sync_with_stdio(0); cin.tie(0); using namespace std; typedef long long ll; #define mp make_pair #define fi first #define se second #define pb push_back const double pi = acos(-1.0); const int inf = 0x3f3f3f3f; const ll INF = 0x3f3f3f3f3f3f3f3fll; const int MAX_N = 10010; int n; ll num[15], pw[15]; int main() { pw[0] = 1; for (int i = 1; i < 15; ++i) pw[i] = pw[i - 1] * 10; while (~scanf("%d", &n)) { int digit[15], len = 0, x = n; while (x) { digit[len++] = x % 10; x /= 10; } memset(num, 0, sizeof (num)); for (int i = 1; i < digit[len - 1]; ++i) num[i] += pw[len - 1]; num[digit[len - 1]] += (n % pw[len - 1] + 1); for (int i = len - 2; i >= 1; --i) { int former = n % pw[i + 1], latter = n / pw[i]; for (int j = digit[i] + 1; j < 10; ++j) num[j] += 1ll * former * pw[i]; num[digit[i]] += 1ll * former * pw[i]; if (digit[i] > 0) num[digit[i]] += latter + 1; for (int j = 1; j < digit[i]; ++j) num[j] += pw[i] * (former + 1); if (digit[i] > 0) num[0] += 1ll * former * pw[i]; } if (n > 9) { ll former = n / pw[1]; int k = digit[0]; for (int i = k + 1; i < 10; ++i) num[i] += former; for (int i = 0; i <= k; ++i) num[i] += (former + 1); } num[0] -= 1; for (int i = 0; i < 10; ++i) { printf("%lld", num[i]); if (i < 9) putchar(' '); else putchar('\n'); } } return 0; }
点赞
回复
分享
发布于 2017-03-07 21:41
武汉孙一峰
华中师范大学 C++
蒟蒻第一题用欧拉质数筛选虽然o(n),然而算幂的时候超时了,尴尬。 膜拜楼上一群数位dp随便干的daliao。
点赞
回复
分享
发布于 2017-03-07 21:45
MatthewMatt
家里蹲大学 C++
我怀疑碰到了个假人 我的也是 40 90 100 好巧~
点赞
回复
分享
发布于 2017-03-07 21:42
Yellow_p
广东工业大学 C++
第一题感觉是找最小质因数;= = 感觉怎么都会TLE所以就跳了。 第二题用等差数列求和公式,你逆向使用一下,= = 90%也是很费解。
点赞
回复
分享
发布于 2017-03-07 21:24
牛客470556号
南京大学 算法工程师
第一题50%说超时了,求100%代码
点赞
回复
分享
发布于 2017-03-07 21:23
小乌
电子科技大学 Java
第一题遍历都只40%,咋回事
点赞
回复
分享
发布于 2017-03-07 21:13
向宇同桌
牛客网创始人
这成绩还不错啊
点赞
回复
分享
发布于 2017-03-07 21:12
拖仔
东北大学 C++
第一题40% 后两题。。。。不说了 哎
点赞
回复
分享
发布于 2017-03-07 21:10
小乌
电子科技大学 Java
第三题,感谢
点赞
回复
分享
发布于 2017-03-07 21:08
暂无评论,快来抢首评~
相关推荐
不愿透露姓名的神秘牛友
05-28 14:10
我的校园恋爱正式结束了
昨天答辩结束,回来的时候收到了她发的分手消息。其实我早就预想到了,她是湖南的,我是河北的,她是家里的独生女,她爸妈不愿意她离家太远,我还有一个上高中的弟弟,家里的经济状况不算特别好,我一直都想早点出来工作为家里分担。之前我俩聊过一次。我拿到了字节的offer,毕业之后我肯定是要去北京的,她妈妈让她回老家,她问我愿不愿意跟她一起回去。在她提出来之前,我从来没做过这个打算。我想的是我俩都留在北京一起打拼,以后攒点钱,找一个宜居的城市养老。在我的规划里,从来没有去湖南。其实我们的这段感情在一开始就受到她爸妈的阻力。但也许是校园的日子太安逸了,即便她爸妈一直以来都反对,但是我俩从来没放在心上,或者当做...
等一个offer的你很勇敢:
去北京打拼的你,会遇到更匹配 “奋斗节奏” 的战友;回老家的她,会找到更符合 “安全感需求” 的伴侣。校园恋爱的退场,是为了让彼此在 “现实服” 里,遇到更适配的 “人生插件”。
好好告别我的学生时代
点赞
评论
收藏
分享
05-23 11:00
蚌埠坦克学院 嵌入式软件开发
为什么面试中会有手撕算法题?
技术面试中,手撕算法题是一道常见且容易引起争议的环节。很多人质疑:在实际开发工作中很少直接写这些算法,为什么面试还要花大量时间考察?这类问题是否脱离实际?本文将从多个角度解释为什么手撕算法题依然被广泛采用,并尝试还原其存在的价值与目的。一、算法题是思维能力的集中体现算法题考察的不是某一个具体语法或函数接口,而是候选人对问题建模、解法设计、代码实现和复杂度分析的综合能力。这正是软件开发过程中经常需要用到的核心技能:如何理解一个抽象的问题?能否拆解问题并找到有效路径?是否能在有限资源下优化方案?对代码实现是否细致可靠?这些能力在系统设计、模块拆分、性能优化等实际工作中非常关键。算法题通过有限时间内...
K1einMoretti:
你让那些leader写一个试试,他们会告诉你业务代码和算法有啥关系
面试经验谈
点赞
评论
收藏
分享
05-21 18:40
湖南工程学院 Java
求大佬指点
比例好低啊,就两个面试
点赞
评论
收藏
分享
04-08 10:36
已编辑
华南理工大学 C++
大伙面腾讯的时候有这个环节吗
大伙面试的时候有这个环节吗,我担心被诈骗了
梁州壮士:
背调,查简历造假的
点赞
评论
收藏
分享
05-27 16:51
浙江大学 机械制图
在致谢里写了“再见了学生时代”
最后还是觉得要好好跟学生时代告别,于是我在致谢里写下:再见了,我的学生时代。也感谢各位牛友,祝你,祝我,祝大家,广阔天地,大有作为!
好好告别我的学生时代
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
挑战 26 届最速转正失败——我做错了什么
3.1W
2
...
我的校园恋爱正式结束了
1.2W
腾讯暑期补捞
热聊中
3
...
25的兄弟们还在战斗吗?
1.1W
4
...
坐我后面的妹妹被拉走了!!
8766
5
...
从后端的角度聊一聊:2728届想要搞开发的同学现在最应该干什么?
8678
6
...
毕业照和春招结束代表着我的学生时代落幕了
7112
7
...
好想加班好想加班,啊啊我的钱(っ╥╯﹏╰╥c)
6843
8
...
双非大一百度timeline
6266
9
...
秋招提前上岸,这个机会真的不错!建议大家冲!
5058
10
...
26届找不到暑期实习也不必太焦虑!!!!
4901
创作者周榜
更多
正在热议
更多
#
写给毕业5年后的自己
#
1690次浏览
30人参与
#
上班苦还是上学苦呢?
#
220851次浏览
1308人参与
#
华泰证券Fintech星战营
#
166313次浏览
188人参与
#
职场捅娄子大赛
#
305706次浏览
3071人参与
#
市场营销人求职交流聚集地
#
115858次浏览
1078人参与
#
华为求职进展汇总
#
4632295次浏览
28208人参与
#
如何缓解求职过程中的焦虑?
#
4466次浏览
72人参与
#
如果今天是你的last day,你会怎么度过?
#
20640次浏览
189人参与
#
好好告别我的学生时代
#
23121次浏览
464人参与
#
薪资爆料
#
107754次浏览
1156人参与
#
运营商笔面经互助
#
145245次浏览
1622人参与
#
晒一下我的毕业照
#
25386次浏览
232人参与
#
外包能不能当跳板?
#
31275次浏览
201人参与
#
非技术求职现状
#
424844次浏览
2924人参与
#
简历无回复,你会继续海投还是优化再投?
#
69031次浏览
697人参与
#
你的实习什么时候入职
#
248521次浏览
1891人参与
#
记录实习开销
#
16324次浏览
109人参与
#
我是XXX,请攻击我最薄弱的地方
#
26689次浏览
256人参与
#
宇通求职进展汇总
#
19864次浏览
162人参与
#
运营来爆料
#
43422次浏览
323人参与
#
00后45度躺现状
#
94173次浏览
489人参与
牛客网
牛客企业服务