zoukankan      html  css  js  c++  java
  • codeforces 961C Chessboard

    题目链接:http://codeforces.com/contest/961/problem/C

    题意:大致题意就是给你4个n*n的正方形字符数组,只包含0和1.然后需要让你对这4个做染色变换,染完之后拼成一个2n*2n的大正方形,是的正方形相邻块颜色不一样。

    分析:其实就是把这4块染色,然后拼接成一个左上角为1,然后相邻块颜色不同的大正方形。(左上角为1和左上角为0是一样的情况,拆分开可以相互拼接)。我们只需要在这4个小正方形中,选2个涂成左上角为1,2个涂成左上角为0,就可以拼接成我们想要的答案。到这里就比较简单了,只需要暴力比较每一个正方形染成左上角为1和左上角为9两种情况的花费。然后暴力选取2个当做左上角为1的,剩下的染成左上角为0的花费和,就是其中的一种情况的花费。枚举所有情况取最小就可以了。

    AC代码:

     1 #include<bits/stdc++.h>
     2 
     3 using namespace std;
     4 
     5 char s[5][105][105];
     6 char m[3][105][105];
     7 int ans[3][5];
     8 int main(){
     9     ios_base::sync_with_stdio(0);
    10     cin.tie(0);
    11     int n;
    12     for(int i=1;i<=2;i++){
    13         for(int j=1;j<=100;j++){
    14             for(int k=1;k<=100;k++){
    15                 if((i+j+k)%2==1){
    16                     m[i][j][k]='1';
    17                 }
    18                 else m[i][j][k]='0';
    19             }
    20         }
    21     }
    22     memset(ans,0,sizeof(ans));
    23     cin>>n;
    24     for(int i=1;i<=4;i++){
    25         for(int j=1;j<=n;j++){
    26             for(int k=1;k<=n;k++){
    27                 cin>>s[i][j][k];
    28             }
    29         }
    30     }
    31     for(int i=1;i<=2;i++){
    32         for(int j=1;j<=4;j++){
    33             for(int k=1;k<=n;k++){
    34                 for(int r=1;r<=n;r++){
    35                     if(s[j][k][r]!=m[i][k][r]){
    36                         ans[i][j]++;
    37                     }
    38                 }
    39             }
    40         }
    41     }
    42     int result=1e6;
    43     for(int i=1;i<=4;i++){
    44         for(int j=1;j<=4;j++){
    45             if(i==j) continue;
    46             for(int k=1;k<=4;k++){
    47                 if(i==k||j==k) continue;
    48                 result=min(result,ans[1][i]+ans[1][j]+ans[2][k]+ans[2][10-i-j-k]);
    49             }
    50         }
    51     }
    52     cout<<result<<endl;
    53 return 0;
    54 }
    View Code
  • 相关阅读:
    [HNOI2006]最短母串问题 AC自动机
    【BZOJ】【2946】【POI2000】公共串
    【BZOJ】【1717】【USACO 2006 Dec】Milk Patterns产奶的模式
    【BZOJ】【2084】【POI2010】Antisymmetry
    【BZOJ】【3790】神奇项链
    【BZOJ】【2565】最长双回文串
    【HDOJ】【3068】最长回文
    【BZOJ】【1031】【JSOI2007】字符加密Cipher
    【BZOJ】【3172】【TJOI2013】单词
    【BZOJ】【2938】【POI2000】病毒
  • 原文地址:https://www.cnblogs.com/ls961006/p/8782586.html
Copyright © 2011-2022 走看看