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

zoj 2033 The Jewelry Is Gone

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

zoj 2033 The Jewelry Is Gone

#include <cstring> #include <cstdio>#include <algorithm>using namespace std;const int bin[10] = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512};const int dir[5][2] = {    {0, 0},    {0, 1},    {1, 0},    {0, -1},    {-1, 0}};int s[8][12][12];int r, c, mp[12][12], mk[12][12];int m, p[8];int v, l, sum, ans;void gao(int i){    if (i == -1) {        if(sum > ans && sum <= v) ans = sum;    }    else {        gao(i - 1);        sum += p[i];        gao(i - 1);        sum -= p[i];    }}void dfs(int x, int y, int t){    int xx, yy;    int flag = mk[x][y];    if (!flag) {        mk[x][y] = 1;        p[m++] = mp[x][y];    }    if (t == l) {        sum = 0;        gao(m - 1);    }    else {        ++t;        for (int k = 0; k < 5; k++) { xx = x + dir[k][0]; yy = y + dir[k][1]; if (xx >= 0 && yy >= 0 && xx < r && yy < c && s[t][xx][yy] == 0)     dfs(xx, yy, t);        }    }    if(!flag) {        mk[x][y] = 0;        --m;    }}int main(void){    int k, x[50], y[50], t[50];    int x0, y0;    while(scanf("%d%d", &r, &c) != EOF) {        for (int i = 0; i < r; i++) for (int j = 0; j < c; j++) {     scanf("%d", &mp[i][j]);     mk[i][j] = 0; }        scanf("%d", &k);        for (int i = 0; i < k; i++) { scanf("%d%d%d", &x[i], &y[i], &t[i]); --x[i]; --y[i];        }        scanf("%d%d%d%d", &x0, &y0, &v, &l);        memset(s, 0, sizeof(s));        for (int i = 0; i < k; i++) for (int j = 0; j <= l; j+=t[i])     s[j][x[i]][y[i]] = 1;        ans = 0;        m = 0;        dfs(x0 - 1, y0 - 1, 0);        printf("%dn", ans);    }    return 0;   }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/369288.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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