hdu - 4326 - Game - 概率dp

【QT开发教程】Qt中的跨平台文件系统操作 文件系统操作是应用程序开发中经常需要处理的任务。Qt提供了一套跨平台的文件系统操作API,使开发者能够在不同操作系统上无缝地进行文件和目录操作。本文将介绍Qt中的跨平台文件系统操作,包括基本概念、常用类和方法以及实际示例。 阅读详情

本题题意很简单,给出n个人每次4人进行比赛其他人等待,胜者继续,负者排到最后,连续或得m次胜利的人成为最终的赢家,求第k个人最终获得胜利的概率是多少?

对于这题,我们首先确立一个这样的模型: x1先赢了i局,正在于x2,x3,x4赌斗,后面依次有x5,x6,……,xn等待。用P[i][j]表示x1先赢了i局的情况下,当前的xj获胜的概率。

http://acm.hdu.edu.cn/showproblem.php?pid=4326
i < m

P[i][j] = P[i + 1][j] * 1/4 + P[1][n - 2] * 3/4 j = 1

P[i + 1][n - 2] * 1/4 + P[1][1] * 1/4 + P[1][n - 1] * 2/4 j = 2

P[i + 1][n - 1] * 1/4 + P[1][1] * 1/4 + P[1][n - 1] * 1/4 + P[1][n] * 1/4 j = 3

P[i + 1][n] * 1/4 + P[1][1] * 1/4 + P[1][n] * 2/4 j = 4

P[i + 1][j - 3] * 1/4 + P[1][j - 3] * 3/4 j >=4

i = m

P[i][j] = 1 j = 1

0 j != 1

运用分数形式的高斯消元解方程。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
using namespace std;

#define maxn 102
#define eps 1e-10
double g[maxn][maxn];
double x[maxn];
int n,m,k;

void add(int cnt,int i,int j,double val){
    int t=i*n+j;
    if(i==m){
        if(j==1)    g[cnt][n*m+1]+=-1.0*val;
        return;
    }
    g[cnt][t]+=val;
}

void gauss(int n,int m){
    int row,col,i,j,k;
    for(row=1,col=1;row<n,col<m;row++,col++){
        k=row;
        for(i=row+1;i<=n;i++)
            if(fabs(g[i][col])>fabs(g[k][col])) k=i;
        if(k!=row){
            for(i=col;i<=m;i++) swap(g[k][i],g[row][i]);
        }
        if(fabs(g[row][col])<eps)   continue;
        for(i=row+1;i<=n;i++){
            if(fabs(g[i][col])<eps) continue;
            double t=g[i][col]/g[row][col];
            g[i][col]=0.0;
            for(j=col+1;j<=m;j++)   g[i][j]-=t*g[row][j];
        }
    }
    for(i=n;i>=1;i--){
        x[i]=g[i][m];
        for(j=i+1;j<=n;j++)    x[i]-=x[j]*g[i][j];
        x[i]/=g[i][i];
    }
}

int main(){
    int i,j,cs,nn=0;
    scanf("%d",&cs);
    while(cs--){
        scanf("%d%d%d",&n,&m,&k);
        memset(g,0,sizeof(g));
        int cnt=0;
        for(i=0;i<m;i++)
            for(j=1;j<=n;j++){
                cnt++;
                add(cnt,i,j,1.0);
                if(j==1){
                    add(cnt,i+1,j,-0.25);
                    add(cnt,1,n-2,-0.75);
                }
                else if(j==2){
                    add(cnt,i+1,n-2,-0.25);
                    add(cnt,1,1,-0.25);
                    add(cnt,1,n-1,-0.5);
                }
                else if(j==3){
                    add(cnt,i+1,n-1,-0.25);
                    add(cnt,1,1,-0.25);
                    add(cnt,1,n-1,-0.25);
                    add(cnt,1,n,-0.25);
                }
                else if(j==4){
                    add(cnt,i+1,n,-0.25);
                    add(cnt,1,n,-0.5);
                    add(cnt,1,1,-0.25);
                }
                else{
                    add(cnt,i+1,j-3,-0.25);
                    add(cnt,1,j-3,-0.75);
                }
            }
        gauss(n*m,n*m+1);
        printf("Case #%d: %.6lf\n",++nn,x[k]);
    }
    return 0;
}


Qt Creator牵手DeepSeek,开启AI开发新征程 Qt Creator 是一款功能强大的跨平台集成开发环境(IDE),专为 Qt 应用程序开发量身定制。它支持在编程过程中使用 GitHub Copilot 等编码助手,能帮助开发者为桌面、移动端和嵌入式平台创建软件。在代码编辑方面,Qt Creator 具备代码补全、语法突出显示、重构等功能,内置文档也随手可得,极大提高了代码编写的效率和准确性。 阅读详情

相关推荐

【STC8A8K64S4A12开发板】—学习PWM脉冲宽度调制

版权声明:本文为博主原创文章,转载请附上原文出处链接。 文章目录前言一、硬件设计1.PWM脉冲宽度调制介绍2.STC8A8K64S4A12系列单片机PWM介绍3.PWM配置步骤二、软件设计1.PWM寄存器汇集2.寄存器解析2.1.PWM配置寄存器PWMCFG2.2.PWM控制寄存器PWMCR2.3.PWM中断标志寄存器2.4.PWM外部异常控制寄存器2.5.PWM时钟选择寄存器2.6.PWM触发ADC计数器寄存器2.7.PWM2翻转寄存器2.8.PWMn控制寄存器2.9.PWMn电平保持控制寄存器3.PW

qq_36139768的博客 5216

HDU 4326 Game 概率DP 高斯消元

题目大意: 就是现在有N个人标号从1到N排队, 每次队首的4个人开始游戏, 4个人中每个人胜利的可能性是相等的, 现在胜利的人会留在队首, 继续游戏, 输的人会回到队尾(回到队尾的顺序与进入游戏idea顺序一致, 比如说1,2,3,4比赛, 2获胜, 则2留在队首, 1,3,4在队尾的顺序依旧是1,3,4(4在最后)现在如果某个人连续赢了M局游戏, 那个人就是最终得获胜者, 问长度为N的队伍当中

Gatevin的专栏 1227

Window系统下搭建GIT本地服务器

这是一篇在window下搭建git本地服务器的教程,带你一步步搭建出本地的git服务器。

qwer971211的博客 2万+

HDU 4326Game(比较难理解的概率dp)

Game Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 229    Accepted Submission(s): 85 Problem Description There are N people play

布生气 2437

Python入门基础教程(非常详细)

Python是一门开源免费、通用型的脚本编程语言,它上手简单,功能强大,坚持「极简主义」。Python类库(模块)极其丰富,这使得Python几乎无所不能,不管是传统的Web开发、PC软件开发、Linux运维,还是当下火热的机器学习、大数据分析、网络爬虫,Python都能胜任。这套Python基础教程不是教科书,不会玩弄概念,而是力求口语化和通俗化,让读者尽快入门。如果有小朋友出于兴趣学习Python,请引导他阅读本教程的前半部分,这是基础,可以降低学习成本;...

Yuki1127918的博客 34万+

OpenHarmony自定义Launcher

OpenHarmony源码版本:4.0release开发板:DAYU / rk3568DevEco Studio版本:4.0.0.600切换分支为OpenHarmony-4.0-Release,并下载源码。

Abner_Crazy的博客 1630

概率dp+高斯消元解方程组-hdu-4326-Game

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4326 题目大意: 有n个人,每次前面四个人玩游戏,每人赢得概率为1/4,四人中赢的人排在队首,输的人依次排到队尾。求第k个人连续赢m次的概率。 解题思路: 之前做过,每次博客,现在补上。 因为要考虑连续赢的情况并且每次动作只和第一个人有关,设第一维表示第一个人连续赢的次数。第二维表示

cc_again的专栏 2344

C#上位机通信层封装:西门子S7NetPlus库的优雅使用

支持S7-1200/1500(机架号0,槽号1)、S7-300/400(机架号/槽号需根据实际配置);支持位(Bit)、字节(Byte)、字(Word)、双字(DWord)、浮点数(Float/Double)等数据类型的读写;支持DB块、输入寄存器(I)、输出寄存器(Q)、内存寄存器(M)、定时器(T)、计数器(C)的操作;轻量无依赖,兼容.NET 5+。首先定义核心枚举和常量,统一规范参数类型,避免硬编码。/// 西门子PLC型号(对应不同的机架/槽号默认配置)

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1085

HDU 4326 Game(概率DP+高斯消元)

 题意:就是现在有N个人标号从1到N排队, 每次队首的4个人开始游戏, 4个人中每个人胜利的可能性是相等的, 现在胜利的人会留在队首, 继续游戏, 输的人会回到队尾(回到队尾的顺序与进入游戏idea顺序一致, 比如说1,2,3,4比赛, 2获胜, 则2留在队首, 1,3,4在队尾的顺序依旧是1,3,4(4在最后)现在如果某个人连续赢了M局游戏, 那个人就是最终得获胜者, 问长度为N的队伍当中

GODSPEED 608

【QNX+Android虚拟化方案】125 - 如何创建android-spare镜像

【QNX+Android虚拟化方案】125 - 如何创建android-spare镜像

|~~~热爱生活、努力学习的小伙汁~~~| 1092

YOLOv8 PCB缺陷检测系统全流程实战:从开发到UI展示详解

毕设路上难免有波折,但只要跟着这个教程把“数据集处理、模型训练、UI开发”每一步都落实,你就已经超越了大多数同学。这个“PCB缺陷检测系统”既有技术深度(YOLOv8是工业级主流算法),又有工程价值(解决电子制造的实际痛点),还具备出色的可视化展示——这样的毕设,拿高分是水到渠成的事。

FJN110的博客 214

hdu 4326 高斯消元

A

chm517的专栏 570

基于STM32设计的智能井盖(Lora组网+4G上云)_423

设计并实现了一种基于 STM32 与 Lora 通信技术的智能井盖监测系统。系统采用 STM32F103C8T6 作为核心控制器,在井盖节点端集成水位检测、有害气体检测、倾斜角度检测以及 GPS 定位等功能模块,对井盖内部环境状态和姿态变化进行实时监测。各井盖节点通过 Lora 无线通信方式组成网络,将采集的数据发送至主机(网关)进行汇聚处理。

719

HDU4326 Game(期望dp+高斯消元好题)

HDU4326 定义dp[i][j]dp[i][j]dp[i][j]为当前主角位置在jjj,首位的人已经连续赢了iii局比赛的概率 当j>4j>4j>4时 dp[i][j]=dp[i+1][j−3]∗14+dp[1][j−3]∗34dp[i][j]=dp[i+1][j-3]*\frac{1}{4}+dp[1][j-3]*\frac{3}{4}dp[i][j]=dp[i+1][j−3]∗41​+dp[1][j−3]∗43​ 当j==1j==1j==1 dp[i][j]=dp[i+1][j]∗

jziwjxjd的博客 454

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【总结】概率与期望

前言 作为NOIP级的知识点,概率与期望算是比较困难的类型了。 但其实也不是无法解决的难题。 本文主要通过作者本人的刷题经历,对概率期望类题目进行总结。 概率 51Nod1639绑鞋带: 有n根鞋带混在一起,每根鞋带有两个鞋带头。现在重复n次以下操作:随机抽出两个鞋带头,把它们绑在一起。求最终只形成一个环的概率? 依次考虑每一步操作,现在已经选出来了一个头,它必须和非它所在的链的另一...

氧化钠的博客 2700

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

填坑计划(持续更新中)

自己挖的坑,跪着也要把它填完!

Unlimited Code Works 1102

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

hdu4326 Dragon Ball 单调队列优化Dp

/* 题目描述:一个有m个回合,每回合会出现n个龙珠,每个龙珠的位置是ball[i][j].p,得到龙珠的消耗是ball[i][j].c,每回合出现 的龙珠只能选择其中的一个,每回合消耗的体力为获得上一个龙珠到这一个龙珠的距离加上获取这一个龙珠的消耗,问 m回合过后,消耗的体力最小是多少。

jijijix的博客 389

hdu - 4343 - Interval query - dp(贪心)

Description 给定N(N Solution 首先是一个贪心的想法,如果存在两个区间[s1,t1)和[s2,t2),且[s1,t1)包含于[s2,t2),那么[s2,t2)是可以扔掉的。很显然地,如果[s2,t2)包含于某个解中,那么把它换成[s1,t1)肯定个数不变。 所以就可以把包含了其它区间的那些区间去掉。具体做法是天王想的,特别抽,详见代码。 其实这步

Julyana_Lin_夜 1209

hdu - 4301 - Divide Chocolate- dp

题意:http://acm.hdu.edu.cn/showproblem.php?pid=4301 给你一个2*n的巧克力,每一小块巧克力都长得不同,将其分成k块巧克力有多少种分法。 解: dp[i][j][0]表示已经分完i行,分成了j份,第i行的两个方格连在一起有多少种分法。 dp[i][j][1]表示已经分完i行,分成了j份,第i行的两个方格不连在一起有多少种分法。 然

Julyana_Lin_夜 1088

hdu - 4323 - Magic Number - dp + 数据结构优化

题意:http://acm.hdu.edu.cn/showproblem.php?pid=4323        对于每个询问,输出给定一列数里面与询问的数a编辑距离小于等于b的数。 解:      dp,编辑距离。 转自Matrix67  除了字符串匹配、查找回文串、查找重复子串等经典问题以外,日常生活中我们还会遇到其它一些怪异的字符串问题。比如,有时我们需要知道给定的两个字符串“有多

Julyana_Lin_夜 972

hdu - 4303 - Hourai Jeweled 树dp

题意: 给定n(nv的路径上相邻的边的颜色都不同那么是一条合法 的路径,求所有合法路径的权值和是多少。http://acm.hdu.edu.cn/showproblem.php?pid=4303 解: 一次dfs就能搞定的问题,其实没什么复杂的算法,主要难点在于统计时的一些小技巧,个人难度评价是偏难的中档题。 从任意一点开始深搜,每颗子树搜索完毕之后向上返回pair 每次深搜完一个子

Julyana_Lin_夜 933

hdu - 4314 - Save the dwarfs - dp

又是一道很纠结的dp,我已经战亡。不过这题好点,看还是看得懂的,理解着理解着,感觉半懂还是有的。 题意:http://acm.hdu.edu.cn/showproblem.php?pid=4314    每人有个肩高和手高。n个人迭罗汉,最上边的那个人要伸出双手能够到h就行。问能逃出多少人。 在此不得不多说一句,多校的解题报告真*******,想把写解题报告的人暴打一遍。 较难的动

Julyana_Lin_夜 787

hdu 1684 dp

http://acm.hdu.edu.cn/showproblem.php?pid=1684 题意:有m个工程,最多可以雇佣n个人,已知概率pij表示完成第i个工程雇佣j个人时,能按时完成的概率,同时,已知完成一个工程的奖金和无法完成时的罚款,还有每一个人的工资,当然,如果参与的工程无法按时完成,则参与的人不需要支付工资。求这m个工程的最大利润,同时求出需要的人数,多种方案时,从小到大输出人

Julyana_Lin_夜 778

hdu 2955 01 背包 Robberies

题意:        好多个银行,他们很有钱。有个人想去抢劫。告诉你银行的钱和抢这个银行被抓的概率。银行被你抢一次就会没钱。现在需要你满足的条件是被抓的概率小于他给的stand,问,最多能得到多少钱。 做题过程:       这是一道很有现实主义色彩,很实用的一道题。总共就n个银行,他们钱数就是背包的容量,每个银行只抢一次,由此看出是个01背包,背包出的价值(概率)最大。开始我还以为要dp出

Julyana_Lin_夜 744

BNU - Soccer Teams- 01背包

(1)1与0的特性: 1是任何整数的约数,即对于任何整数a,总有1|a. 0是任何非零整数的倍数,a≠0,a为整数,则a|0. (2)若一个整数的末位是0、2、4、6或8,则这个数能被2整除。 (3)若一个整数的数字和能被3整除,则这个整数能被3整除。 (4) 若一个整数的末尾两位数能被4整除,则这个数能被4整除。 (5)若一个整数的末位是0或5,则这个数能被5整除。

Julyana_Lin_夜 738

hdu - 4317 - Unfair Nim - 状态dp

我一直觉得状压就是暴搜,其实这题也就是暴搜。。。http://acm.hdu.edu.cn/showproblem.php?pid=4317 题意:给你n个数,你可以在每个数加上一个值,使得最后的n个数的异或值为0,当然要求加的数的和最小,这之前有个小小的博弈障眼法呵呵。 N非常小,状态压缩自然从N入手,用二进制表示这N堆的所有选择。 根据异或的性质,只要异或的这些数字对应二进制相同的位上有

Julyana_Lin_夜 724
上一篇: hdu - 4324 - Triangle LOVE - 深搜
下一篇: 求半平面交学习模板
Julyana_Lin
博客等级 码龄15年 36粉丝 177原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值