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. 2019-8-31-dotnet-通过-WMI-获取系统补丁

    title author date CreateTime categories dotnet 通过 WMI 获取系统补丁 lindexi 2019-08-31 16:55:59 +0800 2019- ...

  2. 割点(tarjan)

    对于根来说,如果它有超过1棵子树,那么它是一个割点 对于非叶结点来说,如果它的某一个儿子没有回边能到达高于它的点,那么它是一个割点 叶节点不是割点 //洛谷3388 #include<algor ...

  3. UVa11400 - Lighting System Design——[动态规划]

    题干略. 题意分析: 很容易理解一类灯泡要么全部换要么全不换,其实费用节省的主要原因是由于替换灯泡类型而排除了低压电压源,于是我们就可以推断出灯泡类型替换的原则: 对于两类灯泡a1和a2,a1可以被a ...

  4. python中使用指定GPU

    import os os.environ["CUDA_VISIBLE_DEVICES"] = "2" # 或 os.environ["CUDA_VIS ...

  5. 自动为DEV GridView控件添加SizeChanged事件

    实现gdv设置的抽象对象,不用每个gdv控件都添加sizechanged事件,只需执行gdc绑定sql函数,在其中会自动添加SizeChanged事件. //2016.5.13 by sngk //根 ...

  6. H3C MP-Group方式配置PPP MP

  7. 【codeforces 761D】Dasha and Very Difficult Problem

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  8. Pipeline & PageProcesser

    Pipeline & PageProcesser 这两部分是应该程序员自己实现的部分,因为PageProcesser关乎如何解析页面而Pipeline则是存储,推荐使用OOSpider也就是注 ...

  9. Vmware虚拟机用户密码忘记了怎么办?

    Vmware虚拟机用户密码忘记了怎么办?   虚拟机Linux上用户密码忘记了怎么办? 今天准备再学习一下linux操作系统,由于之前已经安装过vaware和linux(redhat),所以这次认为不 ...

  10. 2018-11-2-win10-uwp-通过-win2d-画出笔迹

    title author date CreateTime categories win10 uwp 通过 win2d 画出笔迹 lindexi 2018-11-2 20:11:0 +0800 2018 ...