poj 2965
2016-01-13 22:00
302 查看
题意:给一个4x4的方格,‘+’符号代表关闭,‘-’符号代表打开,当所有的手柄都为符号‘-’,冰箱门才可以打开,每次对一个点进行操作,与这个点在同一行同一列的点全 部进行状态转变,问将门开打的最少操作次数;
思路:意思就只需要把所有的‘+’符号变成‘-’符号就行了,创建一个bool数组,每次遇到‘+’符号的话将这一行这一列全部进行!操作,最后bool数组中所有为true的坐标 即为要操作的点。
思路:意思就只需要把所有的‘+’符号变成‘-’符号就行了,创建一个bool数组,每次遇到‘+’符号的话将这一行这一列全部进行!操作,最后bool数组中所有为true的坐标 即为要操作的点。
#include<iostream> #include<cstring> #include<cmath> using namespace std; const int sasuke=4; bool num[5][5]; int main() { char str[5][5]; for(int i=1;i<=sasuke;++i){ for(int j=1;j<=sasuke;++j) str[i][j]=cin.get(); cin.get(); } for(int j,i=1;i<=sasuke;++i) for(j=1;j<=sasuke;++j){ if(str[i][j]=='+'){ num[i][j]=!num[i][j]; for(int k=1;k<=sasuke;++k){ num[i][k]=!num[i][k]; num[k][j]=!num[k][j]; } } } int a[20],b[20];int t=0; int count=0; for(int i=1;i<=sasuke;++i) for(int j=1;j<=sasuke;++j) if(num[i][j]){ ++count;a[t]=i;b[t]=j;++t; } cout << count << endl; for(int i=0;i<t;++i) cout << a[i] << " " << b[i] << endl; }
相关文章推荐
- LARS算法的几何意义
- ZenCoding Syntax
- 字符串的各种内置方法
- $ is not defined
- 制作原理图库之高级教程
- The best gift
- 条件过滤
- iOS XML,JOSN数据解析
- 【SAP UI】PBO和PAI
- 列处理——列间运算
- Fast R-CNN
- 自然语言处理(1)——文本分词
- H2O是开源基于大数据的机器学习库包
- 【SAP综合】BDT和XO的应用心得
- activate-power-mode 写代码的时候体验狂拽酷炫的效果 (IDEA版安装过程及问题)
- Git版本控制器的基本使用
- H2O是开源基于大数据的机器学习库包
- MySQL 中 EXISTS 的用法
- xwiki操作手册
- 【MySql】ERROR 1045 (28000): Access denied for user 'ambari'@'localhost' (using password: YES)