当前位置: 首页 > news >正文

P11816QOJ1250 Pionki 轮廓线DP

判定有解是一个比较经典的Hall定理。

也即,将 \(a\) 看作正数,将 \(b\) 看作负数,那么一个在 \((i,j,k)\)\(1\),可以与一个在 \((a,b,c)(a\ge i,b\ge j,c\ge k)\)\(-1\) 进行匹配。

根据 Hall 定理,有 \(|N(S)|\ge |S|\),转化后就是,选出一些 \(1\) 后,对所有的被其偏序的 \(-1\) 个数之和大于等于选出的 \(1\) 的个数。

那么我们在 \(N(S)\) 确定时肯定要最大化 \(|S|\),因此令 \(c_{i,j}=b_{i,j}-a_{i,j}\),问题变为对于所有的满足满足 \((a,b,c)\) 被选了,则所有 \((i,j,k)(i\le a,j\le b,k\le c)\) 的点都被选的选点方案,点权和不大于零。

转化为关于最大值的计算,考虑DP。

注意到,随着第一维 \(i\) 的增加,不妨将平面上的限制看作一条 \((m-1,0)\to (0,k-1)\) 轮廓线,那么这条线是在不断上移的(也即框住的点越来越少)。

用一个恰有 \(k\)\(1\) 的二进制数记录一条轮廓线,从 \((m-1,0)\) 开始走,遇到 \(1\) 就增加第二维,遇到 \(0\) 就减少第一维,转移就是将一对 \(01\) 改为 \(10\),这样恰好少框住一个点,于此同时再算一下本层框住点的点权和即可。

实现上,由于轮廓线是上移的过程,所以不妨维护下方没框住的点的点权和,由于全局和为零,因此改为维护答案的相反数的最小值即可。

#include<bits/stdc++.h>
using namespace std;
#define N 10505
#define int long long
int f[1<<12],g[1<<12],n,m,k,a[N][6][6];
void sol(){cin>>n>>m>>k;for(int i=0;i<n;++i)for(int j=0;j<m;++j)for(int t=0;t<k;++t)cin>>a[i][j][t];for(int i=0;i<n;++i)for(int j=0;j<m;++j)for(int t=0,x;t<k;++t)cin>>x,a[i][j][t]=x-a[i][j][t];vector<int>stu;for(int i=0;i<(1<<m+k);++i)if(__builtin_popcount(i)==k)stu.push_back(i);memset(f,0x3f,sizeof f);f[(1<<k)-1]=0;for(int i=0;i<n;++i){memset(g,0,sizeof g);for(int j:stu)if(f[j]<1e18){for(int t=1,x=m-1,y=0;t<m+k;++t){if(((j>>t)&1)==0&&((j>>t-1)&1)){//上移f[j^(3<<t-1)]=min(f[j^(3<<t-1)],f[j]);g[j^(3<<t-1)]=g[j]+a[i][x][y];}if((j>>t-1)&1)++y;else --x;}f[j]+=g[j];}}for(int i:stu)if(f[i]<0){cout<<"NIE\n";return ;}cout<<"TAK\n";
}
signed main(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t=0;cin>>t;while(t--)sol();
}
http://www.gsyq.cn/news/22475.html

相关文章:

  • Bug——PaddleX人脸识别报错:Process finished with exit code -1073741819 (0xC0000005) - 教程
  • linux系统scatter/gather I/O技术
  • Joeys shell
  • 软件工程学习日志2025.10.16
  • Apifox 9 月更新| AI 生成接口测试用例、在线文档调试能力全面升级、内置更多 HTTP 状态码、支持将目录转换为模块 - 实践
  • window电脑开启hyperV虚拟化功能后导致本地服务端口被占用问题处理方案
  • 初识pytorch:网络骨架中的填充之各种层
  • Day5字符型
  • 深入解析:从 Vercel 构建失败谈 Git 大小写敏感性问题:一个容易被忽视的跨平台陷阱
  • 完整教程:Logit论文阅读
  • 前端快速开发工具推荐与实战 让开发速度提升 3 倍的完整工具链
  • Matlab选择常见颜色
  • 2025 年防静电地板源头厂家最新推荐榜单:权威品牌实力展现,助力各行业精准挑选优质产品
  • HyperWorks许可状态监控
  • 2025 年激光焊锡源头厂家最新推荐排行榜:覆盖多行业需求,助力企业精准挑选优质设备供应商
  • 客户案例 | 未来生物甄知科技,在SAP架构中搭建IT运维智能引擎
  • keycloak~标准的国际化设计
  • C0268 Count 1s
  • fac卡片网格灵活控制宽高
  • Ai元人文:用户端元人文
  • idea 安装的插件 和pom里引入的依赖区别
  • 使用 LLVM-Mingw 编译的 Qt 应用程序部署指南:拷贝必要库到 exe 目录
  • 盒子模型
  • 2025年10月国内权威信息公布:西安第四代住宅新房/学区房/地铁口买房性价比楼盘/地铁口新房价格/交大附中附近住宅/低总价新房推荐/带露台高性价比四代宅推荐口碑排行榜TOP10揭晓
  • HolmesGPT 正式上线 丨 KubeSphere 助力云原生智能排障新体验
  • MAUI开发安卓应用,采用PC的chrome浏览器调试平板网页
  • 【学习笔记】回滚莫队初步总结
  • python之模块
  • 2025 年电动阀门厂推荐榜:电动/气动/高压/真空阀门厂,上海巨良阀门凭技术与口碑领跑行业
  • 【学习笔记】线性基