poj 1322 dp(马尔可夫链)

OpenHarmony 5.1 RK3568 开发板烧录:从源码编译到镜像写入的 6 步实战 本文详细解析了OpenHarmony 5.1在RK3568开发板上的全链路开发流程,包括环境搭建、源码编译、镜像烧录等6个关键步骤。通过实战指南和避坑技巧,帮助开发者快速掌握OpenHarmony系统的烧录与定制能力,提升物联网设备开发效率。 阅读详情

题意:一个包里有无穷多个巧克力,每次从包里拿出一个巧克力放在桌子上。若桌子上出现两个相同的巧克力则立即吃掉。已知巧克力有c种颜色,问拿n次巧克力后,桌上有m颗巧克力的概率,输出结果精确到小数点后三位。

思路:整体思路是dp。dp[i][j]表示拿了i次之后桌子上剩下j个巧克力的概率。这道题的关键在于:N, M <= 1000000,而要求保留三位小数,所以n较大的情况可以省略计算。discuss里有人给出了证明(唉,概率学的不好,看也是懵懵懂懂):

这就是个典型的markov链:q(t+1)=P*q(t) -> q(n)=(P^n)*q(0)=Q'*D^n*Q*q(0)
P包含1、-1以及其他绝对值小于1的特征值,所以D的偶次方和奇次方会分别收敛到不同对角阵
所以n要区分奇偶。n的上界可以这么估计:
c=100的时候,可以得到绝对值小于1且最大的特征值0.98,那么由0.98^n<0.001可得n>342

#include <stdio.h>
#include <string.h>
#define N 1005
double dp[N][N];
int num,n,m;
int main(){
	freopen("a.txt","r",stdin);
	while(scanf("%d",&num) && num){
		int i,j;
		scanf("%d %d",&n,&m);
		memset(dp,0,sizeof(dp));
		if(m>num || m>n || ((m+n)%2==1)){
			printf("0.000\n");
			continue;
		}
		if(n>1001)//按照discuss那位仁兄的意思,应该大于342的就不用算了
			n = (n%2)?1001:1000;
		dp[0][0] = dp[1][1] = 1;//dp[0][0]不可少,因为输入可能(n,m)=(0,0)
		for(i = 2;i<=n;i++){
			for(j = 0;j<=num;j++){
				if(j!=0)
					dp[i][j] += dp[i-1][j-1]*(num-j+1)/num;
				if(j!=num)
					dp[i][j] += dp[i-1][j+1]*(j+1)/num;
			}
		}
		printf("%.3lf\n",dp[n][m]);
	}
	return 0;
}


离散数学 --- 图论基础 --- 图的同构,通路与回路,可达性与最短通路 同一个图(这里的图是抽象的数学定义)可以有不同的图形表示方法1.重数:两点之间的平行边的个数1.得到 n!的过程,一个图中的一个结点在另一个图中对应的结点有n种可能(黄框中定义的图来讨论),这个对应好后下一个结点有 n - 1 种可能,再下一个有n-2种,直到最后一个为1,所有可能的结果就等于 n * (n - 1) *(n - 2)*....*1 = n!2.虽然说找对应结点很困难,但不是没有规律可循的。比如1.两个相互对应的结点的度数要相同; 阅读详情

相关推荐

学习C++的递归函数(包含汉诺塔讲解)

简单来讲,递归函数就是函数本身自己调用自己,那么函数又是什么呢?#include <stdio.h> //这行是头文件,不同的头文件可以用不同的函数int main() //这里就是一个main函数//这里是你要编写程序的内容return 0;(这是个小细节如下)所以我们平时用来练习的就是一个main函数,而且是一个整型类型的函数,而这也是最后一句话为什么要加一句 return 0;了,因为它最后要返回整数类型,其它整数也可以,但是大家规定为0,这是C++自带的函数。

2302_81032013的博客 2594

poj1322 概率dp(蜜汁优化技巧)

题目: https://vjudge.net/problem/POJ-1322   这题是一道很普通的概率dp题目,但是如果不进行剪枝就会超时,而这题用的剪枝恰恰非常巧妙。   首先是思路分析: 当i+j时奇数还是偶数这个分析确实很难想到。(当然,没有这个条件也可以AC的)   而关于处时输入数据是否满足题目条件的判断就比较套路。 这个条件其实是对时间和空间同时进行优化,...

fx714848657的博客 317

【FLINK+Kerberos+kafka】在华为云上 bootstrap.server使用IP的GSS initiate failed 问题处理

目前互联网上所有的资料显示都是说没有正确设置KDC之类的,但本博主实际通过java代码低版本 如使用kafka-client 0.11.0 ,2.4.0等版本手动创建kafkaconfig 或者使用华为云的LoginUtils类 都能够正常链接,所以应该是高版本添加了相关配置,或者flink在subtask 创建kafkaAdminClient时 丢弃或使用了默认的一些配置行为,导致了客户端和kdc验证之间出现了principal 不一致导致验证失败。client.dns.lookup配置项作用。

honghanyue1791的博客 575

POJ 1322 Chocolate(母函数)

题目链接:http://poj.org/problem?id=1322 题意:经过简单转化,我们需要解决一个这样的问题:每一次从C样东西里面随机选一种,一共选N次,求恰有M种东西被选了基数次的概率。 数据范围:C 思路一:简单DP dp[m][n]表示选了n次之后恰好有m种东西出现奇数次的概率。 状态转移为dp[m][n+1]=dp[m+1][n]*(m+1)/C+dp[m-1][n]*

szhouan的博客 843

遥感大模型之Prithvi的关键技术解读

Prithvi系列模型开创了遥感领域基础模型新范式,通过海量多源时空数据(HLS和SAR)与Vision Transformer架构的深度融合,采用掩码自编码器进行自监督预训练,实现了强大的地球观测表征能力。该技术体系突破传统方法在全局建模、多模态融合和时空分析上的局限,仅需少量标注数据即可在土地分类、灾害监测等任务上取得优异表现。从初代3亿参数到Prithvi-EO-2.0的10亿参数升级,展现了模型可扩展性,为构建地球数字孪生智能基座奠定基础。

panshengwu的博客 866

密码学小白必看:三大顶级会议论文下载与阅读指南(附完整资源链接)

本文为密码学初学者提供了系统获取和阅读三大顶级会议(Crypto、Eurocrypt、Asiacrypt)论文的实战指南。详细介绍了通过IACR官方渠道、ePrint预印本等权威资源免费下载论文的方法,并分享了高效筛选、精读核心章节及构建个人知识体系的具体策略,帮助读者快速切入密码学研究前沿。

weixin_28363123的博客 406

POJ-1322 Chocolate 动态规划

这题当M=N=0的时候要输出1.000  刚写的时候默认从第二次开始取了. 详见代码: #include &lt;cstdlib&gt; #include &lt;cstring&gt; #include &lt;cstdio&gt; #include &lt;algorithm&gt; #include &lt;iostream&gt; using namespace std;...

weixin_33781606的博客 165

我的AI个人公司成立:基于Skills与Qwen大模型的智能问答平台实战开发+龙虾团队

微学AI推出数字员工矩阵,包含10个核心AI角色(总经理、秘书、工程师等),每个角色具备专属技能模块。系统采用FastAPI+Vue3技术栈,核心功能包括:基于SkillLoader的动态技能管理(支持脚本执行和文档加载)、WebSocket流式输出、多轮对话上下文管理。通过模块化架构实现AI自驱协作,可自主完成从需求分析到开发落地的全流程。项目亮点在于声明式技能配置和实时交互能力,打破传统办公壁垒,提升工作效率。

微学AI的博客 1625

马尔科夫过程(概率dp)(北理16校赛)

时间限制1秒 内存限制64M 题目描述:         给一个正整数N,每次可以在不超过N的素数中随机选择一个P,如果P是N的约数,则把N变成N/P,否则N不变。问把N最终变成1的期望次数是多少?   输入格式:         输入第一行为数据组数T ( T   输出格式:         对于每组数据,输出“Case

chat_c的博客 825

操作系统实验四 进程运行轨迹的跟踪与统计(哈工大李治军)

实验4 进程运行轨迹的跟踪与统计 实验目的 掌握 Linux 下的多进程编程技术; 通过对进程运行轨迹的跟踪来形象化进程的概念; 在进程运行轨迹跟踪的基础上进行相应的数据统计,从而能对进程调度算法进行实际的量化评价,更进一步加深对调度和调度算法的理解,获得能在实际操作系统上对调度算法进行实验数据对比的直接经验。 实验内容 进程从创建(Linux 下调用 fork())到结束的整个过程就是进程的生命期,进程在其生命期中的运行轨迹实际上就表现为进程状态的多次切换,如进程创建以后会成为就绪态;当该进程被调度以

leoabcd12的博客 4653

javascript 酷炫时钟

javascript 酷炫时钟

liuhao9999的博客 631

[POJ-1322]Chocolate(生成函数)

题目 口袋里有ccc种颜色的巧克力。从中随便取出一个。若桌上有与它颜色相同的巧克力,则两个都拿走;否则将它放在桌子上。求拿出nnn个后桌子上剩mmm个的概率。 数据范围:1≤c≤100,n,m≤10000001≤c≤100,n,m≤10000001≤c≤100,n,m≤1000000 思路 易得:n,m奇偶性相同 m≤c,nm≤c,nm≤c,n 设计 设有aaa种巧克力取了奇数次,则有c−ac...

ICEEBBING的博客 401

手把手教你玩转CPU微架构专栏--​​​​1.5 工具准备:用Gem5模拟器“看见”微架构(安装、基础仿真命令)​

本文介绍了如何使用Gem5模拟器进行微架构学习和实验。Gem5是一款支持多种指令集的开源微架构模拟器,可模拟CPU流水线、缓存等核心组件。文章详细说明了在Ubuntu和macOS上安装Gem5的步骤,包括依赖安装、源码编译和验证方法。通过一个简单的加法指令测试程序,演示了如何运行基础仿真并解读输出日志,包括指令执行流程和性能统计数据。此外,还提供了两个实战实验:修改L1缓存大小和观察分支预测失败,帮助读者理解微架构参数对性能的影响。最后指出Gem5是学习微架构的"显微镜",能直观观察指令

xiaoheshang_123的博客 140

【POJ1322】Chocolate (生成函数)

Description 有ccc种颜色的巧克力, 每种颜色有无限个. 现在每次取出一个巧克力, 其颜色等概率为1…c1\dots c1…c中的一种. 问最终有mmm种颜色的巧克力个数为奇数的概率. n≤106,c≤100n\le 10^6, c\le 100n≤106,c≤100 Solution 睿智dp题。 设fi,jf_{i,j}fi,j​表示当前取了iii个、有jjj种颜色是奇数个的概率,...

დ♂Hany01's Blog Space♂ღ 640

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Camera2Demo

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

POJ 2096 Collecting Bugs 马尔可夫链 概率DP

AC自动机的专题刷完了...开始刷概率了... 题目大意: 就是现在要从一个软件中找出bug, 这个软件有s个子模块,一共有n种bug,现在每天你可以找到一个bug, 这个bug属于任何一种bug和任何一个子模块都是等可能的, 问需要多少天使得每个子模块都有bug找到, 且一共找到n中不同的bug,求这个天数期望 大致思路: 大致思路见代码注释 代码如下: Re

Gatevin的专栏 871

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

poj1322 Chocolate

题意:包里有无穷多个巧克力,巧克力有c种颜色,每次从包里拿出不同颜色巧克力的概率都是相等的,桌面的巧克力不允许颜色相同,若某次拿出的巧克力与桌上的巧克力颜色相同了,则将两颗巧克力都吃掉。计算进行n次拿巧克力的操作后,桌上有m颗巧克力的概率,输出结果精确到小数点后三位。 用dp[ i ][ j ] 表示进行 i 次操作后桌面上有 j 颗巧克力的概率,状态转移方程:dp[ i ][ j ] += d

2307

[POJ 1322] Chocolate (生成函数 或 概率dp)

文章目录题目描述题目大意样例输入输出解题思路生成函数概率dp参考代码 题目描述 Problem Description In 2100, ACM chocolate will be one of the favorite foods in the world. “Green, orange, brown, red…”, colorful sugar-coated shell maybe is th...

cosini的博客 633

poj 1322 Chocolate (概率dp)

///有c种不同颜色的巧克力,一个个的取,当发现有相同的颜色的就吃掉,去了n个后,到最后还剩m个的概率 ///dp[i][j]表示取了i个还剩j个的概率 ///当m+n为奇时,概率为0 # include # include # include # include using namespace std; double dp[1010][1010]; int main() { in

苍竹林 1087

[研究总结]ACM中一类基于Markov链模型的期望问题

Abstract 本文要讨论的是一类期望问题的解,基于以下限制:1.状态空间为一有限集合S。2.转移F:S->S是从S到S的一个映射,且该映射存在环。或者说将S画做一张图,任一状态s∈S对应图中一个点,则F为图的一个有向边集,且该图存在环。3.转移的代价C(F)为一个常量c(通常c=1)。或者说对于上面的图,任一条边的权为c。4.求从某一状态ss至另一状态st的代价期望。 Body...

weixin_34337381的博客 292

POJ1322 母函数

方程  C(c,m)*sigmai(0-m)sigmaj(0-(c-m)){(-1)^(m-i)(k/c)^n*C(m,i)*C(c-m,j)} /2^c          k=2*(i+j)-c 精度问题有点儿烦人...起初wa了,我以为是我精度有问题,今天才发现是少乘了俩组合数,其实这题对精度要求不是高. #include #include #include #include #inc

Matrix 1161

poj 1322 Chocolate(递推/矩阵加速/高等代数+概率统计/数学)

poj 1322 Chocolate(递推/矩阵加速/高等代数+概率统计/数学)

PKU_ZZY的博客 1367

poj1185 炮兵阵地 状态压缩dp 算法竞赛进阶指南例题

炮兵阵地Time Limit: 2000MS Memory Limit: 65536KTotal Submissions: 31074 Accepted: 11978Description司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队...

晴天的记忆 304

poj 1322 Chocolate 概率dp

//poj 1322 AC //sep9 #include using namespace std; int c,n,m; double dp[2][128]; int main() { while(scanf("%d",&c)==1&&c){ scanf("%d%d",&n,&m); if(m>c||m>n||(m+n)%2){ puts("0.000"); conti

sepNINE的专栏 540

poj1322 Chocolate 【 概率DP 】

题目链接:poj1322 Chocolate 【概率DP 】 题意:袋中有C种颜色巧克力,每次从其中拿出一块放桌上,如果桌上有两块相同颜色巧克力则吃掉,问取出N块巧克力后,求桌上正好剩下M块巧克力的概率。(已知,若有五种颜色,会发现大部分时间桌上有2或3块巧克力) 题解:我太弱了,看了官方题解:具体优化见代码。 #include <iostream> ...

dhe56357的博客 358

poj 1322 概率dp

#include #include double dp[3][160]; int main() { int n,m,c; while(~scanf("%d",&c)&&c) { scanf("%d%d",&n,&m); if(n>1000) { if(n&1) n=1001; else n=1000; } if(m>c||(n+m)&1)

sky_zdk的博客 305

poj 1322 Chocolate (生成函数||概率DP)

题目描述传送门题目大意:一个口袋中装有巧克力,巧克力的颜色有c种。现从口袋中取出一个巧克力,若取出的 巧克力与桌上已有巧克力颜色相同,则将两个巧克力都取走,否则将取出的巧克力放在桌上。 设从口袋中取出每种颜色的巧克力的概率均等。求取出 n 个巧克力后桌面上剩余 m 个巧克 力的概率。题解首先m的个数一定小于等于c,因为如果某种颜色的巧克力数量是大于等于2,那么一定会两个一对被取走,也就是最后剩

clover_hxy的博客 1198

POJ1322 Chocolate DP

题意: c种巧克力,每种数量无穷大,取出n个放桌上,如果出现同种巧克力的就必须吃掉,即桌面上同种巧克力只能有0个或者1个。问取出n个后剩余m种巧克力的概率。 思路: 显然不可以直接枚举,需要用dp。 用每次取之后桌面上的巧克力种类数量做状态,容易写出状态转移方程如下: dp[i][j]=dp[i-1][j-1]*(c-j+1.0)/c+dp[i-1][j+1]*(j+1.0)/c; 因

Aszxqw 1716
上一篇: poj 1315 dfs(带障碍的类八皇后)
下一篇: poj 1155 树形dp(不亏损让尽量多居民看上电视)
dumeichen
博客等级 码龄13年 55粉丝 475原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值