AcWing

$Sol$

假设改变$[x1,y1]$和$[x2,y2]$的状态就可以达到目的.注意到先改变谁对结果是没有影响的!!

所以就可以直接枚举改变状态的结点而不需要注意顺序.

$4*4$的矩阵,看成一个十六位的二进制数,枚举这个二进制数就是枚举方案了.

$over!$

$Code$

#include<bits/stdc++.h>
#define il inline
#define Rg register
#define go(i,a,b) for(Rg int i=a;i<=b;++i)
#define yes(i,a,b) for(Rg int i=a;i>=b;--i)
#define mem(a,b) memset(a,b,sizeof(a))
#define ll long long
#define db double
using namespace std;
il int read()
{
Rg int x=,y=;char c=getchar();
while(c<''||c>''){if(c=='-')y=-;c=getchar();}
while(c>=''&&c<=''){x=(x<<)+(x<<)+c-'';c=getchar();}
return x*y;
}
bool mp[][],nw[][];
int as=1e7,ans[],tmp[];
il void sol(int x)
{
go(i,,)go(j,,)nw[i][j]=mp[i][j];
Rg int sum=;
go(k,,)
if((<<k-)&x)
{
tmp[++sum]=k;
Rg int h=(k-)/+,l=k-*(h-);
go(i,,)nw[i][l]^=;
go(j,,)if(j!=l)nw[h][j]^=;
}
go(i,,)go(j,,)if(!nw[i][j])return;
if(sum<as){as=sum;go(i,,sum)ans[i]=tmp[i];}
}
int main()
{
go(i,,)
{
string s;cin>>s;
go(j,,)if(s[j-]=='-')mp[i][j]=;
}
Rg int maxs=(<<)-;
go(i,,maxs)sol(i);
printf("%d\n",as);
go(i,,as)printf("%d %d\n",(ans[i]-)/+,(ans[i]%)==?:ans[i]%);
return ;
}

随机推荐

  1. deepin golang微服务搭建go-micro环境

    1.安装micro 需要使用GO1.11以上版本 #linux 下 export GO111MODULE=on export GOPROXY=https://goproxy.cn # 使用如下指令安装 ...

  2. jmter对于函数的处理

    1.获取当天的时间函数 ${__time(yyyy-MM-dd_HH-mm-ss)} 2.获取随机函数 ${__Random(100,300,)} 3.查看结果数

  3. 2019-2-11-WPF-获取应用的所有窗口

    title author date CreateTime categories WPF 获取应用的所有窗口 lindexi 2019-02-11 08:55:31 +0800 2019-02-11 0 ...

  4. jq获取单选框、复选框、下拉菜单的值

    1.<input type="radio" name="testradio" value="jquery获取radio的值" /> ...

  5. H3C 路由器的特点

  6. Oracle的dual是什么东西啊

    原文:https://zhidao.baidu.com/question/170487574.html?fr=iks&word=dual&ie=gbk Oracle的dual是什么东西 ...

  7. TortoiseSVN各种状态

    黄色感叹号(有冲突): --这是有冲突了,冲突就是说你对某个文件进行了修改,别人也对这个文件进行了修改,别人抢在你提交之前先提交了,这时你再提交就会被提示发生冲突,而不允许你提交,防止你的提交覆盖了别 ...

  8. SuperSocket通过本地证书仓库的证书来启用 TLS/SSL

    你也可以通过本地证书仓库的证书,而不是使用一个物理文件. 你只需要在配置中设置你要使用的证书的storeName和thumbprint: <server name="EchoServe ...

  9. nano使用说明

    Main nano help text The nano editor is designed to emulate 仿真.模拟 the functionality and ease-of-use o ...

  10. Nuget 通过 dotnet 命令行发布

    在开发完成一个好用的轮子就想将这个轮子发布到 nuget 让其他小伙伴可以来使用,但是 nuget.org 的登陆速度太慢,本文介绍一个命令行发布的方法,通过命令行发布的方法可以配合 Jenkins ...