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

zoj 3352 Boring Board Game

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

zoj 3352 Boring Board Game

#include<stdio.h>#include<algorithm>#include<string.h>#include<vector>using namespace std;#define INF 0x3f3f3f3f#define N 51int dp[N][N][201], cnt[N][N][201], d[N];vector<int> g[N];int dfs(int x, int y, int sc) {if (cnt[x][y][sc + 100] != -1) {return dp[x][y][sc + 100];}cnt[x][y][sc + 100] = 1;if (g[x].empty() && g[y].empty()) {return dp[x][y][sc + 100] = -sc;} else {dp[x][y][sc + 100] = -INF;}for (int i = 0; i < (int) g[x].size(); i++) {int tmp = -dfs(g[x][i], y, sc + d[g[x][i]]);if (tmp > dp[x][y][sc + 100]) {dp[x][y][sc + 100] = tmp;cnt[x][y][sc + 100] = 1;} else if (tmp == dp[x][y][sc + 100]) {cnt[x][y][sc + 100]++;}}for (int i = 0; i < (int) g[y].size(); i++) {int tmp = -dfs(x, g[y][i], sc - d[g[y][i]]);if (tmp > dp[x][y][sc + 100]) {dp[x][y][sc + 100] = tmp;cnt[x][y][sc + 100] = 1;} else if (tmp == dp[x][y][sc + 100]) {cnt[x][y][sc + 100]++;}}return dp[x][y][sc + 100];}int main() {int n, m, x, y;while (scanf(" %d %d %d %d", &n, &m, &x, &y) == 4) {for (int i = 0; i < n; i++)scanf(" %d", &d[i]);while (m--) {int a, b;scanf(" %d %d", &a, &b);g[a].push_back(b);}memset(cnt, -1, sizeof(cnt));dfs(x, y, 1);printf("%d %dn", dp[x][y][101], cnt[x][y][101]);for (int i = 0; i < n; i++) {g[i].clear();}}return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/378045.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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