首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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-31 01:11
已编辑
基恩士_校招部_hr(准入职员工)
六月了,现在还能找到暑期实习吗?
一转眼六月了,现在还能找到暑期实习吗?马上六月了,现在还能找到暑期实习么,有没有牛油0offer的即将截止的还有较多机会的暑期暑期和新开的提前批汇总一、即将截止的暑期还有很多机会的暑期1.蚂蚁5.31截止(还有较多机会)内推链接(即内推):https://u.alipay.cn/_6u8FDXOjtuLHvNq4i6YdZV2.得物即将截止(还有较多机会)内推码:【ARUNW33】(选择校园大使推荐)内推链接:https://poizon.jobs.feishu.cn/s/i55A1W5V3.东方财富26暑期开启晚还有较多hc,捡漏首选内推链接:https://app.mokahr.com/m...
点赞
评论
收藏
分享
05-29 18:45
郑州西亚斯学院 大数据开发工程师
怎么才能进字节
昨天面字节了,今天被通知没过,这和失恋了有什么区别,真的好想进字节,什么时候才能再给一次机会啊,怎么才能进字节呢
JamesGosling1:
字节面完直接挂,这简直就是我
点赞
评论
收藏
分享
05-09 20:23
北京科技大学 Java
投测开,简历怎么改
后端太卷,中途转投测开,简历一直被挂,请问各位大佬简历有什么需要改的吗?
听劝,我这个简历该怎么改?
简历中的项目经历要怎么写
点赞
评论
收藏
分享
04-10 00:02
北京物资学院 算法工程师
这是真的吗
这是真的吗这是真的吗
刘湘_passion:
出国旅游?
那就小心你的腰子咯
点赞
评论
收藏
分享
05-30 17:01
中国地质大学 Java
作业帮的一二面,难度不逊于各大厂
今天分享的是训练营的朋友在作业帮的一二面面经,难度丝毫不逊于各个大厂,很有学习的价值。下面先来看一下该岗位的JD:岗位要求:熟练掌握Go语言,有良好代码规范和架构能力,要求有持续迭代优化系统性能经验(可接受转语言)为各类项目需求设计架构,开发后端功能服务,同团队成员合作并积极提出建议和反馈良好的沟通表达总结能力,同产品团队协作,理解用户需求,归纳功能用例,并转化为高效的>技术解决方案熟悉常用开源分布式中间件、缓存、消息队列等有长期教育培训类系统核心B端系统经验,订单系统经验优先岗位职责:负责核心功能模块的开发和详细设计,参与需求分析和讨论,复杂系统设计负责核心模块编码,并优化相关模块,持...
作业帮二面29人在聊
查看27道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
你的经历比较单薄, 但简历又弥补了这一点--双非仔个人简历分享
3586
2
...
为什么大厂想逃却逃不掉?
3392
3
...
分享我的秋招之路(2025届版)
3061
4
...
字节last day,知无不言!
2080
5
...
六月还有机会的,对吗?
1920
6
...
那年十八,我认为自己会一直意气风发!
1901
7
...
字节暑期捡漏!附面经
1569
8
...
请停下来恭喜一下这位牛友!首次登上牛客创作者周榜第四名
1494
9
...
发现27282届的同学怎么越来越卷了,投个票看看相互的进度吧
1420
10
...
25 暑期实习&秋招面经
1349
创作者周榜
更多
正在热议
更多
#
写给毕业5年后的自己
#
7237次浏览
130人参与
#
请用你的专业向妈妈表白
#
15671次浏览
111人参与
#
华泰证券Fintech星战营
#
190973次浏览
283人参与
#
职场捅娄子大赛
#
336347次浏览
3390人参与
#
今年形式下双非本找得到工作吗
#
134848次浏览
1019人参与
#
一人一个landing小技巧
#
65595次浏览
1011人参与
#
25届非技术实习投递记录
#
116004次浏览
968人参与
#
贝壳求职进展汇总
#
22411次浏览
153人参与
#
正在春招的你,也参与了去年秋招吗?
#
303118次浏览
2519人参与
#
电网笔面经互助
#
32846次浏览
323人参与
#
你的秋招第一场笔试是哪家
#
128760次浏览
1400人参与
#
2022毕业即失业取暖地
#
97326次浏览
652人参与
#
硬件应届生薪资是否普遍偏低?
#
70296次浏览
506人参与
#
2022毕业生求职现身说法
#
84021次浏览
692人参与
#
哪些公司笔/面试难度大?
#
2648次浏览
20人参与
#
实习中的菜狗时刻
#
350810次浏览
3222人参与
#
正在实习的你,在做dirty work吗
#
111925次浏览
750人参与
#
考公VS就业,你怎么选?
#
58796次浏览
393人参与
#
互联网回暖,腾讯要招5000人!
#
16766次浏览
553人参与
#
毕业季等于分手季吗
#
24189次浏览
305人参与
#
大学最后一个寒假,我想……
#
39950次浏览
511人参与
牛客网
牛客企业服务