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

zoj 3155 Street Lamp

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

zoj 3155 Street Lamp

#include <cstdio>using namespace std;const int bin[11] = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024};bool mp[16][16][2]; int n, m, s[16], dp[16];char buf[1024];inline void turn(int& s, int p){    s ^= bin[p];}bool check(int x){    static int a[16];    for (int j = 0; j < m; j++) {        a[j] = s[j];    }    for (int i = 0; i < n; i++) {        if (x & bin[i]) { turn(a[0], i); turn(a[1], i); if (mp[i][0][0]) turn(a[0], i - 1); if (mp[i][0][1]) turn(a[0], i + 1);        }    }    for (int j = 1; j < m; j++) {        for (int i = 0; i < n; i++) { if (a[j - 1] & bin[i]) {     turn(a[j], i);     turn(a[j + 1], i);     if (mp[i][j][0]) turn(a[j], i - 1);     if (mp[i][j][1]) turn(a[j], i + 1); }        }    }    return a[m - 1] == 0;}int main(void){    while (scanf("%d%d ", &n, &m) != EOF) {        for (int i = 0; i <= n; i++) { for (int j = 0; j < m; j++) {     mp[i][j][0] = mp[i][j][1] = false; }        }        for (int j = 0; j < m; j++) { s[j] = 0;        }        for (int i = 0; i < n; i++) { gets(buf); for (int j = 0; j < m; j++) {     if (buf[2 * j] == 'o') {         s[j] |= bin[i];     } } if (i == n - 1) {     continue; } gets(buf); for (int j = 0; j < m; j++) {     if (buf[2 * j] == '|') {         mp[i][j][1] = mp[i + 1][j][0] = true;     } }        }        int ans = 0;        for (int i = 0; i < bin[n]; i++) { if (check(i)) {     ++ans; }        }        printf("%dn", ans);    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/377711.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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