(DFS、bitset)AOJ-0525 Osenbei
发布日期:2021-10-24 15:04:55 浏览次数:5 分类:技术文章

本文共 727 字,大约阅读时间需要 2 分钟。

简要题意:

  给出n行m列的0、1矩阵,每次操作可以将任意一行或一列反转,即这一行或一列中0变为1,1变为0。问通过任意多次这样的变换,最多可以使矩阵中有多少个1。

思路分析:

  行数比较小,先不考虑对列的操作,将行数的所有情况举出来最多2^10种情况。对于已经固定了对行进行怎样的操作后,这种情况下对列的最优操作就是对每一列,如果此时1比0多就不变,不然就反转。实现在代码中就是一个for循环扫一遍。注意本题反转行、列采用bitset中的flip函数是非常合适的,因为每个数也不是1就是0,恰好符合位数。

参考代码:

  

1 #include 
2 #include
3 #include
4 5 using namespace std; 6 bitset<10000>bing[10];//建立bitset数组储存数据,方便反转行列 7 int main() 8 { 9 int hang,lie,i,j,ci,k,re=0;10 bool tem;11 while(cin>>hang>>lie&&hang>0)12 {13 re=0;14 for(i=0;i
>tem;19 bing[i][j]=tem;20 }21 }22 ci=1<

 

转载于:https://www.cnblogs.com/quintessence/p/6135806.html

转载地址:https://blog.csdn.net/weixin_30794491/article/details/99613652 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:利用 HTML 5 的多图片上传及预览(不含前端的文件分割) 分类: HTM...
下一篇:ERP开发准备

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年03月31日 07时17分44秒