2025春季钉耙编程5补题

打印 上一主题 下一主题

主题 1000|帖子 1000|积分 3000

1009
  这么能猜?
  这个数据范围,对博弈论来说肯定存在某种结论。故这题是结论题。
  设\(dp[n]\)表现有\(n\)个物体时敌方先手,我的胜率。则敌方先手后轮到我时有n-1或者n-4个物体,我再取物体。我取物体时肯定要的是胜率最大,以是有转移方程\(dp[n]=\frac{1}{2}*max(dp[n-1-1],dp[n-1-4])+\frac{1}{2}*max(dp[n-4-1],dp[n-4-4]))=\frac{max(dp[n-2],dp[n-5])+max(dp[n-5],dp[n-8])}{2}\)。数组越界时说明不存在这种选取方案。可以根据这个递推式打表或者手搓20以内的结果,就能发现规律。
  赛时还是不够冷静啊!!!,可惜了,代码如下:
[code]const int mod=998244353;int ksm(int x,int y){        int ans=1,base=x;        while(y){                if(y&1){                        ans*=base;                        ans%=mod;                }                base*=base;                base%=mod;                y>>=1;        }        return ans%mod;}int inv(int x){        return ksm(x,mod-2)%mod;}void solve(){        int n;        cin>>n;        int m=n%5,a,b;//a分母,b分子        if(m==2||m==0){                cout
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王柳

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表