tg 32

暴力场
今天的题属实有点\(?\)

T1

闲话:
不得不感叹机子强大
g++ -std=c++14 -O2的编译条件下本机可以实现一秒\(2e9\)
评测机还是一秒\(1e9\)
于是偷摸着卡了几个常数大的小可爱

正解:
\(w_a\)作正值,\(w_b\)是负值
然后跑\(0/1\)背包,初值显然,目标\(f_0\)
考虑舍弃绝对值大的状态,
因为随机数据下,绝对值大的状态很少会回到\(0\)
但是如果构造数据卡一下会发生什么呢?就寄啦!
但是怎么避免这种情况呢?std:random_shuffle就好了
注意C++14以上版本慎用random_shuffle,请改用shuffle

更多人写的不算是正解的正解:(但是也不好卡?)
还是\(0/1\)背包
\(w\)从小到大排序
排完序以后维护前缀和
阶段为\(i\)的时候,
因为你已经知道选这些物品最多只会更新到这些
\(0/1\)背包最多只能选一次)
也就不用再向更高的位置转移了

为什么不算正解?因为时间复杂度和暴力前缀和搞背包一样
为啥能过?有个\(\frac{1}{2}\)的常数...
刚好就在g++ -std=c++14 -O2环境下评测机能力范围以内了

T2

我的教训:如果按点考虑,你会因为各种原因死的很惨
(包括但不限于:状态转移推不出来,炸内存,等等等等)
(下面主要来自于\(W\color\red{intersRain}\)先生的新题解)
于是你就可以考虑按边算贡献
于是我们考虑算有多少点过这条边
令这条边切断后左子树上\(x\)个点,右子树就是\(m-x\)
(便于区分叙述,以左右命名)
强制\(x\leq m-x\)
于是所有的点会过这条边,贡献\(x\)
对于每条边都这么干一次,就有了这个式子:

\[\sum\limits_{s=1}^{n}\sum\limits_{i=1}^{m-1}\min\{i,m-i\}\times C_{s}^{i}C_{n-s}^{m-i} \]

时间复杂度\(O(n^2)\),于是这样赛时您就有了\(30pts\)高分
首先\(min\)这一项看着比较不利于进一步化简,先把它敲掉,于是它变成这样

\[\sum\limits_{u=2}^{n}\sum\limits_{i=1}^{\frac{m-1}{2}}i\times C_{size[u]}^{i}C_{n-size[u]}^{m-i}+(m-i)\times C_{n-size[u]}^{i}C_{size[u]}^{m-i}+[m\%2==0]\frac{m}{2}\times C_{s}^{\frac{m}{2}}C_{n-s}^{\frac{m}{2}} \]

后面可以直接\(O(n)\)搞,继续优化前面的部分
不妨设 \(k=\frac{m}{2}\)
代数推导可知,(把\(i\)和分子约一下再提个\(s\)),
\(\sum\limits_{i=1}^{k}i\times C_{s}^{i}C_{n-s}^{m-i}=s\sum\limits_{i=1}^{k}C_{s-1}^{i-1}C_{n-s}^{m-i}\)
然后把上述的形式代到答案式,记\(f(s)\)为上述形式
于是答案变为:
\(\sum\limits_{u=2}^{n}f(size[u])\times f(n-size[u])\)
(前面\(i\)是正数的,代的\(size[u]\),\(i\)是负数的,代的\(n-size[u]\),应该非常清晰)
然后就考虑\(f\)函数了
\(f_s\)的组合意义就是\(n-1\) 个物品里选择了 \(m-1\) 个,前面 \(s-1\) 个物品中选择了 \(k-1\) 个的方案数
\(f(s)\) 变成 \(f(s+1)\) 变少的部分
就是前 \(s-1\) 个点中选择 \(k-1\) 个,选择了 \(s\) 为第 \(k\) 个点,后面 \(n-s-1\) 个点里选择了 \(m-k-1\) 个点
这是为什么呢?我们考虑如果没有选择 \(s\) 作为第 \(k\) 个点
那么前 \(s\) 个点中选择 \(k-1\) 个点和前 \(s-1\) 个点中选择 \(k-1\) 个是等价的
所以必须让 \(s\) 作为第 \(k\) 个点被选择,多出来的方案数根据乘法原理就是 \(C_{s-1}^{k-1}C_{n-s-1}^{m-k-1}\)

点击查看代码
后半段基本上都是直接粘的,
这个组合意义实在没有办法描述了
所以你可以看出它的?

T3

枚举时分秒
然后对于每种可能的情况二分查找出它对应的最大值
更新答案即可
注意就是时分秒的处理
还有就是时针只和时针算,分针只和分针算

T4

确实是不会了
\(l\color\red{yin}\)讲的确实是没懂

posted @ 2022-08-18 21:43  2K22  阅读(34)  评论(0)    收藏  举报