HDU 4599 Dice

Linux WiFi驱动开发核心框架与嵌入式适配实战指南 在嵌入式Linux系统中,设备驱动是连接操作系统与硬件之间的桥梁,而WiFi驱动作为其中关键一环,直接决定了无线网络功能的稳定性与性能。开发WiFi驱动,既需要理解Linux内核网络子系统的分层架构,也需掌握cfg80211与mac80211两大管理框架的分工协作。从FullMAC与SoftMAC芯片的类型区分,到struct wiphy、struct ieee80211_hw等核心结构体的能力描述,再到sk_buff在数据路径中的流转,每个环节都影响着驱动的最终表现。在实际嵌入式项目中,设备树配置、内核选 阅读详情

Dice

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)
Total Submission(s): 211    Accepted Submission(s): 127


Problem Description
Given a normal dice (with 1, 2, 3, 4, 5, 6 on each face), we define: 
F(N) to be the expected number of tosses until we have a number facing up for N consecutive times.
H(N) to be the expected number of tosses until we have the number '1' facing up for N consecutive times.
G(M) to be the expected number of tosses until we have the number '1' facing up for M times.
Given N, you are supposed to calculate the minimal M1 that G (M1) >= F (N) and the minimal M2 that G(M2)>=H(N)
 

Input
The input contains multiple cases. 
Each case has a positive integer N in a separated line. (1<=N<=1000000000) 
The input is terminated by a line containing a single 0.
 

Output
For each case, output the minimal M1 and M2 as required in a single line, separated by a single space. 
Since the answer could be very large, you should output the answer mod 2011 instead.
 

Sample Input
  
1 2 0
 

Sample Output
  
1 1 2 7
 

Source
 

Recommend
liuyiding   |   We have carefully selected several similar problems for you:   4934  4933  4932  4931  4930 
 

Statistic |  Submit |  Discuss |  Note

设dp[i]为已经连续掷出i次相同点数,要到达目标状态所需的平均期望
则:dp[i] = (1/6)*(dp[i+1]+1) + (5/6)*(dp[1]+1)----------------------(1)

{ dp[0]是我们最终要求的值,dp[n] = 0 }


其中,下次掷出相同点数的概率为(1/6),再加上本身掷的一次,因此为(1/6)*(dp[i+1]+1)
如果下次掷的点数不同则相当于从1开始掷,因此为(5/6)*(dp[1]+1)
化简上式(1)可得:
dp[i] = (1/6)*(dp[i+1]) + (5/6)*(dp[1]) + 1------------------------------(2)
dp[i+1] = (1/6)*(dp[i+2]) + (5/6)*(dp[1]) + 1--------------------------(3)



两式相减(3) - (2)可得:
dp[i+1] - dp[i] = (1/6)*(dp[i+2] - dp[i+1])-----------------------------(4)


令a[i] = dp[i] - dp[i+1]----------------------------------------------------(5)
则a[i+1] = dp[i+2] - dp[i+1]
则(4)式变为:a[i+1] = 6*a[i]--------------------------------------------(6)
由(2)式可知:dp[0] - dp[1] = 1,则a[0] = 1


因此a[i] = 6^i---------------------------------------------------------------(7)


dp[n-1] - dp[n] = 6^(n-1)
dp[n-2] - dp[n-1] = 6^(n-2)
...
dp[0] - dp[1] = 1

则dp[0] = dp[n] + 6^0 + 6^1 + 6^2 + ... + 6^(n-2) + 6^(n-1)-----(8)
由于dp[n] = 0,则最终我们要求的结果dp[0]:
dp[0] = (6^n - 1)/5--------------------------------------------------------(9)
即F[n] = (6^n - 1)/5------------------------------------------------------(10)
H[n] = 6*F[n] = 6*(6^n - 1)/5------------------------------------------(11)
G[m] = 6*m----------------------------------------------------------------(12)

由于题目要求使得G[m1]>=F[n] && G[m2]>=H[n]的最小整数值
则 m1 >= (6^n - 1)/30, m2>=(6^n - 1)/5
由于6^n尾数为6,因此要使得m1、m2为整数,则
m1 >= (6^n + 24)/30, m2>=(6^n - 1)/5

即求出在n的情况下上述两个表达式的值即可,
分母的情况用模n情况下的a的逆元来解决。

#include<stdio.h>
#include<iostream>
using namespace std;
typedef long long LL;
const LL MOD = 2011;
LL quick_mod(LL a,LL b,LL m)
{
    LL ans = 1;
    while(b)
    {
        if(b&1)
        {
            ans = (ans*a)%m;
            b--;
        }
        b/=2;
        a = a*a%m;
    }
    return ans;
}
int main()
{
    //F(n) = (6^n-1)/5-----H(n) = 6*F(n)-----G(m) = 6*m;
    //M1 = (6^n+24)/30-----M2 = (6^n-1)/5
    LL N;
    while(scanf("%I64d",&N) && N)
    {
        LL hehe,ans1,ans2;
        hehe = quick_mod(6,N,MOD);
        ans1 = ((hehe+24+MOD)%MOD*1944)%MOD;
        ans2 = ((hehe-1+MOD)%MOD*1609)%MOD;
        printf("%I64d %I64d\n",ans1,ans2);
    }
    return 0;
}


保姆级教程:用Anaconda+PyCharm搞定YOLOv8本地部署(附避坑指南) 本文提供了一份详细的YOLOv8本地部署指南,涵盖Anaconda环境配置、PyCharm集成到模型部署的全过程。特别针对国内开发者需求,整合了镜像加速和常见报错解决方案,帮助快速完成目标检测模型的本地部署与实战应用。 阅读详情

相关推荐

ROS下UR+Realsense相机进行手眼标定

手眼标定主要是用来确定相机坐标系和机械臂坐标系之间的转换关系,从而实现后续的抓取等任务。

weixin_42157689的博客 7573

hdu 4599 Dice

题目:hdu 4599 Dice  tag :概率dp 思路:跟上次多校一样的思路:click here 所以知道:F(n)=(6^n-1)/5   H(n)=6*F(n)  G(n)=6*m 所以要求的是:m>=(6^n-1)/30 所以最小的m是 (6^n+24)/30    m%mod = (6^n+24)/30  %mod 分子部分用费马小定理,分子部分用逆元

shiyuan的专栏 1616

Smart200 PLC实现Bool信号接通延时、关闭延时作用

解决Smart200 PLC时间继电器和脉冲扫描P或N不能重复使用的问题,用于Bool信号延时接通和延时关闭的作用,可调整时间基数

gk_121的博客 4319

hdu4599Dice 概率dp+扩展欧几里得

//给一个正常的骰子 //F[n] 为这个骰子有一个数连续出现n次的期望 //h[n] 我这个骰子连续出现n个1的期望 //g[n] 为出现n个1的期望 //求最小的m1使得G(m1)>=F[n] , 最小的m2使得G(m2) >= H(n) //f[i] 一个数连续掷了i次,其F[n] //很容易得到f[i] = 1 + 1/6*f[i+1] + 5/6*f[1]   f[n

ijbuhv的专栏 1116

别再只放按钮了!巧用微信小程序‘长按识别’功能,打造无缝加群体验

本文深入探讨了微信小程序'长按识别'功能在社群运营中的创新应用,通过简化加群流程至一步操作,显著提升用户转化率。文章详细解析了技术实现细节、UI/UX设计策略,并对比了与企业微信API的适用场景,为开发者提供打造无缝加群体验的完整解决方案。

weixin_42627853的博客 434

【保姆级教程】不到一元32位芯片 DIY迷你时钟

基于不到一元的CH32V003F4P9芯片制作的迷你多功能时钟。

twen51的博客 1815

HDU-4599 Dice (概率DP)

设dp[i]表示已经连续掷出n次同一个数字时,离目标状态还需掷骰子次数的期望,则dp[n]=0,dp[0]=dp[1]+1 则状态转移方程为:dp[i]=1/6*(dp[i+1]+1)+5/6*(dp[1]+1); ① 有两种方法可求得dp[0] 方法一: 设参数a[i],b[i],使得 dp[i]=a[i]*dp[1]+b[i]; ② ②带入①右边

idealism_xxm的专栏 471

Zynq UltraScale+ RFSoC实战:用XCZU49DR开发板实现雷达信号处理全流程

本文详细介绍了如何利用Xilinx Zynq UltraScale+ RFSoC系列中的XCZU49DR开发板,高效实现雷达信号处理全流程。文章深入剖析了该芯片集成的射频直采ADC/DAC、可编程逻辑与Arm多核处理器的异构计算优势,并通过实战案例展示了从环境搭建、硬件链路设计到软件优化的完整开发路径,为相控阵雷达等高性能应用提供了单芯片解决方案。

weixin_29291863的博客 578

hdu 4494 Teamwork(多源多汇最小费用最大流,巧妙构图)

Teamwork Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 450    Accepted Submission(s): 229 Problem Description Some locations in c

TUT我好菜啊 5840

【100%通过率】华为OD机试真题 Python 实现【网上商城优惠活动 / 模拟商场优惠打折II】

某网上商场举办优惠活动,发布了满减、打折、无门槛3种 优惠券,分别为: 1:每满100元优惠10元,无使用数限制,如100~199元可以使用1张减10元,200~299可使用2张减20元,以此类推; 2:92折券,1次限使用1张,如100元,则优惠后为92元, 3:无门槛5元优惠券,无使用数限制,直接减5元。

MISAYAONE的博客 9371

【图像去噪】基于加权核范数最小化算法实现图像去噪附matlab代码

1 简介 WNNM是一种约束矩阵奇异值稀疏性的低秩算法,在NNM理论基础上增加了核范数权重,有效利用了自然图像的先验信息并提高了核范数的灵活性. 2 部分代码 ​clcclear allclose allnSig = 100;O_Img = double(imread('Monarch.png'));​randn('seed', 0);N_Img = O_Img + nSig* randn(size(O_Img)); ..

qq_59747472的博客 3117

HDU 4599 Dice(概率dp)

F(n)表示连续扔出1个数字朝上n次的期望 H(n)表示连续扔出1朝上n次的期望 G(n)表示扔出n次1朝上的期望怎么推导这几个公式呢。 考虑dp[i]dp[i]表示已经扔了i次某个数字朝上的还需要多少次才能完成的期望 转移是dp[i]=16(1+dp[i+1])+56(1+dp[1]),dp[n]=0,dp[0]=1+dp[1]dp[i]=\frac{1}{6}(1+dp[i+1])+\f

Miracle_ma的专栏 592

宇树G1开发实践--PPT汇报(基础版)

本文介绍了一套基于宇树G1人形机器人的PPT自动演示系统,可实现"一键启动、自动演讲"功能。系统通过多线程同步技术,将音频播放与机器人动作完美结合,支持12种预设社交互动动作。硬件依赖宇树G1机器人、外接音响和网络连接,软件采用Python SDK和ALSA音频工具。核心功能包括音频文件自动排序、外接音响播放控制、机器人动作执行及音画同步。使用时需配置网络接口和音频设备号,运行后自动按顺序播放音频并执行随机动作。系统特别强调了安全注意事项,并提供了常见问题解决方案,适用于展会、汇报等需要

m0_47999117的博客 510

HDU 4599 Dice (概率dp)

Dice Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 4599 Description Given a normal dice (with 1, 2, 3, 4, 5, 6 on each face)

clasky的专栏 994

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

HDU 4599 Dice 概率DP + 乘法逆元

题意:给你一个六个面的色子 F(N) 代表投色子使得任意一个面连续朝上N次的期望次数 H(N) 代表1连续朝上N次的期望 G(M) 代表1朝上M次的期望 问你 G (M1) >= F (N) 和 G(M2)>=H(N) 的最小M1  M2 结果对2011取模 思路:YY一下会发现H(N) = 6*F(N) G(M) = 6 * M 设dp_f(i)代表任意一个面已经连续朝上i次 到N次还需投的

s_h_r 553

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

HDU4599 Dice概率期望DP

这题有三个函数,F(N)表示有数字连续向上

MY专栏 500

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

hdu 4599 Dice 概率DP

思路: 1.求f[n];dp[i]表示i个连续相同时的期望 则 dp[0]=1+dp[1] dp[1]=1+(5dp[1]+dp[2])/6 …… dp[i]=1+(5dp[1]+dp[i+1])/6 …… dp[n]=0 可以求得f[n]=(6^n-1)/5. 2.求h[n];dp[i]表示i个连续相同的1时的期望 则 dp[0]=1+...

weixin_30664539的博客 113

HDU 4599 Dice 2013 ACM-ICPC吉林通化全国邀请赛J题

转载自http://www.cnblogs.com/allh123/archive/2013/08/25/3281039.html 先推出F(n)的公式: 设dp[i]为已经投出连续i个相同的点数平均还要都多少次才能到达目标状态。 则有递推式dp[i] = 1/6*(1+dp[i+1]) + 5/6*(1+dp[1]).考虑当前这一次掷色子,有1/ 6的概率投的和前面的一样,有5/6

九野的博客 1895

2013 ACM-ICPC吉林通化全国邀请赛 J-Dice 概率DP + 数列

HDU-4599 solution 已知 dpi[n]=0,(i=1,2)已知~dp_i[n]=0,(i=1,2)已知 dpi​[n]=0,(i=1,2) dp1[i]=dp1[i+1]∗56+dp1[1]∗16+1dp_1[i]=dp_1[i+1]*\frac56+dp_1[1]*\frac16+1dp1​[i]=dp1​[i+1]∗65​+dp1​[1]∗61​+1 =>dp1[n]−(dp1[1]+56)=6[dp1[n−1]−(dp1[1]+56)],dp1[0]=dp1

qq_46173805的博客 806

HDU 4494 Teamwork(最大流-Dinic+最小费用最大流-mcmf)

Descriptionmm种工人,n−1n-1个工作,给出第ii个工作地点的坐标,开始时间,工作完成所需时间以及所需每种工人的数量,两个工作地点之间的距离定义为欧氏距离,工人速度为单位距离每单位时间,工人完成一个工作后如果在到达另一个工作地点时还没到开始时间即可继续工作,问至少要多少名工人才能完成这nn项工作Input第一行一整数TT表示用例组数,每组用例输入两整数nn和mm分别表示工作数量和工人数

ZSQ 1053

hdu 4494 Teamwork 网络流

网上比较多的代码都是用费用流做的,但是这个题目简单的描述就是求最小路径覆盖,每个点覆盖的次数不是1了而已。简单修改求最小路径覆盖的方法即可,源点向顶点,顶点向汇点连的边都变成点需要被覆盖的次数即可。 #include #include #include using namespace std; const int maxn=15e1+9,inf=1e9; int n,m; int su

yrleep的专栏 1108

HDU - 4598 Difference

题意: 有一个图,给图上每个顶点都赋一个实数Ai。如果存在一个正整数T满足下面两个条件,这个图就是一个"difference"。 |Ai| <= T。 (vi, vj) in E <=> |ai - aj| >= T。 如果点i,j构成的边在图中存在,则 |Ai - Aj| >= T;否则 |Ai - Aj| < T。("<=>" 代表充要条件) 给出图,问这个图是否是一个"difference"。 思路: 有题意可知,任意两个相邻的点,那

Top_xiao的博客 328

hdu 4598 Difference

为了做着道题,下午又找了几道差分约束的题做了,因为差分约束是很久以前看的,没怎么理解,现在看看,感觉理解的还不错了! 题意:判断是否存在图,使得像连的两个定点的值的差的绝对值大于等于T,并且每个定点的值都是小于T的。 大致思路:比赛的时候就想到求奇圈了,但是一直wa,还很不理解,以为是代码写错了,后来想到,题中说的是相连的边的要求,那么也就要求了不想连的边的绝对值小于T了,而只求奇圈没有 满足

生活总是要微笑着面对~ 1017
上一篇: HDU 2066 SPFA实现0ms
下一篇: HDU 2089 不要62
New-Spirit
博客等级 码龄14年 13粉丝 138原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值