Processing math: 100%

CF431D

CF431D

给定一张棋盘,n×n 的大小,每个位置有一个权值。

每次你可以选择一个大小为 m×m 的矩形翻转其中权值,其中 m=n+12

最大化权值和。

n33,保证 n 为奇数。

Sol:

好仙的题呀qwq

m=n+12,根据观察,设 wx,y 表示点 (x,y) 的取反情况,我们会发现 wx,ywx,mwx,m+y=0,这是因为我们每次取反矩阵要么取反其中 0 个要么取反其中一个,列同理。

进一步观察,可以使用的 m2 个矩阵是线性无关的,单看前 m×m 个位置,我们发现翻转状态任意的矩形都是合法的(可以将每个线性无关的 mm 的矩形规定在左上角,然后从上往下依次进行翻转)

根据初始结论,这些位置将确定剩余的位置的局面。

换而言之,对于 x,y<m 单看 (x,y),(x+m,y),(x,y+m),(x+m,y+m)4 个位置,当中间一列与中间一行确定之后这 4 个位置绑定,而彼此独立,所以可以直接枚举最优决策了。

于是我们得到一个 O(4m×n2) 的做法了。

考虑进一步优化,我们发现如果将行的状态确定下来,那么每一列以及其影响的相绑定的一列的决策均固定,所以我们可以直接枚举行的状态并 check 答案(注意只需要枚举前一半),复杂度为 O(n22n2)

posted @   Soulist  阅读(157)  评论(0编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 手把手教你更优雅的享受 DeepSeek
· 腾讯元宝接入 DeepSeek R1 模型,支持深度思考 + 联网搜索,好用不卡机!
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
点击右上角即可分享
微信分享提示

目录导航