Minimax Problem——状压-二分
发布时间
阅读量:
阅读量
Minimax Problem
题解:
当最小值与最大值的特性显现时,可以考虑采用二分法进行处理。同时观察到m的数值较为微小,因此可借助状态压缩的方式进行暴力枚举。然而,状态压缩通常用于记录01状态,而在此问题中可能存在多个不同的数值,需要将其转化为对应的01状态。由于采用了二分法,我们可以将这一过程视为一个二分类问题:若数值大于等于当前中间值mid,则标记为1;否则标记为0。在枚举过程中必须确保每个所选状态都是有效的,并且从两列数据中选出的新排列数量必须满足恰好包含m个元素的要求。
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int bits=1<<9;
const int N=3e5+7;
int maze[N][10],vis[bits],n,m;
int res1,res2;
bool check(int mid)
{
memset(vis,0,sizeof vis);
for(int i=0;i<n;i++){
int t=0;
for(int j=0;j<m;j++){
if(maze[i
全部评论 (0)
还没有任何评论哟~
