• POJ2965The Pilots Brothers' refrigerator


    http://poj.org/problem?id=2965

    这个题的话,一开始也不会做,旁边的人说用BFS,后来去网上看了众大神的思路,瞬间觉得用BFS挺简单易;因为要让一个“+”变为“-”,只要将加号所在的位置(i,j)的行和列上的7个元素全部改变一次,这样的话(i,j)这个点将会变化7次,而 i 行上和 j 列另外六个元素将会变化4次,剩下的那些会变化2次,显而易见的是,一个位置上若翻转偶数次相当于没翻转,所以,只要记录下奇数次的翻转进行相加就可以了。

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<cstdlib>
     5 using namespace std ;
     6 char  ans[6][6];
     7 int flag[6][6];
     8 int main()
     9 {
    10     memset(flag,0,sizeof(flag));
    11     for(int i = 0 ; i <= 3 ; i++)
    12     {
    13         scanf("%s",ans[i]);//这个题输入的时候我用的两个for循环输入数组里,但是错了。。
    14     }
    15     for(int i = 0 ; i <= 3 ; i++)
    16     {
    17         for(int j = 0 ; j <= 3 ; j++)
    18         {
    19             //scanf("%c",&ans) ;
    20             if(ans[i][j] == '+')
    21             {
    22                 for(int k = 0 ; k <= 3 ; k++)
    23                 {
    24                     //加号所在的位置行列的翻转次数全加一。
    25                     flag[i][k]++ ;
    26                     flag[k][j]++ ;
    27                 }
    28                 flag[i][j]-- ;//上边两次多加了一次这个,所以在这里减1 ;
    29             }
    30         }
    31     }
    32     int sum = 0 ;
    33     for(int i = 0 ; i <= 3 ; i++)
    34     {
    35         for(int j = 0 ; j <= 3 ; j++)
    36         {
    37             sum += flag[i][j]%2 ;//遍历整个数组,凡是为奇数次的位置之和即为总的操作次数
    38         }
    39     }
    40     printf("%d
    ",sum) ;
    41     for(int i = 0 ; i <= 3 ; i++)
    42     {
    43         for(int j = 0 ; j <= 3 ; j++)
    44         {
    45             if(flag[i][j]%2 == 1)
    46             {
    47                 cout<<i+1<<' '<<j+1<<endl ;
    48             }
    49         }
    50     }
    51     return 0 ;
    52 }
    View Code
  • 相关阅读:
    linux部署nuxt.js项目
    vue---el-table设置表头居中,内容列居中/左对齐/右对齐
    偶然看到的jquery选择器性能问题
    关于js中的回调函数问题
    html5图片上传(搬砖)
    css上传文件样式元素样式美化
    小记--转自张鑫旭的css命名规则
    关于nodeJS 在webstorm中的服务器配置
    关于window上的github 上传本地文件--傻瓜式教程
    关于PS的基本操作
  • 原文地址:https://www.cnblogs.com/luyingfeng/p/3234636.html
Copyright © 2020-2023  润新知