首页 > 编程知识 正文

字节跳动初试过了 一般复试要多久,字节跳动数分笔试

时间:2023-05-04 08:00:10 阅读:187839 作者:2450

文章目录 1、 生成数列的个数2、统计不能被k整除的子集个数3、 启动机器4、 线段和树
想进大厂太难了,上来就动态规划,真毫无思路QAQ

没办法啊,还是得慢慢学

1、 生成数列的个数


想了1个小时,想到用动态规划,然后就没有思路了。。。

看了一些lkdlz的想法做了一下,有错误请批评指证

public class Main { public static void main(String args[]) throws IOException, InterruptedException { Scanner cin=new Scanner(System.in); /* * 思路 动态规划 * 设dp[i][0]代表在选了i个数的情况下余3为0的数量,1,2同理 * 则dp[i+1][0]就是对上一组对数进行查找 * 即选了i+1个数余三为0的情况数选了i个数为0的情况下*区间内为0的数量+ * 选了i个数为1的情况下*区间内为2的数量(1+2%3=0)+ * 选了i个数为2的情况下*区间内为1的数量 * 其余两个以此类推 * 在mod上1e9机位答案 * */ int n=cin.nextInt(),l= cin.nextInt(),r= cin.nextInt(); int x0=0,x1=0,x2=0; int [][]dp=new int[n][3]; //遍历区间,分别统计余3为0,1,2的数的个数 for(int i=l;i<=r;i++){ if(i%3==0)x0++; else if(i%3==1)x1++; else x2++; } //动态规划 dp[0][0]=x0;dp[0][1]=x1;dp[0][2]=x2; for(int i=1;i<n;i++){ dp[i][0]=dp[i-1][0]*x0+dp[i-1][1]*x2+dp[i-1][2]*x1; dp[i][1]=dp[i-1][0]*x1+dp[i-1][1]*x0+dp[i-1][2]*x2; dp[i][2]=dp[i-1][0]*x2+dp[i-1][1]*x1+dp[i-1][2]*x0; } System.out.println(dp[n-1][0]); }} 2、统计不能被k整除的子集个数


没有思路

3、 启动机器


完全读不懂题。。。

4、 线段和树


感觉是唯一能做的。。。
两边遍历建图然后bfs判断即可

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。