首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
昨天 18:23
滴滴_移动端研发工程师(准入职员工)
滴滴内推,滴滴内推码
1.自我介绍2.项目拷打3.GMP模型,线程和协程的区别4.当程序有很多goroutine时,他怎么调度执行切换5.GC详细解释混合写屏障6.100个协程依次打印1-1007.defer执行顺序8.defer可以修改返回值吗9.哪些异常不会被recover10.子协程为什么推荐要加一个recover11.tcp四次挥手12.为什么要time wait,时间多长13.服务器上如果有很多time wait如何解决,以及出现这个问题的场景有哪些14.服务器cpu占用过高如何去定位,如何发现和判断死锁发生的位置15.http和https的区别,TLS过程16.cookie和session区别17.用j...
点赞
评论
收藏
分享
12-18 15:41
门头沟学院
谁顺就选谁的
这半年也是摸爬滚打面过来了,我虽然面得没有大佬多,但是也有十多家面试了,实话实说,感觉携程的流程是最丝滑的。因为也收到几个offer了,携程给的不是我当时手中最高的,但也不是最低的,我还排了一下,和前面的最多就1、2k的区别,薪资ok,我更主要的是在意性价比,技术氛围什么的,就看面试态度谁更加分咯。其他公司的流程中规中矩吧,没什么好说的,我啰嗦了还会被打断,对比起来就显得携程面试官人很好。每个问题都有反馈,真是特别认真。我发挥也还不错,氛围都比较轻松所以也没那么紧张,每个问题都回答了很久(大概5分钟?),也适度的发散了,说到自己没啥可说,也不会打断,很少用松弛感去形容一个面试。最后和我说入职会...
携程求职进展汇总
点赞
评论
收藏
分享
10-29 18:20
济南大学 Java
😓😓
#实习#
用微笑面对困难:
他不是人事吗,怎么净特么不干人事
点赞
评论
收藏
分享
12-02 11:57
南京艺术学院 设计
leader天天让我们扫并夕夕
好受不了 每个人扫完之后还要把截图发到群里他要检查 太荒谬了
码客明:
权力的名义
工作中出现了XX情况正常...
点赞
评论
收藏
分享
12-15 15:48
睿琪软件_产品经理(准入职员工)
滴滴内推,滴滴内推码
滴滴后端一二面面经一面40min纯技术面,面试官很友好,时不时会对你微笑,然后点头表示肯定,答对了还会说说得对。挑选一个你最想介绍的项目介绍一下,没有深挖。八股盛宴:C++、C、数据结构、数据库。总结就是不是简单的问你什么是虚函数,然后你说个虚指针,虚函数表就完事了。还会问你空指针可以调用类的方法吗?调用虚函数或者非静态成员变量的非虚函数为什么会崩溃?在什么阶段?大概就是这个意思,所以需要对每个方向的知识点有很深的理解,或者说实际开发中切实的应用过才能答得出来。二面25min个人感觉是目前为止碰到的最让人不解的面试官,全程皱着眉头,问的问题我没理解清楚也不会过多解释,直接默认我不会,然后说那我...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
“我希望你把我当成资源,而不是老师。”
4244
2
...
2025年度总结-成长
3821
3
...
我从反复确认,走向不再自证
3355
4
...
2025这一年真是辛苦了
3355
5
...
数字马力
2489
6
...
突然被同事表白了
2398
7
...
双非鼠鼠0实习0竞赛闯秋招的一年,重头再来我不会选这条路了
2292
8
...
百度日常一二面面经已OC
2070
9
...
在回河南的火车上总结我的2025
2070
10
...
大家校招笔试的时候穿件衣服吧!!
1832
创作者周榜
更多
正在热议
更多
#
实习简历求拷打
#
7176次浏览
94人参与
#
担心入职之后被发现很菜怎么办
#
265063次浏览
1122人参与
#
秋招被挂春招仍然能投的公司
#
5379次浏览
88人参与
#
mt对你说过最有启发的一句话
#
31334次浏览
386人参与
#
什么是优秀的实习经历
#
7224次浏览
194人参与
#
考研失败就一定是坏事吗?
#
199523次浏览
1362人参与
#
为了找工作你花了哪些钱?
#
74641次浏览
359人参与
#
摸鱼被leader发现了怎么办
#
97916次浏览
625人参与
#
秋招特别不鸣谢
#
14279次浏览
172人参与
#
选实习,你更看重哪方面?
#
12360次浏览
205人参与
#
第一次面试
#
1035711次浏览
13682人参与
#
今年秋招你收到了多少封邮件?
#
17021次浏览
217人参与
#
作业帮求职进展汇总
#
81681次浏览
530人参与
#
你今年的保底offer是哪家
#
154694次浏览
671人参与
#
携程求职进展汇总
#
838545次浏览
5508人参与
#
听到哪句话就代表面试稳了or挂了?
#
237278次浏览
1677人参与
#
毕业论文进行时
#
20618次浏览
129人参与
#
工作中遇到的歹人
#
25502次浏览
300人参与
#
找工作有哪些冷知识
#
204989次浏览
2603人参与
#
机械/制造每日一题
#
80100次浏览
1409人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务