Codeforces 610C Harmony Analysis(构造)

题目链接:http://codeforces.com/problemset/problem/610/C


题意:‘+’代表1,‘*’代表-1,要求构造2^k个两两正交的串


思路:感觉很难解释正确性,但是方法就是利用k=1的时候构造k=2的情况,左上角和左下角和右下角复制k=1的情况,右上角为k=1情况取反,递推下去就可以了



#include 
#include 
#include 
#include 
using namespace std;

char mp[10][1030][1030];
int num[10];

void init()
{
    mp[0][0][0]='+';
    mp[0][0][1]='\0';
    num[0]=1;
    for (int i=1;i<=9;i++)
        num[i]=num[i-1]*2;

    for (int i=1;i<=9;i++)
    {
        int len=strlen(mp[i-1][0]);//cout<<":"<


你可能感兴趣的:(Codefores)