首页 > 其他分享 >杂题选写 2

杂题选写 2

时间:2024-11-13 19:09:44浏览次数:1  
标签:选写 状态 le middle 询问 开关 杂题 unordered

Light switches

*2600

tag:暴力枚举,meet in middle

题目描述

有 \(n(1\le 1000)\) 盏灯和 \(s(1\le s\le 30)\) 个开关,每个开关能控制一些灯,并改变这些灯的状态。

接下来有 \(d(1\le d\le 1000)\) 次询问,每次询问给出 \(k_i\) 盏亮着的灯,询问将所有灯全部熄灭最少需要按几次开关。

思路

每个开关至多会被按一次。

注意到 \(s\) 很小。

可以考虑一个 \(O(2^s)\) 的暴力。

但复杂度显然不对。

所以 meet in middle,将开关划分为 \(k\) 和 \(s-k\) 两部分。

每次询问枚举 \(k\) 中的所有状态,并在 \(s-k\) 的部分找其与初始状态异或后的状态。

具体实现时可以用 unordered_map 存下 \(s-k\) 这部分的所有状态,灯的状态可以用 bitset 来存。

时间复杂度 \(O(2^k+2^{s-k}+\frac{dn2^k}{w})\),还要带 unordered_map 的常数。

在 \(k\) 取 \(12\) 左右可以通过。

标签:选写,状态,le,middle,询问,开关,杂题,unordered
From: https://www.cnblogs.com/ddxrS/p/18544578

相关文章

  • Kruskal 重构树学习笔记+杂题
    图论系列:前言:相关题单:戳我一.最小瓶颈路唉,前面4个题单里其实有不少题是最小瓶颈路的做法啊。讲解摘自wiki。1.定义无向图\(G\)中\(x\)到\(y\)的最小瓶颈路是这样的一类简单路径,满足这条路径上的最大的边权在所有\(x\)到\(y\)的简单路径中是最小的。(对于下面这张......
  • 并查集+最小生成树 学习笔记+杂题 2
    图论系列:前言:相关题单:戳我算法讲解:戳我CF1829ETheLakes给定一张\(n*m\)的矩阵,询问正整数四联通块权值和的最大值。并查集维护即可,记录一下集合内的点的权值和。代码:constintM=1005;intT,n,m,ans;inta[M][M],fa[M*M],siz[M*M];intfx[5]={0,1,-1,0,0};intfy[5]......
  • 「杂题乱刷2」CF1288E
    题目链接CF1288EMessengerSimulator解题思路发现向前移的部分普通维护比较困难,因此我们考虑通过某种方式来维护这个东西。考虑建立\(m\)个虚点来维护,每次询问都将实点移至虚点去。这里求答案我们需要支持单点加,区间求和,可以用树状数组轻松维护。参考代码#include<bits/s......
  • 「杂题乱刷2」CF1219G
    题目链接CF1219GHarvester解题思路就是个嗯分讨题。发现最终选择的方案总共就以下五种情况:选\(4\)行\(0\)列。选\(3\)行\(1\)列。选\(2\)行\(2\)列。选\(1\)行\(3\)列。选\(0\)行\(4\)列。对于第一,五种情况,直接取每行或每列的前四大值......
  • 「杂题乱刷2」CF1354E
    题目链接CF1354EGraphColoring(*2100)解题思路发现这个东西就是类似于二分图染色的东西。因为\(2\)只能和\(1,3\)链接。其余种类的点都不能连接。不妨把\(1,3\)都看成同一个点放到最后处理。那么我们就相当于是要找到一种方案使得选择每个联通快的黑点或白点,使得最......
  • 「杂题乱刷2」CF1370F2
    题目链接CF1370F2TheHiddenPair(HardVersion)(*2700)题目描述真的很难吗?我们首先考虑找出第一个特殊点。我们可以先求出这两个点路径中的任意一个点。发现询问\(1\simn\)就使我们需要的询问、接下来以这个路径中的一个点为根来确定每个节点的深度。接下来考虑二......
  • 并查集+最小生成树 学习笔记+杂题 1
    图论系列:前言:相关题单:戳我算法讲解:戳我代码可能过多啊,到时候页面别卡死了,所以就把代码最前面的缺省源删了(反正就是几个头文件/defineintlonglong,自己加一下即可)。并查集记得初始化,最小生成树记得排序。P3367【模板】并查集板子题,给定\(n\)个元素,有2种操作,一种合并,......
  • 「杂题乱刷2」P11267
    题目链接P11267【MX-S5-T1】王国边缘解题思路先考虑对于\(1\simn\)中的每一个点往后跳\(1\)次会跳的距离。那么为什么只用处理\(1\simn\)这些点而不去处理其余的点往后跳的距离呢?我们可以发现,由于字符串是无线循环的,所以对于位置模\(n\)的结果相同时,那么往后跳......
  • 双连通分量学习笔记+杂题
    图论系列:前言:もしも明日がくるのならあなたと花を育てたいもしも明日がくるのならあなたと愛を語りたい走って笑って転んで相关题单:https://www.luogu.com.cn/training/641352一.割点与桥双连通分量是针对无向图来说的,有向图是强连通分量。在了解双连通分量之前需要先......
  • AGC 杂题
    AGC029CLexicographicconstraints有\(n\)个字符串,现在告知它们的长度\(a_i\),求使得\(\foralli\in[1,n),s_i<s_{i+1}\)的最小字符集大小。\(n\le2\times10^5,a_i\le10^9\)二分字符集大小\(|\Sigma|\),分类讨论,设起始字符为a:\(a_i<a_{i+1}\):显然\(s_{i+1}\leftarr......