题目链接:http://codeforces.com/contest/245/problem/D
题意:给出一个矩阵b,b[i][j]=a[i]&a[j],b[i][i]=-1。然后求a[i]。
题解:要知道&运算后只有一位同时为1时结果才是1所以可以得
a[i]可以是b[i][1~n]所有状态的和。
#include <iostream>
#include <cstring>
using namespace std;
int b[110][110] , a[110];
int main() {
int n;
cin >> n;
for(int i = 1 ; i <= n ; i++) {
for(int j = 1 ; j <= n ; j++) {
cin >> b[i][j];
}
}
memset(a , 0 , sizeof(a));
for(int i = 1 ; i <= n ; i++) {
for(int j = i + 1 ; j <= n ; j++) {
a[i] |= b[i][j];
}
for(int j = 1 ; j < i ; j++) {
a[i] |= b[j][i];
}
}
for(int i = 1 ; i <= n ; i++) {
cout << a[i] << ' ';
}
cout << endl;
return 0;
}