zoukankan      html  css  js  c++  java
  • [luoguP1013] 进制位(搜索)

    传送门

    纯搜索,无优化!

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm> 
    #define N 10
    
    using namespace std;
    
    int n, m, f;
    int c[300], b[N];
    string map[N][N];
    
    bool check()
    {
    	int i, j, k, x;
    	for(i = 1; i < n; i++)
    		for(j = 1; j < n; j++)
    		{
    			x = 0; 
    			for(k = 0; k < map[i][j].length(); k++)
    				x = x * m + c[map[i][j][k]];
    			if(x != c[map[0][j][0]] + c[map[i][0][0]]) return 0;
    		}
    	return 1;
    }
    
    inline void dfs(int k)
    {
    	if(k == n)
    	{
    		if(check())
    		{
    			for(int i = 1; i < n; i++) cout << map[0][i][0] << "=" << c[map[0][i][0]] << " ";
    			cout << endl << m << endl;
    			exit(0);
    		}
    	}
    	for(int i = 0; i < m; i++)
    		if(!b[i])
    		{
    			b[i] = 1;
    			c[map[0][k][0]] = i;
    			dfs(k + 1);
    			b[i] = 0;
    		}
    }
    
    int main()
    {
    	int i, j;
    	cin >> n;
    	for(i = 0; i < n; i++)
    		for(j = 0; j < n; j++)
    			cin >> map[i][j];
    	for(m = n - 1; m <= 10; m++)
    	{
    		memset(b, 0, sizeof(b));
    		dfs(1);
    	}
    	cout << "ERROR!
    ";
    	return 0;
    }
    

      

  • 相关阅读:
    斯特林反演入门
    【清华集训2016】如何优雅地求和
    布隆过滤器
    HBase体系结构
    插入排序
    Hive中的文件存储格式
    HDFS的读写流程
    AQS
    Condition接口
    HashMap源码分析
  • 原文地址:https://www.cnblogs.com/zhenghaotian/p/7272064.html
Copyright © 2011-2022 走看看