全部评论
第一题输出[(m+n-1)/n]就行。 第二题分析可得前i项和为,最后答案就是。 第三题时为0,时为,打表加快速幂就行,记得用long long。 第四题暴力。气球总颜色数小于m的时候为0;否则,从右向左找到一个两端不为0的序列,然后不断往左靠,记录序列长度最小值就行。
腾讯2020届实习生招聘笔试-数学类
还能截图??
第一题个人感觉没那么复杂啊,if(m<=n) return 1; else if(m%n==0) return m/n: else return m/n+1
第一个小时切完4题,然后第5题冥想一小时无果,最后一分钟交了个不过样例的居然骗到5分???
第一题暴力的话O(n)遍历一遍 第二题找数学解 第三题C_n^s*2^{n-s},但只过了一半。楼上有大佬说要考虑s>n,不知道是不是 第四题sliding window
第三题不知道哪里有坑没全过。。。后面两个洒洒水,逗比了还以为除了编程还有其他题型早早就提交了😪
后面三道题主要对大数操作太麻烦了,在int范围内就好解很多
一首凉凉送给自己
只做了124,快速幂我都写错了真的是想哭
第一题第二题***题……第三题一眼组合数,打了个组合数板子80分,估计是中途溢出了,于是直接丢个lucas板子上去ac;第四题双指针,一开始写错一点,改了改就a了
第一题通过率20%,求指点: public static int result = 0; public static int getCount(int n,int m){ if(n == 1){ result = result+m; } else if(m%n == 0){ result = result + m/n; } else{ result = result + m/n; getCount(n-1,m%n); } return result; }
🐎
扎心了,只AC了两题,还有两题不到case 100%
第五题有个n^2*L复杂度的dp方法 有没有大佬有更好的方法啊
第五题真的好难。。看答案我都没看懂
前两道签到题不说了,第三道比较好就快速幂,但是数据规模才2000,就算用杨辉三角求组合也可以,另一种方法是dp,第四题,辅助数组+队列+双指针
第五题目测防ak题……没过也不用灰心(队内鉴定EC的银牌dp题没这个难)
腾讯提前批也得笔试吗😭
#include <stdio.h> #include <algorithm> typedef long long ll; const int mod = 1e9+9; const int maxn = 1300; int c[maxn]; ll dp[maxn][maxn];///变化i次颜色为j int main()
{ int n,L; scanf("%d%d",&n,&L); dp[0][0]=1; for(int i=n;i>=1;i--){ for(int j=L;j>=0;j--){
dp[j][c[i]]=dp[j][c[i]]*(n-i+1)%mod; for(int k=0;k<=n;k++){ if(c[i]!=k){
dp[j+1][c[i]]+=dp[j][k]; dp[j][k]=dp[j][k]*(n-i)%mod; }
}
dp[j+1][c[i]]%=mod; }
} ll sum=0; for(int i=0;i<=n;i++)
sum+=dp[L][i]; printf("%d\n",(int)(sum%mod)); return 0; }
第五题我是这样做的,思路是dp,倒着从后往前做,dp[j][k]代表颜色已经变换了J次且最后颜色为k,时间复杂度为O(n^2*L),看代码感觉应该还能优化,不过题目数据好像比较水,这样就过了
相关推荐