首页 > 其他分享 >Atcoder Beginner Contest 298---E

Atcoder Beginner Contest 298---E

时间:2023-04-20 15:59:16浏览次数:56  
标签:Atcoder typedef int res ll long --- 298 dp

题目:E - Unfair Sugoroku (atcoder.jp)

分析:这题状态转移方程挺好推的,但是用dp解是我没想到的

dp[i][j][0]表示T在i点,A在j点且轮到T走时赢的概率

dp[i][j][1]表示T在i点,A在j点且轮到A走时赢的概率

代码:

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define endl '\n'
using namespace std;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<int,pair<int,ll>> pil;
typedef unsigned long long ULL;
const ll mod = 998244353;
const int M=1e5+5;
const int N = 1e5+ 5;
ll gcd(ll a, ll b)
{
    return b ? gcd(b, a % b) : a;
}
int cmp(int a, int b)
{
    return a > b;
}
ll qpow(ll base,ll power)
{
    ll res=1;
    while(power)
    {
        if(power%2)
        {
            res=res*base%mod;
        }
        base=base*base%mod;
        power>>=1;
    }
    return res;
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
    int n,a,b,p,q;
    cin>>n>>a>>b>>p>>q;
    ll dp[105][105][3];
    memset(dp,0,sizeof(dp));
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<2;j++)
        {
            dp[n][i][j]=1;
            dp[i][n][j]=0;
        }
    }
    for(int i=n-1;i>0;i--)
    {
        for(int j=n-1;j>0;j--)
        {
            for(int k=1;k<=p;k++)
            {
                dp[i][j][0]=(dp[i][j][0]+dp[min(i+k,n)][j][1])%mod;

            }
            dp[i][j][0]=(dp[i][j][0]%mod)*qpow(p,mod-2)%mod;
            for(int k=1;k<=q;k++)
            {
                dp[i][j][1]=(dp[i][j][1]+dp[i][min(j+k,n)][0])%mod;
            }
            dp[i][j][1]=dp[i][j][1]%mod*qpow(q,mod-2)%mod;
        }
    }
    cout<<dp[a][b][0];
}

 

标签:Atcoder,typedef,int,res,ll,long,---,298,dp
From: https://www.cnblogs.com/hhhhy0420/p/17337109.html

相关文章

  • 一些有意思的金融模型---施工行业没油水可榨了--施工企业生产得最终目的类似银行
    起因所在行业:建筑工程施工钱的本质是等价交换,或者说经济的本质,在于印钱和流通,当钱被卡住多了,拿钱的就成了大爷。机制需要得人所以我们不妨设立一个这样机制。这个机制需要几个人。施工企业银行施工企业的合作老板类似房地产金融模型机制这个机制运转集中在于钱。而且......
  • 每天一个Linux命令-find.
    find命令主要用于在linux查找出符号条件的文件(也可以包含目录),先在最前面记录一些重点1、find命令后面的多个条件时,默认是与/&/和的逻辑2、只要不指定层数进行find,默认是会一直递归到最后一层的这里笔者列出自己在工作中用到过的一些例子1、从当前目录开始,查找owner是nginx......
  • C++黑马程序员——P185-188. STL初识
    P185.STL初识——STL的基本概念P186.STL初识——vector存放内置数据类型P187.STL初识——vector存放自定义数据类型P188.STL初识——容器嵌套容器P185.STL的基本概念STL,StandardTemplateLibrary,标准模板库STL:为了提高代码的复用性,提供一套标准的数据结构和算法STL......
  • JSch - 配置SFTP服务器SSH免密登录
    目录1.什么是SFTP2.什么是Jsch以及它的作用3.sftp服务器认证机制4.publickey和password两种方式登录sftp的API调用需求:做一个通过ssh免密登录的需求,是基于原先密码登录sftp服务器的代码上进行改造1.什么是SFTPSFTP是一个安全文件传送协议,可以为传输文件提供一种安全的加......
  • linux cmake-gui安装
    背景:因为windows下用的是cmake-gui,linux自己一直用的是命令行,在交叉编译opencv的时候想试下cmake-gui0、Tags·Kitware/CMake(github.com) cmake源码链接,下载cmake-xxxx.zip,解压;1、参考:(8条消息)cmake&cmake-gui源码Centos7编译安装_centos安装cmakegui_墨染紫衣醉浮生......
  • Module not found: Error: Can't resolve 'axios' in 'D:\BaiduSyncdisk\vue-cli-pr
    Modulenotfound:Error:Can'tresolve'axios'in'D:\BaiduSyncdisk\vue-cli-project\dc_vue3\src\utils'  因:没有安装axios插件在运行项目的地方npminstall--saveaxios解决办法 npminstall--saveaxios......
  • 深度学习--PyTorch定义Tensor以及索引和切片
    深度学习--PyTorch定义Tensor一、创建Tensor1.1未初始化的方法​ 这些方法只是开辟了空间,所附的初始值(非常大,非常小,0),后面还需要我们进行数据的存入。torch.empty():返回一个没有初始化的Tensor,默认是FloatTensor类型。#torch.empty(d1,d2,d3)函数输入的是shapetorch.empty......
  • 03-Ajax传输json和XML
    title:03-Ajax传输json和XMLpublish:trueAjax传输JSONJSON的语法JSON(JavaScriptObjectNotation):是ECMAScript的子集。作用是进行数据的交换。语法更为简洁,网络传输、机器解析都更为迅速。语法规则:数据在键值对中数据由逗号分隔花括号保存对象方括号......
  • Centos7 开机时遇到initramfs-xxx.img not found错误导致虚拟机无法开启问题处理
    1、背景一台运行在Esxi上面的VM重启后报initramfs-xxx.imgnotfound错误。按任意键后出现以下错误。之前在运维Centos7的时候解决过Kernelpanic-notsyncing:VFS:Unabletomountrootfsonunknown-block(0.0)错误,以为按照之前的解决方案,重启服务器,按Esc进入选择内......
  • 无界微前端(wujie):element-ui 弹框内使用select组件,弹出框位置异常解决方案 (主程序加载
    https://wujie-micro.github.io/doc/guide/ element-ui弹框内使用select组件,弹出框位置异常解决方案第一步:在子应用中: 以上3步就好啦!!!是不是很简单这个框架坑很多,希望对大家有帮助!!! ......