首页 > 其他分享 >Infinite Card Game

Infinite Card Game

时间:2024-03-11 17:45:48浏览次数:29  
标签:连边 对手 攻击力 题解 Game Infinite 防御力 Card 贪心

先看这篇题解

这篇题解最开始的贪心我在赛时的时候想到了的,所以说博弈论完全是可以用贪心的,不要怕

但是这里贪心还有一个问题,在对手攻击力比这张牌防御力大的区间中,对手可能有多张牌的防御力最大,这个时候难道每一个点都要连边吗?其实不用,连接其中随便一个就好了,因为我们发现,在每一回合开始时,无论是谁出牌,都不用关注出的这个牌的攻击力是多少,只要防御力是相等的,攻击力多少并不会影响接下来的游戏的走向(这点非常重要,不然时间复杂度就不对了;其实我们贪心用的也是这个思想,就是每个人出牌的时候,只要攻击力比对方上次出的牌的防御力大,我们就应该出防御力最大的,因为攻击力根本不会影响游戏的走向)

题解说的边的方向,是从自己连向对手;但是我们一般连边都是从对手连向自己(因为我们要从对手的状态推到自己的状态),然而如果按照这种连边就不太好想,而像题解这么连边,就可以利用每个点只有一个出边进行dfs,很方便地讨论每一个点的状态

比如从某个点开始走,走的方向肯定是确定的,如果最终走下来的路径是一条链,那么这个点(以及这条链上的每一个点)的胜负状态肯定是唯一确定的;如果最终是一个环,那么这些点肯定都是平局(所以我们可以不用题解说的,总牌数减必胜减必败等于平局这种方法,而是直接在图上进行统计;然而题解的这种思想也要记住)。但是其实判环的代码有点麻烦,如果用vis判断,vis每次肯定不能清空,然后可能出现这种情况

红色线段的点在上一次dfs中已经找过了,但是vis肯定为\(1\)了,而第二次dfs的时候肯定不能直接判断这些都是平局的点

然后这一道题目最后一个注意的点就是,题目要求Monocarp先手,看起来我们似乎只用建立Monocarp的\(n\)个点就好了;然而如果这样做,行倒是行,但是没有上面说的两边都建边简单,所以以后不要被题目所求的量迷惑了

标签:连边,对手,攻击力,题解,Game,Infinite,防御力,Card,贪心
From: https://www.cnblogs.com/dingxingdi/p/18066650

相关文章

  • 基础GamePlay知识-扇形检测
    将会持续更新gameplay的一些基础知识,一同学习。扇形检测扇形检测是Gameplay里面很常见的场景。比如荒野乱斗中,大部分的近战角色都是扇形攻击。在扇形范围内就认为是受击。扇形检测只有两个参数,一个是扇形的角度一个是扇形的半径大小。效果获取鼠标朝向技能必然是和鼠标朝......
  • SP20848 IGAME - Interesting Game 题解
    分析数位DP一眼题。对于一个\(k\)位的数\(s\),我们不妨将其看做由数字\(s_1,s_2,s_3,\dots,s_k\)这\(k\)个数字拼接起来的。而题意是每个人可以将\(s_1,s_2,s_3,\dots,s_k\)中的任意一个减去任意数字,保证不减去\(0\)且结果\(\ge0\)。显然,在我们将这\(k\)个数看......
  • 29. 绑定 Gameplay Panel 数据
    本节目标当玩家抽卡、弃卡的时候,抽牌堆和弃牌堆的数量要与实际的保持一致实现方法添加抽牌堆数量和弃牌堆数量变更事件抽牌弃牌的时候发布事件绑定广播事件GameplayPanel接收事件首先GameplayPanel需要在OnEnable的时候,绑定相关的UI元素当事件到来的时候,调用Up......
  • 28. 制作 Gameplay Panel
    本节目标实现以下UI功能实现创建GameplayPanel在UI目录下创建一个GameplayPanel,编辑GameplayPanel,增加VisualElement、Label、Button注意,需要将它们的Attributes->PickingMode都修改为Ignore,避免鼠标在拖拽卡牌的时候碰到UI物体后,系统认为鼠标松开了Top......
  • 二刷GAMES11 Transformation
    齐次坐标引入齐次坐标是想把包含平移在内的变换写成一个矩阵乘以一个向量的形式。HomogenousCoordinates2Dpoint\((x,y,1)^T\)其实是\((x/w,y/w,w)^T\)w不等于02Dvector\((x,y,0)^T\)2DTransformations缩放,Scale\[\mathbf{S}(s_x,s_y)=\begin{pmatrix}s_x&0&0\\0......
  • XOR Break — Game Version
    其实做了两道博弈的交互题后可以知道,博弈的交互题一般是需要你找到一种必胜的策略的,而且这种必胜的策略与非交互题还不同,因为对方可能不是按照最优策略走的,所以我们要找的是在任意一种情况下对面怎么走都能胜的条件,而且要对每一种情况都做出对应的策略(非交互题的话,我们是知道对方......
  • UE5 Gameplay一些类的生命周期备忘
    作为一个初学者,尽管能够在UE中能够使用蓝图和简单在C++中做一些逻辑更改,但对 Gameplay框架的使用上还是一脸懵逼,比如:玩家的本地数据存在哪里?游戏的数据存在哪?如果我切换了关卡,放在哪的数据会丢?如果玩家死亡了,放在哪的数据会丢?如果我想要存储一个全局数......
  • games101_Homework3
    摘要:在Raster部分实现数值插值,然后实现四种不同的像素着色器作业描述:作业1:修改函数rasterize_triangle(constTriangle&t)inrasterizer.cpp:在此处实现与作业2类似的插值算法,实现法向量、颜色、纹理颜色的插值。在rasterize_triangle函数中重复上次的包围盒进行点采样,......
  • games101_Homework4
    摘要:实现四个点的贝塞尔曲线作业描述:•bezier:该函数实现绘制Bézier曲线的功能。它使用一个控制点序列和一个OpenCV::Mat对象作为输入,没有返回值。它会使t在0到1的范围内进行迭代,并在每次迭代中使t增加一个微小值。对于每个需要计算的t,将调用另一个函数recursive......
  • Geo Game
    这篇题解不错讲一下为啥平方模\(2\)可以消掉由于奇数乘以奇数等于奇数,偶数乘以偶数等于偶数,所以平方项的奇偶性与单独一项的奇偶性是一样的我赛时的想法是先从\(n\)较小的考虑\(n=1\),则为\((x_1-x_0)^2+(y_1-y_0)^2=x_{1}^2+x_{0}^2-2x_1x_0+y_{0}^2+y_{1}^2-2y_0y_1\),由于只......