POJ 3710 Christmas Game

本文通过解决POJ_3710问题,探讨了SG函数的应用及化归技巧,并推荐了一篇关于游戏理论的重要论文,强调积累基础模型的重要性。

POJ_3710

    一开始学SG函数的时候,还是单纯地认为一个公平组合游戏都很轻松的变成一个有向图上的来回移动几个棋子的游戏,但是这个题我不管怎么化归都化归不过去了。

    后来纠结了一段时间之后,把《Game Theory》这篇论文看了一下,才发现这个题目实际算是一个基础的模型,就像那种如果你见过就很简单,没见过就打死也做不出的题。所以自己也突然感觉到SG函数的题目还是很有必要积累一些基础的模型的。

    这个题目具体的做法在《Game Theory》上面都有说,所以还是推荐大家阅读一下这篇论文,很多中文的讲SG函数的文章都是翻译的这篇论文里面的内容。这个论文可以在杭电讲博弈的rar文件里面找到,如果你实在找不到的话可以留言,我会发到你的邮箱的。

#include<stdio.h>
#include<string.h>
#define MAXD 110
#define MAXM 1010
int T, N, M, e, first[MAXD], next[MAXM], v[MAXM], d[MAXD], dfn[MAXD], low[MAXD], cnt;
void add(int x, int y)
{
v[e] = y;
next[e] = first[x];
first[x] = e;
++ e;
}
void dfs(int x, int pre)
{
int i, j, k;
low[x] = dfn[x] = ++ cnt;
for(i = first[x]; i != -1; i = next[i])
if(v[i] != pre)
{
if(!dfn[v[i]])
{
dfs(v[i], x);
if(low[v[i]] < low[x])
low[x] = low[v[i]];
}
else if(dfn[v[i]] < low[x])
{
low[x] = dfn[v[i]];
d[v[i]] ^= (dfn[x] - dfn[v[i]]) % 2 ? 0 : 1;
}
}
}
int getsg(int x, int pre)
{
int i, j, k, h[MAXD], rear = 0, ans = d[x];
for(i = first[x]; i != -1; i = next[i])
if(v[i] != pre && low[v[i]] == dfn[v[i]])
h[rear ++] = getsg(v[i], x) + 1;
for(i = 0; i < rear; i ++)
ans ^= h[i];
return ans;
}
void solve()
{
int i, j, k, t, x, y, z, ans = 0;
for(t = 0; t < T; t ++)
{
scanf("%d%d", &N, &M);
memset(first, -1, sizeof(first[0]) * (N + 1));
e = 0;
for(i = 0; i < M; i ++)
{
scanf("%d%d", &x, &y);
add(x, y), add(y, x);
}
memset(d, 0, sizeof(d[0]) * (N + 1));
memset(dfn, 0, sizeof(dfn[0]) * (N + 1));
cnt = 0;
dfs(1, -1);
ans ^= getsg(1, -1);
}
if(ans)
printf("Sally\n");
else
printf("Harry\n");
}
int main()
{
while(scanf("%d", &T) == 1)
{
solve();
}
return 0;
}


内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值