如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
2020年京东精选50面试题及答案1.求此N的最小公倍数。把每个数字分解质因数,算他们每个质因数的贡献,然后乘起来。我的代码没写好(算质因数不用这么慢的)。#include<bits/stdc++.h>usingnamespacestd;typedeflonglong11;#definemaxn100009intfact[maxn];boolprime[maxn];11mod=987654321;intcal(intt,intp){intent=0;while(t%p==0){cnt++;t/=P;returnent;voidfirst(){memset(prime,true,sizeof(prime));prime[1]=false;for(inti=2;i<=100000;i++:{inttop=sqrt(i);for(intj=2;j<=top;j—){if(i%j==0){prime[i]=false;break;voidsolve(intLimit){first();for(inti=2;i<=Limit;i++'{inttop=sqrt(i);for(intj=2;j<=top;ji){if(prime[j]&&i%j==0){fact[j]=max(fact[j],cal(i,j));Iif(prime[i])fact[i]=max(fact[i],1);}}intmain(){11n;cin^^n;solve(n);11ans=1;for(11i=1;i<=n;i++){for(11j=1;j<=fact[i];j++){ans=ans*i%mod;}}cout<<ai^s<<endl;return0;2.去掉字符串构成回文。其实是经典的求回文子序列个数。#include<bits/stdc++.h>usingnamespacestd;typedeflonglong11;11f[59][59];stringstr;11dfs(inti,intj){i£(i>j){return0;}if(i==j){f[i][j]=1;returnf[i][j];}[j]!=0){returnf[i][j];f[i][j]=dfs(i,j-1)+dfs(i+1,j)-dfs(i+1,j-1);if(str[i]==str[j])f[i][j]+=dfs(i+1,j-1:+1;returnf[i][j];intmain。{cin>>sh;intlen=str.length();cout«dfs(0,len-l)«endl;return0;3.象棋的马走K步之后到(X,Y)的方案数。直接递推。#include<bits/stdc++.h>usingnamespacestd;typedeflonglong11;11dp[10][10][3];11mod=le9+7;intdx[8]={~2,-1,L2,2,L-L-2};intdy[8]={-1,-2,-2,-1,L2,2,1};intcheck(intx,inty){if(x>=0&&x<=8&&y>=0&&y<=8)returntrue;returnfalse;voidcal(intx,inty,intstate){dp[x][y][state]:for(inti=0;iinttx=x+0;intty=y+<8;i++)dp[x][y]{dx[i];[state]=dyti];i£(check(tx.ty)){(dp[x][y][state]+dp[tx][ty][state1])%mod;intmain(){intK;cin>>K;intstate=0,nowstate;dp[0][0][0]=1;while(K—){state=state"1;for(inti=0;i<=8;i++){for(intj=0;j<=8;j++){cal(i,j,state);intx,y;cin^>x>>y;cout«dp[x][y][state]«endl;return0;4.如何验证图的连通性?#include<iostream>#include<queue>ffinclude<stdio.h>usingnamespacestd;ffdefineMAX_VNUM10typedefstruct{intweight;}Adj,AdjMatrix[MAX_VNUM][MAX_VNUM];