首页 > 其他分享 >P9017 [USACO23JAN] Lights Off G

P9017 [USACO23JAN] Lights Off G

时间:2024-12-24 20:10:39浏览次数:3  
标签:P9017 次数 取反 Lights USACO23JAN 答案 区间 操作 考虑

前言

困了一下午, 仅仅只搞懂了个大概, 我们赶紧把这些题补了, 冷静一点

思路

观察大样例可以发现, 答案好像都不大
容易证明的是先用最多 \(n\) 次关闭所有开关, 然后在 \(2n\) 次打开每个灯, 这样一定不超过 \(3n\) 次就可以成功的打开所有灯
那么我们考虑以这个为突破口, 枚举操作次数解决问题

那么考虑对于一种操作次数 \(m\) , 怎样判断其是否可行

首先你需要知道操作的小转化 : 对于每个 \(2\) 操作, 我们发现其相当于一个 \(\oplus\) , 那么我们可以利用 \(\oplus\) 的交换律和自反律, 得出 \(a\) 的初始状态和 \(b\) 的变换是互相不影响的两个部分, 下面我们只考虑 \(b\) 变换的异或积

稍微观察一下第 \(i\) 次操作的性质, 你发现最终第 \(i\) 次操作会覆盖到 \(m - i + 1\) 大小的区间, \(\rm{belike}\) :
m - i + 1

那么对于 \(m\) 次操作, 相当于一串长度为 \(1, 2, 3 \cdots m\) 的区间取反

这个时候问题就更加符合中国宝宝的体质, 每次操作次数 \(m \gets m + 1\) , 转化过来仅仅是多了一个长为 \(m + 1\) 的区间取反

这个时候看似没法处理了, 但是你发现即使是多组测试数据, 但是 \(n\) 都是相通的, 进一步思考可以发现, 我们可以考虑来一个全局的预处理

考虑令 \(f_{i, S}\) 表示第 \(i\) 次操作能否转化到 \(S\) , 其中 \(f_{i, S} \in \{0, 1\}\)

容易发现每次其实就是从 \(f_{i - 1, S^{\prime}}\) 通过新增加一个长为 \(i\) 的区间取反变换而来的

我们可以容易的列出柿子

\[f_{i, S} \gets f_{i - 1, S^{\prime} }, \lvert S^{\prime} \rvert = i \]

即可


感觉有点混乱, 我们再理一遍思路

首先你观察操作, 发现 \(a\) 的初始状态和 \(b\) 的变换是两个部分, 可以分开讨论

观察大样例发现答案很小, 我们考虑证明出答案 \(\leq 3n\) , 然后枚举答案(及操作次数)

假设操作次数为 \(m\)

稍微观察一下第 \(i\) 次操作的性质, 你发现最终第 \(i\) 次操作会覆盖到 \(m - i + 1\) 大小的区间, \(\rm{belike}\) :
m - i + 1

那么对于 \(m\) 次操作, 相当于一串长度为 \(1, 2, 3 \cdots m\) 的区间取反

这个时候问题就更加符合中国宝宝的体质, 每次操作次数 \(m \gets m + 1\) , 转化过来仅仅是多了一个长为 \(m + 1\) 的区间取反

然后我们考虑全局预处理

结束

实现

难点不在实现

总结

对于 \(01\) 串的操作, 我们考虑用数学语言表示
善于利用运算律简化问题

当观察到答案较小时, 考虑

  • 分讨答案
  • 枚举答案检查

玩样例可以找到一些有用的性质

如果多组测试数据有相通之处, 也许你可以全局的处理?

感觉这个题到紫了, 很难, 跨段做题其实是很影响心态的, 因为连我自己都不知道为什么可以这样想

标签:P9017,次数,取反,Lights,USACO23JAN,答案,区间,操作,考虑
From: https://www.cnblogs.com/YzaCsp/p/18628625

相关文章

  • P9020 [USACO23JAN] Mana Collection P 题解
    P9020[USACO23JAN]ManaCollectionP题解首先考虑对于长为\(d\les\)的最优路径,最优的方法一定是先在起点等\(s-d\)秒再走以确保收集到的最大。\(n\le18\)我们显然考虑状压dp。考虑最大法力值难以计算,正难则反,考虑使未被选择的最小。于是我们设\(dp_{sta,i}\)表示状......
  • 在AWS Lightsail建立WordPress Multisite & Route 53 subdomains & Hexo Blog & WordP
    1.0前言玩Startup比賽,因需高效快速地做POC原型產品,所以利用AWS云端服務來更快地開發。你會學到:LightSail建立WordpressmultisiteRoute53註冊WordpressSubdomains&GithubCuostomDomainLightSailCustomDomain&SSLHexo快速搭建GihubPages博客+ Route53 Custom......
  • CF1523E Crypto Lights 题解
    CF1523ECryptoLights题解传送门。题目大意:有\(n\)个台灯,初始时都是暗的,每次随机点亮一个暗台灯,若点亮后存在一个长度为\(k\)的连续段有大于一个台灯被点亮则立刻停止,求期望点亮多少台灯。(就是直接把原题翻译搬过来了)很明显的期望dp,状态定义也很明显,设\(f_i\)表示......
  • 解决route53域名transfer之后lightsail-DNS-zone的record无效的问题
    症状把route53的域名transfer给另一个账户之后,在新账户给这个域名创建一个lightsailDNSzone,然后把这个域名attach到一个instance的IP上。但是等了很久域名解析仍然失败:ping:net1.seekstar1.link:Temporaryfailureinnameresolution解决方案官方创建DNSzone的教程:htt......
  • Lights
    题目信息题目链接LuoguCF1907G思路分析如果我们把每一个关系都转化为一条无向边,则\(n\)个点会有\(n\)条边,并且每一个点的度数至少是\(1\),所以是一颗基环树森林。我们分别看看每一个数。一棵树一定会有一个环,首先环外树的决策方案是一定的,一定是将每一个权值为\(1\)的......
  • P6261 [ICPC2019 WF] Traffic Blights 题解
    思路考虑题目要求的是什么。假设\(p_i\)代表通过前\(i\)个红绿灯的概率。那么我们的答案即为\(p_i-p_{i-1}\)。不妨设\(w_i=r_i+g_i\)。我们的限制条件类似:\[t\not\equiva_i\pmodw_i\]那么所有红绿灯会形成周期\(lcm(w_1,w_2,\cdots,w_n)\)。由于\(2019!\)肯......
  • [题解]CF1907G Lights
    CF1907GLights我们可以把灯抽象成节点,而开关抽象成无向边(重边算作\(1\)条)。显然每个连通块要么是一棵树,要么是一棵基环树。对于基环树,我们把它看做若干棵树处理,最后我们再考虑如何处理环。如下图,这是一棵树,黄色的点表示亮灯。我们选定任意一条边,可以改变子节点和父节点的状......
  • CF729B Spotlights 题解
    题目简述给出一个$n$行$m$列的$01$矩阵,定义每个点的价值为上下左右四个方向有$1$的方向数,求所有为$0$的点的价值和。题目分析我们首先可以考虑暴力,但是发现是不行的。于是我们考虑动态规划。设$dp_{i,j,0/1/2/3}$分别表示$(i,j)$这个点上方,左方,下方,右方是否有$......
  • CF241E Flights
    CF241EFlights边权转点权+差分约束显然图中不在\(1\)到\(n\)路径上的边是不会影响答案的,所以现在只考虑\(1\)到\(n\)路径上的边。然后就有重要性质,图中\(1\)到\(n\)的所有路径的航程相同可以转化为,对于每个在\(1\)到\(n\)某条路径上的\(u\),都有\(1\)到\(u......
  • 获取AWS lightsail Windows server RDP密码
    场景创建lightsail的linuxserver时已经生成SSHkey,建立Windows的实例(Instance)时,并未提示输入管理员密码。登录时,找密码登录,提示“DecipheryourpasswordYouusedthe"keyname"keywhenyoucreatedthisinstance.Seetheinstructionstodecipherthepasswordfromthe......