美团后台笔试编程第一题

提示:莫比乌斯 能过100%
全部评论
没有优化 通过100%,不过超时了😂
点赞 回复 分享
发布于 2018-04-21 08:08
只使用普通的欧几里得过90% 
点赞 回复 分享
发布于 2018-04-20 22:04
求解什么是GCD啊?  我百度了很久都没有出来小白一枚。
点赞 回复 分享
发布于 2018-04-20 21:41
注意到N只有1000 莫比乌斯可快速求得 1-N和1-M gcd为i的个数 枚举就行了 import java.io.*; import java.util.*; public class Main { static int[]prime=new int[100050]; static boolean[]notp=new boolean[100050]; static int[]mu=new int[100050]; public static void main(String[] args) { FastScanner sc=new FastScanner(); PrintWriter pw=new PrintWriter(System.out); int N=sc.nextInt(); int n=sc.nextInt(); int m=sc.nextInt(); int p=sc.nextInt(); makeMobius(); int[]A=new int[N+1]; A[1]=p; for(int i=2;i<=N;i++){ A[i]=(A[i-1]+153)%p; } long res=0; for(int o=1;o<=N;o++){ long min=Math.min(n,m)/o; long max=Math.max(n,m)/o; long count1=0; long count2=0; for(int i=1;i<=min;i++){ count2+=mu[i]*(min/i)*(max/i); } res+=A[o]*count2; } pw.println(res); pw.flush(); } static int gcd(int a,int b){ return a==0?b:gcd(b%a,a); } static void makeMobius() { Arrays.fill(notp, false); mu[1] = 1; int pnum=0; for (int i = 2; i < 100010; i++) { if (!notp[i]) { prime[++pnum] = i; mu[i] = -1; } for (int j = 1; prime[j]*i < 100010; j++) { notp[prime[j]*i] = true; if (i%prime[j] == 0) { mu[prime[j]*i] = 0; break; } mu[prime[j]*i] = -mu[i]; } } } } class FastScanner{ BufferedReader br; StringTokenizer st; FastScanner(){ br=new BufferedReader(new InputStreamReader(System.in)); st=new StringTokenizer(""); } String nextLine(){ String s=""; try { s=br.readLine(); } catch (IOException e) { e.printStackTrace(); } return s; } boolean hasNext(){ String s = ""; while(!st.hasMoreTokens()){ s=nextLine(); if(s==null)return false; st=new StringTokenizer(s); } return true; } String next(){ String s=""; while(!st.hasMoreTokens()){ s=nextLine(); st=new StringTokenizer(s); } return st.nextToken(); } int nextInt(){ return Integer.valueOf(next()); } long nextLong(){ return Long.valueOf(next()); } double nextDouble(){ return Double.valueOf(next()); } }
点赞 回复 分享
发布于 2018-04-20 21:33
大佬,就不能多给一点提示吗
点赞 回复 分享
发布于 2018-04-20 21:29
赛码网时间到了会自动交卷吗
点赞 回复 分享
发布于 2018-04-20 21:27
对٩(๑^o^๑)۶。。。然而忘记怎么敲了
点赞 回复 分享
发布于 2018-04-20 21:27
暴力只过了90%
点赞 回复 分享
发布于 2018-04-20 21:25
我靠,这是什么高科技。
点赞 回复 分享
发布于 2018-04-20 21:20

相关推荐

03-21 10:53
复旦大学 Java
大家好,我是@程序员花海,眼下&nbsp;26&nbsp;届春招、27&nbsp;届暑期实习全面开启,后端卷到没边,AI&nbsp;Agent的岗位占主导,很多牛友在我的评论区留言,想让我出一份Agent学习路线。我特意去看了下,打开淘天的招聘页面,以校招为例,一眼望去全是AI相关的岗位,只能说之后绝大多数岗位都会快速推进AI的落地和实践。之前写过&nbsp;Java&nbsp;后端&nbsp;3&nbsp;个月抢救路线https://www.nowcoder.com/discuss/824693499982315520?sourceSSR=users,也收到了牛友们的强烈好评,这次专门给后端转&nbsp;Agent做一套最少必要知识路线——&nbsp;不堆概念、不啃论文,只学面试必问、项目...
在职牛马didi:这篇路线整理得很系统,把后端知识映射到Agent体系这个思路特别实用。我自己也是从Java转做AI的,感触很深:工程底子扎实的人转Agent确实有优势,RAG和工具编排这些核心能力本质上都是后端逻辑的延伸。我们团队在做天猫的AI应用落地,方向跟你这篇路线里的企业级RAG和Agent系统很接近。暑期实习还在招AI应用研发工程师,JD可以参考看看跟你背景是否匹配:https://www.nowcoder.com/jobs/detail/440929?jobId=440929
软件开发投递记录
点赞 评论 收藏
分享
xtu大迫杰:偶遇校友,祝校友offer打牌
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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