LightOJ 1038 Race to 1 Again (簡單期望)
一個數的因子有 n u m num num個,分別是 a 1 , a 2 . . , a n u m a_1,a_2..,a_{num} a1,a2..,anum
定義 d p [ i ] dp[i] dp[i]為 i i i轉換為 1 1 1的期望次數
d p [ i ] = d p [ a 1 ] + d p [ a 2 ] . . . + d p [ n u m ] n u m + 1 dp[i]=\frac{dp[a_1]+dp[a_2]...+dp[num]}{num}+1 dp[i]=numdp[a1]+dp[a2]...+dp[num]+1
其中 d p [ n u m ] = d p [ i ] ( i = = n u m ) dp[num]=dp[i](i==num) dp[num]=dp[i](i==num)
所以移項可解得 d p [ i ] dp[i] dp[i]
#include <bits/stdc++.h>
using namespace std;
const int maxn=2e5+10;
int t,n,a[maxn],num[maxn];
double dp[maxn];
void print()
{
for(int i=1;i<=100000;i++)
for(int j=i;j<=100000;j+=i)
num[j]++;
}
int main()
{
print();
cin >> t; int casenum=0;
while( t-- )
{
int top = 0;
cin >> n;
for(int i=1;i<=n/2;i++)
if( n%i==0 ) a[++top]=i;
a[++top] = n;
for(int i=2;i<=top;i++)
{
for(int j=1;j<i;j++)
{
if( a[i]%a[j]!=0 ) continue;
dp[i] += ( dp[j]+1 )/num[ a[i] ];
}
if( num[ a[i] ]==1 ) continue;
double x = 1.0/num[a[i]];
dp[i] = ( dp[i]+x )/(1-x);
}
printf("Case %d: %.7lf\n",++casenum,dp[top] );
for(int i=1;i<=top;i++) dp[i]=0;
}
}
相關文章
- LightOj1296Again Stone Game(手推SG函式)AIGAM函式
- Promise Race, 並不公平的 RacePromise
- 『杭電1848』Fibonacci again and againAI
- HDU 1848 Fibonacci again and again(SG函式)AI函式
- 簡單輪播(1)
- Sentinel簡單使用(1)
- Promise.race() 方法Promise
- 1-Spring 簡單使用Spring
- Ansible(1)- 簡單介紹
- Matplotlib1.簡單例子單例
- Decade counter againAI
- HDU 1848 Fibonacci again and again (尼姆博弈+sg函式)AI函式
- 解決:ChatGPT too many requests in 1 hour.Try again laterChatGPTAI
- 期望最大化演算法(EM)簡介演算法
- pythontornodo的簡單應用1Python
- LeetCode #1:Two Sum(簡單題)LeetCode
- LeetCode 1 兩數之和(簡單)LeetCode
- 期望
- If I were a boy againAI
- Trees and XOR Queries AgainAI
- Django安裝與簡單配置(1)Django
- GPT 1-3 簡單介紹GPT
- Spring Cloud Gateway + Nacos(1)簡單配置SpringCloudGateway
- OJ1038 四則運算
- PAWNYABLE kernel race condition 筆記筆記
- Flutter Animation(1)動畫的簡單使用Flutter動畫
- MVP-------簡單邏輯--------難度1MVP
- 1.物件和類的簡單解析物件
- poj 1038 Bugs Integrated, Inc. 題解
- WEEK5|WEB Unserialize AgainWebAI
- 機率期望
- G1 垃圾回收器簡單調優
- 1、變數和簡單資料型別變數資料型別
- 簡單介紹numpy.reshape(-1,1)的具體使用
- 前端中的簡單程式設計題-字串(1)前端程式設計字串
- 1、域滲透基礎簡單資訊收集
- 用python手刃Leetcode(1):兩數之和【簡單題】PythonLeetCode
- oracle10gR1 asm儲存簡單示例OracleASM