camp day2
来源:互联网 发布:苹果电脑双系统卸载mac 编辑:程序博客网 时间:2024/05/18 00:42
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条边往下一层走,往下一层走之前再跑出一个树.
- camp day2
- camp
- Day2
- day2
- DAY2
- day2
- DAY2
- day2
- day2
- day2
- day2
- day2
- day2
- day2
- day2:
- day2
- Day2
- Day2
- 分治法——归并排序(MergeSort)
- 使用ViewPagerIndicator结合ViewPager实现网易新闻客户端的Tab标签效果
- 多线程编程(二)——线程结束后的处理&主服务存活方法
- _free_base 崩溃
- jquery ajax
- camp day2
- Android Notification.setLatestEventInfo弃用和Notification.Builder用法
- leetcode303-Range Sum Query - Immutable
- poj 1797 Heavy Transportation(通路中的最大承载量)
- zookeeper配置开机启动失效分析
- VB把excel数据导入ACCESS
- 渣渣的大数相比 - 我果然机智
- 读《大话设计模式》——适配器模式
- POJ 1942(组合数学)