栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 1830 开关问题

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 1830 开关问题

#include <stdio.h>#include <string.h>#include <algorithm>#include <cmath>using namespace std;int b[35];int A[35][35];void elem_trans(int N){//对N*(N+1)的增广矩阵做行初等变换    for (int r = 0, col = 0; r < N - 1 && col <= N;) {//对前n-1行        if (A[r][col] == 0) {//可能需要做行交换 int i; for (i = r + 1; i < N; i++) {//从下一行开始找     if (A[i][col] == 1) {         for (int j = col; j <= N; j++) {//行交换  swap(A[i][j], A[r][j]);         }         break;     } } if (i == N) {     col++;//指针移到下一列     continue; }        }        for (int r2 = r + 1; r2 < N; r2++) {//用第r行对下面的行消元 if (A[r2][col] == 1) {     for (int j = col; j <= N; j++) {         A[r2][j] ^= A[r][j];     } }        }        r++, col++;    }}bool is_equal(int *x, int begin, int end, int val){    for (int i = begin; i < end; i++) {        if (x[i] != val) { return false;        }    }    return true;}int calc(int N){    for (int i = 0; i < N; i++) {        if (is_equal(A[i], 0, N, 0)) { for (int j = i; j < N; j++) {     if (A[j][N] == 1) {         return -1;//impossible     } } return 1 << (N - i);//pow(2, N - i);//有解,且有N-i个自由变量        }    }    return 1;}int main(int argc, const char *argv[]){    int K, N;    scanf("%d", &K);    for (int i = 0; i < K; i++) {        scanf("%d", &N);        memset(b, 0, sizeof(b));        memset(A, 0, sizeof(A));        for (int j = 0; j < N; j++) { scanf("%d", &b[j]);        }        for (int j = 0, tmp; j < N; j++) { scanf("%d", &tmp); b[j] ^= tmp;        }        int s, t;        while (scanf("%d%d", &s, &t) != EOF && s != 0) { A[t - 1][s - 1] = 1;        }        for (int j = 0; j < N; j++) { A[j][j] = 1; A[j][N] = b[j];        }        elem_trans(N);        int res = calc(N);        if (res < 0) { printf("Oh,it's impossible~!!n");        }else{ printf("%dn", res);        }    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/377171.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号