zoukankan      html  css  js  c++  java
  • 25六角填数

    暴力:

    #include "cstdio"  
    #include "cstring"  
    #include "iostream"  
    #include "algorithm"  
    using namespace std;  
      
    int main (){  
        int a[13];  
        for(int i=0;i<12;++i)  
            a[i]=i+1;  
        while(next_permutation(a,a+12)){  
            int t=a[1]+a[2]+a[3]+a[4];  
            if(a[0]==1 && a[1]==8 && a[11]==3 && t==a[0]+a[2]+a[5]+a[7] && t==a[0]+a[3]+a[6]+a[10] && t==a[7]+a[8]+a[9]+a[10] &&  
               (a[1]+a[5]+a[8]+a[11])==(a[4]+a[6]+a[9]+a[11]))  
                printf("%d
    ",a[5]);  
        }  
        return 0;  
    }  
    

      dfs:

    #include <cstdio>  
    #include <cstring>  
      
    int a[12];  
    bool vis[13];  
      
    void dfs(int k){  
        int i;  
        int t=a[1]+a[2]+a[3]+a[4];  
        if(k==12 && a[0]==1 && a[1]==8 && a[11]==3  
        && t==a[0]+a[2]+a[5]+a[7]  
        && t==a[0]+a[3]+a[6]+a[10]  
        && t==a[1]+a[5]+a[8]+a[11]  
        && t==a[4]+a[6]+a[9]+a[11]  
        && t==a[7]+a[8]+a[9]+a[10]  
        && a[7]+a[8]+a[9]+a[10]==a[0]+a[3]+a[6]+a[10]){  
            printf("%d
    ",a[5]);  
        return ;  
        }  
        for(i=1;i<=12;++i){  
            if(!vis[i]){  
                vis[i]=1;  
                a[k]=i;  
                dfs(k+1);  
                vis[i]=0;  
                a[k]=0;  
            }  
        }  
    }  
      
    int main (){  
        memset(vis,0,sizeof(vis));  
        memset(a,0,sizeof(a));  
        dfs(0);  
        return 0;  
    }  
    

      

  • 相关阅读:
    [CF997E] Good SubSegment
    CF916E
    BZOJ2006 超级钢琴
    BZOJ4571
    凸包总结
    树形DP入门
    bzoj4300 绝世好题(位运算+DP)
    bzoj4552 [Tjoi2016&Heoi2016]排序 (线段树+二分)
    SP1716 GSS3
    Noip2009 Hankson 的趣味题 (简单数学)
  • 原文地址:https://www.cnblogs.com/passion-sky/p/8566442.html
Copyright © 2011-2022 走看看