camp day2

C题:3种不一样颜色的机器人,每种都有大于1000个,在1000*1000的格子上,分布是给出的,问每一个都走m步以后,每种颜色机器人都走到了同一个格子,不一样颜色的终点要求不一样,问有多少种不一样的走法.
题解:首先咱们考虑容斥, 单独考虑每一种机器人,而后直接相乘,可是有相同的,咱们再减去a b同样,c不同, 以及ac bc 而后加上abc. 如今要作的就是1000左右个点,要求走到一个点的方案数(在咱们枚举要走到哪里的前提下),要求o(1)的算出来,可是不会作.咱们会作一维的,就是一个组合数.因此咱们用一种方法技巧,计算(x + y, x - y),而后这是独立的,同时必定会走m步,而后再相乘就行了.
D题:1000个球,每一个球有标号,如今有一个双端队列,每次一个球相等几率的往前或者日后放,而后放完以后算 xi > x(i+1)的个数cnt, cnt ^ k 的指望.k是给出的,k~50. 最后输出指望数*2^n.
题解:先定状态f[i][0/1][另一端的数是多少] = num, 而后转移就是看i+1个球放在哪里,而后更新f[i+1]层, 若是新放的数多了一个逆数,那么咱们不会只用num来搞出来新的num值,由于他是一个i个不一样的东西合并出来的一个数.可是咱们用x^k = 一个含斯特灵数的东西, 再换个序,而后须要f加一个[L]的来记录,就可以作. 公式在纸上推了没有往上敲QAQ
E题:一个n~1e5的字符串,给出m~1e5个现实xl, xr, yl yr.保证长度同样,意思是这样两段彻底相等.如今每一个位置只能填26个不一样的东西,问有多少种合法的状况.
题解:首先是分段办法1:n个段长为sqrt(n)的,而后每次大段和剩下的小数字暴力,而后剩下了一堆段的关系.而后对于一个并查集中的段,统一for一下.
分段方法2:每次段都是2的幂次,从大往小走,每一层建一个树,就足够描述信息了,也就是n条边.每次都带着n条边往下一层走,往下一层走以前再跑出一个树.web

本文分享 CSDN - ruclion。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。svg

相关文章
相关标签/搜索