首页 > 其他分享 >高维前缀和/SOS DP 学习笔记

高维前缀和/SOS DP 学习笔记

时间:2024-03-25 20:35:19浏览次数:19  
标签:lfloor frac max rfloor SOS 得票数 DP 高维

JOISC 2023 D2T2 Council

注意到,钦定一个人为主席后,对于此时得票数大于 \(\lfloor \frac{n}{2} \rfloor\) 的议案,不管怎么选副主席,均能通过;对于此时得票数小于 \(\lfloor \frac{n}{2} \rfloor\) 的议案,不管怎么选副主席,均不能通过。所以需要考虑的只有此时得票数恰好等于 \(\lfloor \frac{n}{2} \rfloor\) 的议案。

记 \(S_i\) 为:钦定 \(i\) 为主席后,得票数等于 \(\lfloor \frac{n}{2} \rfloor\) 的议案集合。记 \(T_i\) 为 \(i\) 的投票状态取反后的状态。记 \(base_i\) 为:钦定 \(i\) 为主席后,此时得票数大于 \(\lfloor \frac{n}{2} \rfloor\) 的议案的个数。那么对于 \(i\) 的答案,形式化表述即为:

\(base_i+\max_{T_j \bigcap S_i} \mid T_j \bigcap S_i \mid\)

这是一个我们熟知的高维前缀 \(\max\) 的形式。但是我们还要对 \(T_j\) 这个条件进行限制,所以不能直接做高维前缀 \(\max\)。接下来考虑如何处理这个限制:注意到,\(T_j\) 是 \(T_j \bigcap S_i\) 的超集,而 \(T_j \bigcap S_i\) 又是 \(S_i\) 的子集。那么,我们可以先以 \(T_j\) 为基础做一遍高维后缀 \(\max\)(即超集 \(\max\)),再做一遍高维前缀 \(\max\) 即可。这样就能保证枚举到的集合同时满足是 \(S_i\) 和 \(T_j\) 的子集这两个条件,因此是合法的。

因为本题还要求主席与副主席的编号不同,所以在转移的时候,不仅要维护最大值和最大值编号,还要维护次大值及其编号。写起来有点令人暴躁。

题交记录

ARC 100 E - Or Plus Max

先写上一题再写这一题,简直是不要太容易。

题交记录

标签:lfloor,frac,max,rfloor,SOS,得票数,DP,高维
From: https://www.cnblogs.com/Day0/p/18095247

相关文章

  • 动态规划——线性dp
    数字三角形//从上到下#include<iostream>#include<algorithm>usingnamespacestd;constintN=510,INF=1e9;intn;inta[N][N];intf[N][N];intmain(){scanf("%d",&n);for(inti=1;i<=n;i++)for(int......
  • 使用dpkg在ubuntu上安装软件包遇到依赖包的问题
    问题在ubuntu上使用apt-get安装软件包,系统会自动安装依赖的软件包,但是使用dpkg在ubuntu上安装软件包时不会,有时会遇到下面的错误:pengdl@pengdl-HP:~/Soft$sudodpkg-ivirtualbox-7.0_7.0.14-161095~Ubuntu~focal_amd64.deb[sudo]passwordforpengdl:Selectingpreviously......
  • 换根DP学习笔记
    啊啊啊啊啊啊啊啊啊啊啊啊画图累死我了额,这不菜根快乐DP(根)吗换根DP,即换根树形DP平常树形DP指定一个根,但万一邪恶出题人让你求多个点为根的情况呢?你们可能会想:多跑几遍不就好了!不可以的,直接TLE。这有个树,B是A之后的树根(拎上去):B成为树根后:画风突然转变但是!其实有些没变!......
  • 【DP】01背包问题与完全背包问题
    一、01背包问题有 N件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包......
  • NCV7718CDPR2G半桥驱动器规格书PDF数据手册引脚图图片价格参数概概述
    产品概述:NCV7718是一款六角半桥驱动器,具有专为汽车和工业运动控制应用设计的保护功能。NCV7718具有独立的控制和诊断功能。该器件可在正向、反向、制动和高阻抗状态下运行。驱动器通过16位SPI接口进行控制,并且菊花链兼容规格书参数:引脚图:......
  • AT_DP
    攻略先设计一个一定保证正确性的状态,可以完全朴素甚至可以n维考虑保证正确性的情况下:合并同类状态,消除无用状态,消除无用转移。对递推式进行分类,只与当前点有关的直接处理,只与以前相关的点预处理,既与当前有关又与现在有关考虑斜率优化(有单调性用单调队列,否则二分或李超)......
  • ARM64: ARDP
    1指令语法ardp<Xd>,<lable>2指令语义1获取程序计数器PC寄存器的值;2将PC寄存器值的低12位全部取0;3将lable的值乘以4096,也就是将label左移12位;4将第2步的PC值与第3步的label值相加;5将第4步所得结果写入寄存器Xd。从上面步骤可以看出,得到的结果低12位为0,所以得到......
  • TCP/UDP/IP协议 自述
    TCP包协议格式SYN—为1表示这是连接请求或是连接接受请求,用于创建连接和使顺序号同步ACK—为1表示确认号字段有效TCP协议三次握手流程主要就是SYN和ACK字段。服务器开始属于监听状态。1、客户端发送连接请求。SYN置为1.序列号为12342、服务器收到请求。ACK置为1,确......
  • Offer必备算法15_简单多问题dp_八道力扣题(打家劫舍+买卖股票)
    目录①力扣LCR089.打家劫舍解析代码②力扣213.打家劫舍II解析代码③力扣740.删除并获得点数解析代码④力扣LCR091.粉刷房子解析代码⑤力扣309.买卖股票的最佳时机含冷冻期状态机分析解析代码⑥力扣714.买卖股票的最佳时机含手续费状态机分析解析代码⑦......
  • 【蓝桥杯·dp问题】砝码称重
    此题易联想到使用动态规划解决,dp[i][j]状态表示是否存在前i个砝码中选取重量为j的方案。砝码重量分三种情况:1.砝码本身的重量(即一个砝码就可以表示的重量)2.放在同侧3.放在异侧注意重量为0的情况不记作方案数。#include<cstdio>#include<cstring>#include<iostream......