首页 > 其他分享 >11.08

11.08

时间:2024-11-09 22:31:54浏览次数:1  
标签:frac 11.08 sum cap 异或 枚举 答案

感觉写的有点意识流。

A.BZOJ 5176

把 \(-1/1\) 转化为 \(0/1\),问题就变为一个格子和它相邻四个格子异或和为 \(0\)。
容易发现第一行的状态确定了,整个网格的状态就确定了。
对于给定的 \(m\) 个格子,其实就是解 \(m\) 个异或方程,但是我们还需要让我们的状态合法,而合法的等价条件为最后一行每个格子与它相邻四(个格子的异或和为零,最后问题就是求 \(n+m\) 个异或方程解的个数,设自由元个数为 \(x\),那么最后答案就是 \(2^x\)。

B.P3973 [TJOI2015] 线性代数

简单题,先把 \(B\) 的对角线减去 \(C\),那么问题就是就是一个矩阵选若干行及其对应的列使相交和最大。
这个显然不能 \(dp\),于是考虑优化退火,从删数的角度考虑,然后发现这不就是最大权闭合子图吗。

C.P5979 [PA2014] Druzyny

拿铁说这个东西很套路,我也觉得套路确实有点深。
赛时想着类似求值域连续段的做法:线段树+单调栈上二分,最后发现有的位置在作贡献与不作贡献之间反复横跳,遂寄。

从优化 \(O(n^2)\) 的 \(dp\) 入手,很容易发现这个从前面可以转移的位置断断续续的,于是考虑 \(cdp\) 分治下去,开一颗线段树,每次从左边把合法状态扔进去,右边区间查询进行转移。

A.Andryusha and Nervous Barriers

原来我开场 30min 就秒掉了 CF*2700(指思路)。
然后对着这个寻找最大的 \(j\) 使得 \(j<i\land l_j\le p\land r_j\ge p\land s_j+u_j\ge u_i\) 的问题,我说我超四维偏序,不太会写怎么办啊,不太能过怎么办啊,跟你拼了!!!
写了一整场没调出来。

一个球如果被一个板截住了,那么它后面的过程都是确定的了,也就是说我们只需要对每个球找出它下方第一个能借住它的板。
设板 \(i\) 生成的两个球下方第一个能借住它的板为 \(pre_{i,0/1}\),那么 \(f_i=f_{pre_{i,0}}+f_{pre_{i,1}}\),初始 \(f_0=1\)。

对一个球找出下方第一个能接住它的板,这个问题可以扫描线,开一棵以板的编号为下标的线段树,每次线段树上二分找出满足 \(j<i\land s_j+u_j\ge u_i\) 的最大的 \(j\) 即可。

B.钙铁锌硒维生素

把时间放在更有意义的事情上。

C.Bear and Chase

先用 floyd 算法预处理出任意两点之间的距离。时间复杂度 \(\mathcal{O}(n^3)\)。

记两次查询的节点分别为 \(a\), \(b\),两次查询得到的结果分别为 \(d_1, d_2\)。

  • 枚举 \(a\)。计算出第一步选 \(a\) 时的答案。因为我们要求最优策略下的答案,所以对所有 \(a\) 的情况取最大值即可。
    • 枚举 \(d_1\)。考虑所有距离 \(a\) 为 \(d_1\) 的节点,记为点集 \(U = \{u | \mathrm{dis}(u, a) = d_1\}\)。则得到回答 "\(d_1\)" 的概率是 \(\frac{|U|}{n}\)。求出 \(d_1\) 的答案后,乘以这个概率,累加起来,就是当前 \(a\) 的答案了。
      • 预处理出第二天罪犯来到 \(v\) 的概率 \(p(v)\)。具体来说,\(p(v) = \sum_{u\in U} \frac{1}{|U|}\cdot \frac{1}{\mathrm{deg(u)}} \cdot[(u, v)\in E]\)。把所有 \(p(v)\neq 0\) 的点(即与 \(U\) 中至少一个点有连边的点)存起来,记为集合 \(V = \{v | p(v)\neq 0\}\)。
      • 现在已经得到了回答 \(d_1\)。考虑我们接下来的最优策略,是两种情况的较大者:要么在 \(U\) 中随便猜一个点,并结束游戏,获胜的概率是 \(\frac{1}{|U|}\)。要么继续询问。
      • 如果继续询问。枚举接下来要询问的点 \(b\)。那这种情况下,获胜的概率就是所有 \(b\) 的答案的最大值。对每个 \(b\):
        • 枚举得到的回答 \(d_2\)。考虑距离 \(b\) 为 \(d_2\) 的点,记为集合 \(W = \{w | \mathrm{dis}(w, b) = d_2\}\)。在知道了 \(d_2\) 后,我们有唯一的最优策略,且获胜的概率是 \(\frac{\max_{v \in (V \cap W)}\{p(v)\}}{\sum_{v\in(V \cap W)} p(v)}\)。同时,\(d_2\) 发生的概率是 \(\sum_{v\in(V \cap W)} p(v)\)。所以 \(b\) 的答案是:\(\sum_{d_2} \frac{\max_{v \in (V \cap W)}\{p(v)\}}{\sum_{v\in(V \cap W)} p(v)}\times (\sum_{v\in(V \cap W)} p(v)) = \max_{v \in (V \cap W)}\{p(v)\}\)。所以我们只需要在枚举 \(d_2\) 之前,先枚举一遍 \(v\),就能预处理出每个 \(d_2\) 的答案。然后再扫描所有 \(d_2\),把这些答案加起来。

上述的做法看起来是四重循环。但对于同一个 \(a\),在所有 \(d_1\) 下 \(U\) 集合的大小之和为 \(n\)。\(V\) 集合里的点与 \(a\) 的距离要么是 \(d_1 + 1\),要么是 \(d_1 - 1\),所以 \(V\) 集合的大小之和也是 \(\mathcal{O}(n)\) 的。发现我们真正枚举的只有 \(a, b, V\),时间复杂度是 \(\mathcal{O}(n^3)\) 的。

标签:frac,11.08,sum,cap,异或,枚举,答案
From: https://www.cnblogs.com/ZepX-D/p/18537412

相关文章

  • 11.08学习
    importrequestsr2=requests.request('put','http://httpbin.org/put',data='wangluo210102')d3={'banji':'wangluo210102'}#print(r2.text)r3=requests.post('http://httpbin.org/post',data=d3)#print(r3......
  • 【11.08测试】铲雪机的一些说明
    首先拿到本题第一时间能抽象出的题意相关内容为树上路径覆盖。然后考虑怎么做,因为树上路径覆盖问题为树上组合优化问题,树上组合优化大概有两种思路树上贪心&树形dp。对于树上路径覆盖问题,这两种思路就为树上贪心&树上插头dp。看到数据范围为\(n\leq200000\),如果是dp的话,状......
  • linux11.08课堂随笔
    第5章进程管理一、静态查看进程ps命令可以查看静态进程,仅仅是捕捉某一个瞬间某一个进程的状态,类似于给进程制作快照。1.查看进程psaux2.查看CPU占用率psaux--sort-%cpu3.查看UID、PID、PPID等信息ps-ef快速查找psaxo命令自定义显示的字段4.查看指定进程PID(1)cat......
  • 11.08县哗
    今天只能待到8点半......
  • 【2023.11.08】NOIP2023模拟试题-30
    前言数论迎我归,数学送我葬组合数学不容易,又有DP当T3刚爆零,T4又遭殃OI路上怅前望,且行且彷徨T1最大公约数T1应该想一想就会,接下来我们讨论是怎么减去他的复杂度的。题目的关键在于,如果根据给出的\(a\)推出\(\gcd\)的话,就会有\(9\times10^{10}\)条推导关系。而......
  • 11.08记录
    ##11.08记录断更了一个多月,有身体的一部分原因,也有自己想休息下的原因。由于工作原因,我们天天都处于久坐。加上自己回家也是一直坐着的,希望大家有空记得多运动。学习还......
  • 【流水】2022.11.08
    今天有是信息课看python,孩子人傻了赶紧luogu上用python水了几道题。今天考试除了暴力分拿的十分健全就没啥优点了可怜紫飨被gank到三机房去了,可怜(悲听说要......
  • 2022.11.08 NOIP2022 模拟赛五
    「LibreOJNOIPRound#1」DNA序列注意到\(k=10\),\(|\Sigma|=4\),故本质不同的子串个数只有\(4^10\)种,可以直接压位存下来。时间复杂度\(O(nk)\)。Codeconstint......
  • 11.08
    今日内容1.面向对象的魔法方法2.魔法方法笔试题3.元类简介4.创建类的两种方式5.元类定制类的产生行为6.元类定制对象的产生行为7.魔法方法之双下new8.设计模式简介......