当前位置: 首页 > news >正文

手机网站用什么软件做的英雄联盟韩国

手机网站用什么软件做的,英雄联盟韩国,深圳市建设工程服务交易中心,h5制作步骤这是一个非平等博弈。但是只要求你判断胜负,本身也不是一道结论题,所以可以用 D P DP DP来解决。 结论:第一堆石子剩的越多,先手玩家获胜的概率越大。这直接引出了一个非常感性的结论:每次取石子时要么取一堆&#xf…

这是一个非平等博弈。但是只要求你判断胜负,本身也不是一道结论题,所以可以用 D P DP DP来解决。

结论:第一堆石子剩的越多,先手玩家获胜的概率越大。这直接引出了一个非常感性的结论:每次取石子时要么取一堆,要么只取一个。很难理性证明这个博弈策略是正确的,但是博弈本身就是很玄学的东西,似乎我们找不出来一套普适的理论去判断游戏的胜负。那么只要这个策略本身具有合理性就可以采纳。就这道题而言,取一堆石子可以看成是加快游戏进度,取一个石子可以看成是让游戏的步数延长。看来这道题当中游戏步数是非常重要的维度,我们可以通过比较游戏步数的大小来判定胜负。

然后就是编 D P DP DP状态。设 f l , r f_{l,r} fl,r表示剩 [ l + 1 , r ] [l+1,r] [l+1,r]堆中石子时先手获胜, a l a_l al的最小数目, g l , r g_{l,r} gl,r表示剩 [ l , r − 1 ] [l,r-1] [l,r1]堆中石子时后手获胜(后手先操作), a r a_r ar的最小数目。注意,这里我们要求 [ l , r ] [l,r] [l,r]中的石子堆都非空。这个状态给我一种 border \text{border} border的感觉,也就是要么左端点被截断或者右端点被截断,正好就是对应左右两端中两堆石子被消耗的过程。

接着编具体的转移。其实并不复杂:如果 g l + 1 , r > a r g_{l+1,r}>a_r gl+1,r>ar那么直接将第 l l l堆取空就行,有 f l , r = 1 f_{l,r}=1 fl,r=1;否则先手一定是消耗,并且 a l > 1 a_l>1 al>1,任意时刻如果 a l < f l , r − 1 a_l<f_{l,r-1} al<fl,r1那么后手就会将第 r r r堆取完,从而先手必败,那么分类讨论:

1.1 1.1 1.1 如果 g l + 1 , r = 1 g_{l+1,r}=1 gl+1,r=1,那么一定要是后手取完,并且此时 a l a_l al恰好为 f l , r − 1 f_{l,r-1} fl,r1,有 f l , r = f l , r − 1 + a r f_{l,r}=f_{l,r-1}+a_r fl,r=fl,r1+ar

1.2 1.2 1.2 如果 g l + 1 , r ≠ 1 g_{l+1,r}\ne 1 gl+1,r=1,那么当 a l = f l , r − 1 a_l=f_{l,r-1} al=fl,r1时第 r r r堆也恰好为 g l + 1 , r − 1 g_{l+1,r}-1 gl+1,r1,此时再将 a l a_l al取完就变成先手必胜了,有 f l , r = f l , r − 1 + a r − g l + 1 , r + 1 f_{l,r}=f_{l,r-1}+a_r-g_{l+1,r}+1 fl,r=fl,r1+argl+1,r+1

后手和先手是对称的就不说了。这个 D P DP DP转移还挺容易推错的,可能主要是因为没有想到临界时两端的石子数目都不为 0 0 0

复杂度 O ( n 2 ) O(n^2) O(n2)

#include<bits/stdc++.h>
#define ll long long
#define fi first
#define se second
#define pb push_back
#define db double
using namespace std;
int T,n;
ll a[105],f[105][105],g[105][105];
int main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cin>>T;while(T--){cin>>n;for(int i=1;i<=n;i++)cin>>a[i];memset(f,0x3f,sizeof f),memset(g,0x3f,sizeof g);for(int i=1;i<=n;i++){f[i][i]=1,g[i][i]=1;}for(int len=2;len<=n;len++){for(int l=1;l<=n-len+1;l++){int r=l+len-1;if(g[l+1][r]>a[r])f[l][r]=1;else f[l][r]=f[l][r-1]+a[r]-g[l+1][r]+1;if(f[l][r-1]>a[l])g[l][r]=1;else g[l][r]=g[l+1][r]+a[l]-f[l][r-1]+1;}}if(n==1||f[1][n]<=a[1]){cout<<"First"<<"\n";}else{cout<<"Second"<<"\n";}}
}
http://www.mnyf.cn/news/14679.html

相关文章:

  • 成都网站建设 培训班运营推广的方式和渠道有哪些
  • 个体可以做企业网站吗外链交换平台
  • 中国电信网站备案 密码重置站长工具关键词查询
  • 建站赔补百度首页广告多少钱
  • 佛山外贸网站建设价位网站seo分析常用的工具是
  • 北京公关公司最好的公司贵州seo技术培训
  • 做网站必备的注意事项河南网站优化公司
  • 玉树营销网站建设服务seo赚钱培训课程
  • 海口做网站河南seo技术教程
  • 江苏烟草电商网站seo百度关键词优化
  • 公司新闻做网站上海网站关键词排名优化报价
  • 做毕业设计网站的步骤公众号运营收费价格表
  • 网站建设佰首选金手指二六中国新闻网最新消息
  • 购物网站界面设计谷歌广告推广网站
  • 程序员做网站石家庄网站建设排名
  • 西宁做网站的好公司域名信息查询网站
  • 免费网络加速器永久免费版宁波seo自然优化技术
  • 淘宝客自己做网站建站系统源码
  • 建安培训官网广州seo优化外包服务
  • 南宁做棋牌网站的公司网络营销成功案例ppt
  • 个人网站如何赚钱合肥网络推广服务
  • 漳州网站建设杭州排名优化公司
  • 厚街外贸网站建设公司如何解决网站只收录首页的一些办法
  • 怎样只做自己的网站整站优化快速排名
  • 大连网站优化快速排名各大搜索引擎提交入口
  • 网站开发实现软硬件环境活动推广方案
  • 洛阳恒凯做的网站有哪些网店运营培训哪里好
  • 在网站后台可以修改网页的内容广告投放代理商加盟
  • 网站开发与运维面试问题百度百家号注册
  • 网站维护工作seo查询官方网站