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

zoj 1740 Weather Forecast

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

zoj 1740 Weather Forecast

#include <iostream>#include <algorithm>#include <string.h>#include <stdio.h>using namespace std;struct ST {    int c00, c01;    int c10, c11;    ST() : c00(0), c01(0), c10(0), c11(0) {}};struct POS {    int x, y;    POS(int _x, int _y) : x(_x), y(_y) {}};const int dir[9][2] = {{0,0},{-1,0},{-2,0},{0,-1},       {0,-2},{1,0},{2,0},{0,1},{0,2}};bool vis[370][9][7][7][7][7];int day[370], N;inline int getflag(int r) {    return 1 << r;}bool judge(int k, const POS& u, const ST& s) {    if (s.c00 == 7 || s.c01 == 7 || s.c10 == 7 || s.c11 == 7)         return false;    int flag = 0;    int x = u.x, y = u.y;    flag |= getflag(4*x + y) | getflag(4*x + y+1);    flag |= getflag(4*(x+1) + y) | getflag(4*(x+1) + y+1);    if (flag & day[k])        return false;    if (vis[k][3*x+y][s.c00][s.c01][s.c10][s.c11])        return false;    vis[k][3*x+y][s.c00][s.c01][s.c10][s.c11] = true;    return true;}bool dfs(int k, const POS& u, const ST& state) {    if (k == N)        return true;    ST s = state;    s.c00 += 1, s.c01 += 1;    s.c10 += 1, s.c11 += 1;    if (u.x == 0 && u.y == 0)        s.c00 = 0;    else if (u.x == 0 && u.y == 2)        s.c01 = 0;    else if (u.x == 2 && u.y == 0)        s.c10 = 0;    else if (u.x == 2 && u.y == 2)        s.c11 = 0;    if (!judge(k, u, s))        return false;    for (int i = 0; i < 9; i++) {        int x = u.x + dir[i][0];        int y = u.y + dir[i][1];        if (0 <= x && x < 3 && 0 <= y && y < 3) { if (dfs(k + 1, POS(x, y), s))     return true;        }    }    return false;}int main() {    while (scanf("%d", &N) && N) {        for (int i = 0; i < N; i++) { day[i] = 0; for (int j = 0; j < 16; j++) {     int x;     scanf("%d", &x);     day[i] <<= 1;     day[i] |= x; } memset(vis[i], false, sizeof(vis[i]));        }        ST s;        if (dfs(0, POS(1, 1), s)) printf("1n");        else printf("0n");    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/368279.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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