ICPC2020模拟测试赛总结

A

求满足 0 ≤ x ≤ a , 0 ≤ y ≤ b , 0 ≤ z ≤ c , 0 ≤ k ≤ d 0\le x\le a, 0\le y\le b, 0\le z\le c, 0\le k\le d 0xa,0yb,0zc,0kd的整数 x , y , z , k x,y,z,k x,y,z,k有多少组。

答案即:
∑ i = 0 d [ x i ] 1 − x a + 1 1 − x 1 − x b + 1 1 − x 1 − x c + 1 1 − x = ∑ i = 0 d [ x i ] ( 1 − x a + 1 ) ( 1 − x b + 1 ) ( 1 − x c + 1 ) ( 1 − x ) − 3 = ∑ i = 0 d [ x i ] ∑ j = 0 d ( j + 1 ) ( j + 2 ) 2 x j ( 1 − x a + 1 − x b + 1 − x c + 1 + x a + b + 2 + x b + c + 2 + x c + a + 2 − x a + b + c + 3 ) \sum_{i=0}^d[x^i]\frac{1-x^{a+1}}{1-x}\frac{1-x^{b+1}}{1-x}\frac{1-x^{c+1}}{1-x}\\=\sum_{i=0}^d[x^i](1-x^{a+1})(1-x^{b+1})(1-x^{c+1})(1-x)^{-3}\\=\sum_{i=0}^d[x^i]\sum_{j=0}^d\frac{(j+1)(j+2)}{2}x^j(1-x^{a+1}-x^{b+1}-x^{c+1}+x^{a+b+2}+x^{b+c+2}+x^{c+a+2}-x^{a+b+c+3}) i=0d[xi]1x1xa+11x1xb+11x1xc+1=i=0d[xi](1xa+1)(1xb+1)(1xc+1)(1x)3=i=0d[xi]j=0d2(j+1)(j+2)xj(1xa+1xb+1xc+1+xa+b+2+xb+c+2+xc+a+2xa+b+c+3)
枚举 j j j,计算不超过 d d d的项的系数和即可。

B

n × m ( 满 足 g c d ( n − 1 , m − 1 ) = 1 ) n\times m(满足gcd(n-1,m-1)=1) n×m(gcd(n1,m1)=1)的棋盘上沿 45 ° 45\degree 45°方向滚动一个球,直到球滚回原处,求经过奇数次的格子有多少个。

可以发现一定回经过角落原路返回,答案为2。

D

两个pokemon,血量分别为 h p 1 hp_1 hp1 h p 2 hp_2 hp2,每回合有 p p p概率对1号造成 w w w伤害, 1 − p 1-p 1p概率对2号造成 w w w伤害,求击杀一个的期望次数。
概率dp

E

一个序列,每次删一个数,代价为它和两边两个数之和的平方。求删到只剩端点两个数的最小代价。

(一开始以为要用四边形不等式优化,试了一发WA了(大概不满足单调性的条件?))
后来发现直接 n 3 n^3 n3区间dp就能过了。

H

队友写的 O ( n H ) O(nH) O(nH)DP。

I

队友写的,纯模拟

J

n × m n\times m n×m的棋盘从左上角到右下角一条长度为 k k k的路径。

大致想法是构建一条最长路径,然后根据需求裁弯取直。
最后没调出来。

全部评论

相关推荐

会飞的猿:我看你想进大厂,我给你总结一下学习路线吧,java语言方面常规八股要熟,那些java的集合,重点背hashmap八股吧,jvm类加载机制,运行时分区,垃圾回收算法,垃圾回收器CMS、G1这些,各种乐观锁悲观锁,线程安全,threadlocal这些。在进阶一些的比如jvm参数,内存溢出泄漏排查,jvm调优。我这里说的只是冰山一角,详细八股可以去网上找,这不用去买,都免费资源。mysql、redis可以去看小林coding,我看你简历上写了,你一定要熟,什么底层b+树、索引结构、innodb、mvcc、undo log、redo log、行级锁表级锁,这些东西高频出现,如果面试官问我这些我都能笑出来。消息队列rabbitmq也好kafka也好,学一种就行,什么分区啊副本啊确认机制啊怎么保证不重复消费、怎么保证消息不丢失这些基本的一定要会,进阶一点的比如LEO、高水位线、kafka和rocketmq底层零拷贝的区别等等。计算机网络和操作系统既然你是科班应该理解起来问题不大,去看小林coding这两块吧,深度够了。spring boot的八股好好看看吧,一般字节腾讯不这么问,其他的java大厂挺爱问的,什么循环依赖啥的去网上看看。数据结构的话科班应该问题不大,多去力扣集中突击刷题吧。项目的话其实说白了还是结合八股来,想一想你写的这些技术会给你挖什么坑。除此之外,还有场景题、rpc、设计模式、linux命令、ddd等。不会的就别往简历上写了,虽然技术栈很多的话好看些,但背起来确实累。总结一下,多去实习吧,多跳槽,直到跳到一个不错的中厂做跳板,这是一条可行的进大厂的路线。另外,只想找个小厂的工作的话,没必要全都照这些准备,太累了,重点放在框架的使用和一些基础八股吧。大致路线就这样,没啥太多难度,就是量大,你能达到什么高度取决于你对自己多狠,祝好。
点赞 评论 收藏
分享
01-18 09:26
已编辑
门头沟学院 Java
王桑的大offer:建议中间件那块写熟悉即可,写掌握 面试包被拷打到昏厥
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务