首页 > 其他分享 >冲刺CSP联训模拟2

冲刺CSP联训模拟2

时间:2024-10-06 09:03:26浏览次数:7  
标签:暴力 sum 29 冲刺 times 联训 CSP

冲刺CSP联训模拟2

A. 挤压

考虑把一个数写成二进制,不妨记为 $ \sum s_i \times 2^i,s=0或1 $ ,设其概率为 $ p_k $ ,则期望值:

\[p_k \times (\sum_{ i=0 }^{ 29 } s_i)^2 = p_k \times \sum_{i=0}^{29} \sum _{j=0}^{29} s^i \times s^j \times 2^{i+j} \]

设 $ dp[i][j] $ 为异或后i,j位均为1的概率,方程不难推。

避坑:不要尝试计算每一位异或后是1的概率,因为某些位数会有冲突的概率。

B. 工地难题

发现对于每个 $ k $ ,都需要单独考虑,这样复杂度已经达到 $ O(n) $ ,这个时候跑DP似乎只能度过相对失败的一生。以下我们来推数学式子。

一个简单的想法是,先计算最长连续段不超过 $ k $ ,再差分。但是这样还是不好做,发现如果没有 $ k $ 的限制,有 $ n-m $ 个0把 $ m $ 个1分开,相当于 $ \sum _{i=1}^{n-m+1} x_i = m (x_i \ge 0) $ 方案数为 $ \binom{n}{n-m} $ ,减去最长段超过 $ k $ 的就是答案。假设有一个段超过 $ k $ ,那么长度至少 $ k+1 $ ,其他1还是可以随意分布,这个最长段的位置有 $ n-m+1 $ 个,方案数为 $ (n-m+1) \times \binom{n-(k+1)}{n-m} $ 。

由于这有重复的情况在内,即至少有一个段超过 $ k $ 包含至少有两个段超过 $ k $ ,容斥即可。注意到如果有超过 $ \left \lfloor \frac{m}{k+1} \right \rfloor $ 个段超过 $ k $ ,方案数一定为0。因此复杂度是调和级数的, $ O(n\log n) $ 。

C. 星空遗迹

$ O(NQ) $ 的做法比较好想,就是用一个栈把无意义的元素弹掉。

定义

\[f(n) = \begin{cases} f(n-1)+1 , & if (s[n]<s[n-1]) \\ f(n-1) , & if (s[n]=s[n-1]) \\ f(n-1)-1, & if (s[n]>s[n-1]) \end{cases} \]

发现一段字符串的答案为 $ s[n] $ ,当且仅当 $ f(n) $ 是这一段最后一个非正数。线段树维护前缀和最大值,区间修改,区间查询。

想法

这一场唐完了,T1每一位分开考虑,甚至用一个折半搜索,调试,手模,暴力都不能过样例,2.5h之后发现问题(上文说过了),然后开始思考人生。写了T1指数级暴力,还有1h开T2,因为想DP度过相对失败的一生,复杂度假了2次,果断改指数级暴力,于是前两题喜提 $ 40pts $ ,T3 $ O(n^2) $ 暴力显然,获得 $ 60pts $ ,T4看起来是难题,也没想暴力,回到T1思考人生(除了T3都失败了)。

标签:暴力,sum,29,冲刺,times,联训,CSP
From: https://www.cnblogs.com/abnormal123/p/18448809

相关文章

  • 冲刺CSP联训模拟2
    A.挤压拆位算贡献,一个数二进制表示平方为\(\sum_{i,j}s_i*s_j*2^{i+j}\),单独算每一项的贡献,枚举\(i,j\),只有当这两位都为1时结果才是1,所以我们要找异或后这两位都是1的方案数,这里需要\(dp\)用\(f_{i,j,k}\)表示前\(i\)个数异或出来的\(j,k\)两位是1/0的方案数,对于......
  • 信息学奥赛复赛复习12-CSP-J2021-01分糖果-模运算、余数、打擂台求最值、最大值、最小
    PDF文档公众号回复关键字:202410051P7909[CSP-J2021]分糖果[题目描述]红太阳幼儿园有n个小朋友,你是其中之一。保证n≥2有一天你在幼儿园的后花园里发现无穷多颗糖果,你打算拿一些糖果回去分给幼儿园的小朋友们由于你只是个平平无奇的幼儿园小朋友,所以你的体力有限,至......
  • [赛记] 冲刺CSP联训模拟2
    三道计数+一道数据结构也是没谁了这场可是好好锻炼了我的写暴搜能力。。。挤压20pts暴搜20pts;把最后的答案进行二进制拆解,即$ans=2^i+2^j+2^k+...$,那么答案的平方为$\sum_{i=0}^{30}\sum_{j=0}^{30}s_is_j2^{i+j}$,其中$s_i,s_j$代表答案二......
  • [DMY]2024 CSP-S 模拟赛 Day 10
    赛时对于T1,看懂题面以后感觉很可做。首先明确正解复杂度应该是基于\(N\)额度线性做法。把输入按照开始时间排序,然后依次处理。赛时考虑到一个元素在覆盖过程中遇到其他元素时无法确定时间先后,确定后想要找到该元素的当前位置和重新覆盖有些困难,写了1h以后先放弃了。舍远......
  • [赛记] 多校A层冲刺NOIP2024模拟赛01【衡中】
    构造字符串50pts错解50pts;考虑正解,对于题目中的要求,我们可以转换成若干个相等与不等的操作,若相等则用并查集合并一下,不等则连边,若同块连边则无解,否则从前往后遍历赋值,每次找所连边其它块值的$\operatorname{mex}$即可;时间复杂度:$\Theta(nm\alpha(n))$;点击查看代码#i......
  • [赛记] 冲刺CSP联训模拟1[衡中]
    几何100pts赛时打的$DP$没有用bitset优化过了,也是放过了暴力;考虑设状态$f_{i,j,k}$表示考虑到第$i$位,到第$j$位$x$和第$k$位$y$可不可取,直接转移即可;时间复杂度:$\Theta(|s||x||y|)$,应该是过不了的;点击查看暴力#include<iostream>#incl......
  • [赛记] csp-s模拟7
    median50pts错解50pts(有重复的数就不行);赛时想容斥了,其实不用容斥(好像也不能容斥);题解做法:将每个数存一个二元组,按大小排序,枚举每一个数作为中位数,再枚举每个位置的种类,看它前面和后面有多少这些种类的数,乘起来即可;这样就巧妙地避免了重复的情况,如果直接枚举,则有相同的数会被重......
  • [赛记] csp-s模拟6
    一般图最小匹配35pts纯纯的错解35pts;考虑将原数列排序,那么我们选的边就只能是相邻两个点的;发现这玩意能够递推(赛时没发现),所以直接$DP$,设$f_{i,j}$表示当前考虑到第$i$位,有$j$条边被选的最小权值,转移时考虑第$i$个点连不连第$i-1$个点即可;时间复杂......
  • 冲刺 CSP 联训模拟2
    题面温馨提示代码中的变量名可能与题意、题解不同。代码不删缺省源,可以直接拿来对拍。T1挤压Solution众所周知,异或是一种按位运算,不好进行十进制的数间合并。我们考虑将每个数拆分为二进制的形式进行处理。此时,对于每一种情况,假设表示\(2^i\)二进制位的值为\(b_i\),我......
  • 冲刺 CSP 联训模拟 2
    T1挤压概率期望,二进制拆位看到异或想到拆位算贡献\[\begin{aligned}ans&=\sum_xx^2P(x)\\&=\sum_x(b_1+b_2+...+b_{30})^2P(x)\\\(b_i表示\x\二进制下\i\位的值)\\&=\sum_x(b_1b_1+b_1b_2+...b_{30}b_{29}+b_{30}b_{30})P(x)\\&=\sum_i^{30}\sum_j^{30......