csa

算是热身题吧

如果是每次操作一行或一列,那么无论怎么操作,本质不同的行最多只有两种,本质不同的列也最多只有两种,那么只要把某一种行和某一种列全部翻转使得全为0即可

现在是同时操作一行一列,显然操作一行或一列偶数次等于没操作,所以对于要操作的行如果操作完了,但是还要操作,那么后面只用操作同一行,列的情况类似.这就等价于操作的行列数目的奇偶性要相同,枚举不同情况即可

#include<bits/stdc++.h>
#define LL long long
#define uLL unsigned long long
#define db double using namespace std;
const int N=500+10;
int rd()
{
int x=0,w=1;char ch=0;
while(ch<'0'||ch>'9'){if(ch=='-') w=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}
return x*w;
}
uLL pw[N],bs=233,aa[N],bb[N];
int n,m,lm,nm,a[N][N],smx,smy,s1[N],t1,s2[N],t2,mx=N*2;
vector<int> a1,a2;
bool sx[N],sy[N],fx,fy;
void wk()
{
t1=t2=0;
int co=a[1][1]^(sx[1]^fx)^(sy[1]^fy);
if(co) return;
for(int i=1;i<=n;++i)
if(sx[i]^fx) s1[++t1]=i;
for(int j=1;j<=m;++j)
if(sy[j]^fy) s2[++t2]=j;
if(mx>max(t1,t2))
{
mx=max(t1,t2);
a1.clear();
for(int i=1;i<=t1;++i) a1.push_back(s1[i]);
a2.clear();
for(int i=1;i<=t2;++i) a2.push_back(s2[i]);
}
} int main()
{
n=rd(),m=rd();
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)
a[i][j]=rd();
lm=max(n,m);
pw[0]=1;
for(int i=1;i<=lm;++i) pw[i]=pw[i-1]*bs;
for(int i=1;i<=n;++i)
{
for(int j=1;j<=m;++j) aa[i]+=pw[j]*a[i][j];
bb[i]=aa[i];
}
sort(bb+1,bb+n+1);
nm=unique(bb+1,bb+n+1)-bb-1;
if(nm>2) {puts("-1");return 0;}
for(int i=1;i<=n;++i) smx+=sx[i]=aa[i]==bb[1];
for(int j=1;j<=m;++j)
{
aa[j]=0;
for(int i=1;i<=n;++i) aa[j]+=pw[i]*a[i][j];
bb[j]=aa[j];
}
sort(bb+1,bb+m+1);
nm=unique(bb+1,bb+m+1)-bb-1;
if(nm>2) {puts("-1");return 0;}
for(int j=1;j<=m;++j) smy+=sy[j]=aa[j]==bb[1];
if(!((smx^smy)&1)) wk();
fx^=1,smx=n-smx;
if(!((smx^smy)&1)) wk();
fx^=1,smx=n-smx;
fy^=1,smy=m-smy;
if(!((smx^smy)&1)) wk();
fx^=1,smx=n-smx;
if(!((smx^smy)&1)) wk();
if(mx<=lm)
{
printf("%d\n",mx);
while(mx--)
{
if(!a1.empty()) printf("%d ",a1.back()),a1.pop_back();
else printf("1 ");
if(!a2.empty()) printf("%d\n",a2.back()),a2.pop_back();
else printf("1\n");
}
}
else puts("-1");
return 0;
}

CSA Lignts Out的更多相关文章

  1. 【C#基础】CSA控件编写秘籍

    新建CSA控件 1.新建一个纯类,命名空间是: namespace SimPerfect.CSAControlLibrary.CSAControls 2.实现两个构造函数:无参和传Candy参数 pu ...

  2. 具有 CSA CCM 证明的 SOC 2 可简化 Windows Azure 客户的安全性评估过程

    编辑人员注释:本文章由 Windows Azure 产品市场营销总监 Sarah Fender 撰写. 今天,我们宣布 Microsoft 的公共审计师 Deloitte 已经发布了有关 Window ...

  3. CSA 第五届研讨会 想象

    参加第五届CSA云安全联盟研讨会. 人们太.所以,我们没有找到座位.立一个很长的时间.为了弥补没有时间坐在办公室.一个补回来.首先为大家介绍的信贷云,事实上独立: 信-使用-云 1. 信-使用-云 什 ...

  4. CSA Round #54 $\ $Voting

    CSA Round #54 \(\ \)Voting 题目大意: 原题网址:戳我戳我! 一次歌唱比赛中,一位歌手刚刚结束表演,评委正在打分. 一共有 \(n\) 位评委,他们每人可以打 \(1\) 分 ...

  5. CRM中间件里的CSA队列有什么用

    我们有时候会在中间件的事务码SMQ2即Inbound队列查看器里观察到以CSA开头的队列: 这些队列的作用是什么呢?在SAP community上已经有很多朋友提出了相同的问题,也有专家在下列两个连接 ...

  6. 题解-CSA Round#18 Randomly Permuted Costs

    Problem CSA Round 18 题意概要:给定一个有重边有自环 \(n\) 点 \(m\) 边的有向无环图(DAG),每条边有其权值,每当你走到一个点 \(x\) 时,所有从 \(x\) 连 ...

  7. 题解-CSA Beta Round#1 Number Elimination

    Problem CSA-Beta Round#3 题意概要:给定 \(n\) 个数组成的序列,定义一次操作: 在当前序列中选择两个数,将其中较小的数从序列中删除(若两个数相同,则删除在序列中更靠前的) ...

  8. CSA|EI

    信息检索 CSA是学科特色的包含相关学科的内容,其网址是https://search.proquest.com/ 可以使用命令行检索: 分类的限制检索: 寻找检索线索可使用百科全书 EI是工程领域最全 ...

  9. CSA单点登录环境配置

    本篇先写一些基础 今天看到一个cas单点登录的源码,搞环境就废了大半时间 <SSO CAS单点系列>http://www.imooc.com/article/3576 参考了这篇博客里的配 ...

随机推荐

  1. R_Studio(关联)使用apriori函数简单查看数据存在多少条关联规则,并按支持度降序排序输出

    查看数据menu_orders.txt文件存在多少条关联规则,并按支持度降序排序输出 #导入arules包 install.packages("arules") library ( ...

  2. Unknown tag (s:property)的原因

    今天在做struts2的练习,然后在jsp页面我使用<s:property value="name"/>竟然报错, 然后网上走了下,恍然大悟,我原来没有在jsp页面里面 ...

  3. C++入门经典-例2.13-左移运算

    1:代码如下: // 2.13.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> using ...

  4. Spring Boot中使用 Thymeleaf

    目录 1.pom.xml引入thymeleaf 2.关闭缓存application.properties 3.编写Controller类 4.模板html 5.运行结果 1.pom.xml引入thym ...

  5. 系统句柄报too many files open

    对于一般的应用来说(象Apache.系统进程)1024完全足够使用.但是如何象java等单进程处理大量请求的应用来说就有点捉襟见肘了.如果单个进程打开的文件句柄数量超过了系统定义的值,就会提到“too ...

  6. java 对象引用为null时,出现的bug问题

    在Java中,对象往往包含属性.方法及一个存储空间,若一个对象的属性和方法是空的则可认为这是一个空对象. 一个空对象也是对象,同样通过对象名引用方法或属性,但和一般对象有点不同. 1.空对象调用非静态 ...

  7. 5.Python使用模块

    1.模块的 作用 2.模块的含义 3.模块的 导入  因此模块能够划分系统命名空间,避免了不同文件的变量重名的问题.                 Python的模块使得独立的文件连接成了一个巨大 ...

  8. vue问题一:触发接口

    //在script中先引用 import api from './../../api/index' //vue文件方法中 写 del(index, row) { let self=this; // 传 ...

  9. Slider 滑块

    通过拖动滑块在一个固定区间内进行选择 ¶基础用法 在拖动滑块时,显示当前值 通过设置绑定值自定义滑块的初始值 <template> <div class="block&qu ...

  10. MJRefresh实现请求数据列表不满一页,或者请求数据为空时,不显示footer文字

    最近自己负责的项目测试要求: 列表的数据不满一页的话就自动隐藏下面的“上拉加载更多”或是“到底了,没有更多数据”. 百度了一下,看了一篇博客的介绍实现: http://blog.csdn.net/gx ...