考虑没有 bib_ibi​ 的限制怎么做。

先把 n!n!n! 质因数分解:n!=∏i=1kpiqin!=\prod\limits_{i=1}^kp_i^{q_i}n!=i=1∏k​piqi​​。

设 bi=∏j=1kpjxi,jb_i=\prod\limits_{j=1}^kp_j^{x_{i,j}}bi​=j=1∏k​pjxi,j​​,那么 biai=∏j=1kpjaixi,jb_i^{a_i}=\prod\limits_{j=1}^kp_j^{a_ix_{i,j}}biai​​=j=1∏k​pjai​xi,j​​,∏i=1mbiai=∏j=1kpj∑i=1maixi,j\prod\limits_{i=1}^m b_i^{a_i}=\prod\limits_{j=1}^kp_j^{\sum\limits_{i=1}^ma_ix_{i,j}}i=1∏m​biai​​=j=1∏k​pji=1∑m​ai​xi,j​​。

每一个质因数 pjp_jpj​ 是独立的,于是我们对于每一个 qjq_jqj​ 求出把 qjq_jqj​ 分解成 ∑i=1maixi\sum\limits_{i=1}^ma_ix_{i}i=1∑m​ai​xi​ 的方案数再乘起来即可。

求这个方案数是一个背包 DP 的事情,具体实现上我们 DP 求出 fvf_vfv​ 表示将 vvv 分解成 ∑i=1maixi\sum\limits_{i=1}^ma_ix_{i}i=1∑m​ai​xi​ 的方案数。

那么现在加上 bib_ibi​ 的限制后我们就考虑容斥。

对于某一种 {bi}\{b_i\}{bi​} 的方案,将所有的 iii 划分成若干组,每一组里的 bib_ibi​ 是相同的,但不保证所有相同的 bib_ibi​ 划分进同一组,然后设一共有 BBB 组,分别是 s1,s2,⋯,sBs_1,s_2,\cdots,s_Bs1​,s2​,⋯,sB​。 那么满足 ∀i,j∈sx,bi=bj\forall i,j\in s_x,b_i=b_j∀i,j∈sx​,bi​=bj​。

考虑设容斥系数 f(si)f(s_i)f(si​) 使得:
ans=∑枚举划分T=(s1,s2,⋯,sB)(∏i=1Bf(∣si∣))dp(T)ans=\sum_{枚举划分T=(s_1,s_2,\cdots,s_B)}\left(\prod_{i=1}^Bf(|s_i|)\right)dp(T) ans=枚举划分T=(s1​,s2​,⋯,sB​)∑​(i=1∏B​f(∣si​∣))dp(T)
其中 dp(T)dp(T)dp(T) 表示满足划分 TTT 的 bbb 的方案数。

换言之,设 sumai=∑j∈siajsuma_i=\sum\limits_{j\in s_i}a_jsumai​=j∈si​∑​aj​,我们设 sis_isi​ 这一组内是都有相同的 bi′b'_ibi′​,此时组已经是分好了的,如果我们能确定 bi′b'_ibi′​,我们就能确定原来所有的 bib_ibi​,也就是我们要求 bi′{b_i'}bi′​ 使得 ∏i=1Bbi′sumai=n!\prod\limits_{i=1}^B{b_i'}^{suma_i}=n!i=1∏B​bi′​sumai​=n!,那么 dp(T)dp(T)dp(T) 就是 bi′{b_i'}bi′​ 的方案数。

注意这里的 bi′b_i'bi′​ 并没有要求两两不同,所以我们仍然可以用背包 DP 来求解。

这里插一小段讲一下怎么求解:由于对于不同的 TTT 它的 sumaisuma_isumai​ 是有可能不同的,对于每一种 TTT 都跑一遍背包 DP 显然不现实,那么我们就不妨直接 dfs 枚举 sumasumasuma 数组是什么(设 M=∑aiM=\sum a_iM=∑ai​,那么只需满足 ∑isumai=M\sum_{i} suma_i=M∑i​sumai​=M 即可),然后一边枚举一遍跑背包 DP,并对于所有枚举的 sumasumasuma 数组记录答案。

dp(T)dp(T)dp(T) 求解完成,考虑怎么求容斥系数。

那么考虑一种极大的划分 TTT(“极大的” 指这种划分方案中所有相同的 bib_ibi​ 都在同一组,即不存在两组的 bib_ibi​ 相同),对于某种符合划分 TTT 的 bbb 的方案 SSS,考虑 SSS 在上面答案计算式等号左右的贡献:

  • 显然这种方案对 ansansans 有贡献当且仅当没有一组有多于 111 个元素(即不存在 i≠ji\neq ji​=j 且 bi=bjb_i=b_jbi​=bj​),故对等号左边的贡献为 [s1=s2=⋯=sB=1][s_1=s_2=\cdots=s_B=1][s1​=s2​=⋯=sB​=1]。

  • 等号右边,如果在枚举另一种划分 T′T'T′ 时 SSS 也被统计进去了(即 SSS 也符合划分 T′T'T′),当且仅当能将 TTT 的每一组再划分成若干组(可以划分为 111 组,即不变)而形成划分 T′T'T′。

    于是 SSS 在等号右边的贡献为:(定义 A=B+CA=B+CA=B+C 当且仅当 A=B∪CA=B\cup CA=B∪C 且 B∩C=∅B\cap C=\emptysetB∩C=∅,即能看作将集合 AAA 划分成两个集合 B,CB,CB,C)

    (∑s1=s1,1+⋯+s1,k11k1!∏i=1k1f(∣s1,i∣))(∑s2=s2,1+⋯+s2,k21k2!∏i=1k2f(∣s2,i∣))⋯(∑sB=sB,1+⋯+sB,kB1kB!∏i=1kBf(∣sB,i∣))\left(\sum_{s_1=s_{1,1}+\cdots+s_{1,k_1}}\dfrac{1}{k_1!}\prod_{i=1}^{k_1}f(|s_{1,i}|)\right)\left(\sum_{s_2=s_{2,1}+\cdots+s_{2,k_2}}\dfrac{1}{k_2!}\prod_{i=1}^{k_2}f(|s_{2,i}|)\right)\cdots\left(\sum_{s_B=s_{B,1}+\cdots+s_{B,k_B}}\dfrac{1}{k_B!}\prod_{i=1}^{k_B}f(|s_{B,i}|)\right)\\ ⎝⎛​s1​=s1,1​+⋯+s1,k1​​∑​k1​!1​i=1∏k1​​f(∣s1,i​∣)⎠⎞​⎝⎛​s2​=s2,1​+⋯+s2,k2​​∑​k2​!1​i=1∏k2​​f(∣s2,i​∣)⎠⎞​⋯⎝⎛​sB​=sB,1​+⋯+sB,kB​​∑​kB​!1​i=1∏kB​​f(∣sB,i​∣)⎠⎞​
    (除以 k1!k_1!k1​! 是因为对于某一种 s1=s1,1+⋯+s1,k1s_1=s_{1,1}+\cdots+s_{1,k_1}s1​=s1,1​+⋯+s1,k1​​ 它会被计算 k1k_1k1​ 次)

    发现与具体划分的集合长啥样无关,只和划分的集合的大小有关,于是转为枚举集合的大小:
    ∏i=1B(∑∣si∣=xi,1+⋯+xi,ki1ki!(∣si∣xi,1,⋯,xi,ki)∏j=1kif(xi,j))\prod_{i=1}^B\left(\sum_{|s_i|=x_{i,1}+\cdots+x_{i,k_i}}\dfrac{1}{k_i!}\dbinom{|s_i|}{x_{i,1},\cdots,x_{i,k_i}}\prod_{j=1}^{k_i}f(x_{i,j})\right) i=1∏B​⎝⎛​∣si​∣=xi,1​+⋯+xi,ki​​∑​ki​!1​(xi,1​,⋯,xi,ki​​∣si​∣​)j=1∏ki​​f(xi,j​)⎠⎞​
    从上一步枚举集合跳到这一步枚举集合大小看似非常直接,但系数仍为 1ki!\dfrac{1}{k_i!}ki​!1​ 的原因实际上需要理性证明:

    考虑 ∣si∣|s_i|∣si​∣ 的某种分解:∣si∣=w1y1+w2y2+⋯+wcyc|s_i|=w_1y_1+w_2y_2+\cdots+w_cy_c∣si​∣=w1​y1​+w2​y2​+⋯+wc​yc​,其中 yiy_iyi​ 互不相同。显然此时 ki=∑i=1cwik_i=\sum\limits_{i=1}^c w_iki​=i=1∑c​wi​。

    那么这种情况会被 ∣si∣=xi,1+⋯+xi,k|s_i|=x_{i,1}+\cdots+x_{i,k}∣si​∣=xi,1​+⋯+xi,k​ 枚举 ki!w1!w2!⋯wc!\dfrac{k_i!}{w_1!w_2!\cdots w_c!}w1​!w2​!⋯wc​!ki​!​ 次,那么我们就需要除掉 ki!w1!w2!⋯wc!\dfrac{k_i!}{w_1!w_2!\cdots w_c!}w1​!w2​!⋯wc​!ki​!​。

    同时,这种情况在每次被枚举到时同一种分配方案都会因为 (∣si∣xi,1,⋯,xi,ki)\dbinom{|s_i|}{x_{i,1},\cdots,x_{i,k_i}}(xi,1​,⋯,xi,ki​​∣si​∣​) 而被算重 w1!w2!⋯wc!w_1!w_2!\cdots w_c!w1​!w2​!⋯wc​! 次,那么我们就需要除掉 w1!w2!⋯wc!w_1!w_2!\cdots w_c!w1​!w2​!⋯wc​!。

    于是需要除掉 ki!w1!w2!⋯wc!×w1!w2!⋯wc!=ki!\dfrac{k_i!}{w_1!w_2!\cdots w_c!}\times w_1!w_2!\cdots w_c!=k_i!w1​!w2​!⋯wc​!ki​!​×w1​!w2​!⋯wc​!=ki​! 。

    化简一下:
    ∏i=1B(∑∣si∣=xi,1+⋯+xi,ki1ki!(∣si∣xi,1,⋯,xi,ki)∏j=1kif(xi,j))=∏i=1B(∑∣si∣=xi,1+⋯+xi,ki∣si∣!ki!∏j=1kif(xi,j)xi,j!)\begin{aligned} &\prod_{i=1}^B\left(\sum_{|s_i|=x_{i,1}+\cdots+x_{i,k_i}}\dfrac{1}{k_i!}\dbinom{|s_i|}{x_{i,1},\cdots,x_{i,k_i}}\prod_{j=1}^{k_i}f(x_{i,j})\right)\\ =&\prod_{i=1}^B\left(\sum_{|s_i|=x_{i,1}+\cdots+x_{i,k_i}}\dfrac{|s_i|!}{k_i!}\prod\limits_{j=1}^{k_i}\dfrac{f(x_{i,j})}{x_{i,j}!}\right)\\ \end{aligned} =​i=1∏B​⎝⎛​∣si​∣=xi,1​+⋯+xi,ki​​∑​ki​!1​(xi,1​,⋯,xi,ki​​∣si​∣​)j=1∏ki​​f(xi,j​)⎠⎞​i=1∏B​⎝⎛​∣si​∣=xi,1​+⋯+xi,ki​​∑​ki​!∣si​∣!​j=1∏ki​​xi,j​!f(xi,j​)​⎠⎞​​

现在令等号左右贡献相等:
[∣s1∣=∣s2∣=⋯∣sB∣=1]=∏i=1B(∑∣si∣=xi,1+⋯+xi,ki∣si∣!ki!∏j=1kif(xi,j)xi,j!)[|s_1|=|s_2|=\cdots |s_B|=1]=\prod_{i=1}^B\left(\sum_{|s_i|=x_{i,1}+\cdots+x_{i,k_i}}\dfrac{|s_i|!}{k_i!}\prod\limits_{j=1}^{k_i}\dfrac{f(x_{i,j})}{x_{i,j}!}\right) [∣s1​∣=∣s2​∣=⋯∣sB​∣=1]=i=1∏B​⎝⎛​∣si​∣=xi,1​+⋯+xi,ki​​∑​ki​!∣si​∣!​j=1∏ki​​xi,j​!f(xi,j​)​⎠⎞​
显然如果下式满足,上式也满足:
[∣s∣=1]=∑∣s∣=x1+x2+⋯xk∣s∣!k!∏j=1kf(xj)xj![|s|=1]=\sum_{|s|=x_1+x_2+\cdots x_{k}}\dfrac{|s|!}{k!}\prod_{j=1}^k\dfrac{f(x_j)}{x_j!} [∣s∣=1]=∣s∣=x1​+x2​+⋯xk​∑​k!∣s∣!​j=1∏k​xj​!f(xj​)​
注意到这里有个 EGF 的形式,即如果我们设 F(x)=∑i≥1f(i)i!xiF(x)=\sum\limits_{i\geq 1}\dfrac{f(i)}{i!}x^iF(x)=i≥1∑​i!f(i)​xi,那么就有:
[∣s∣=1]=∑∣s∣=x1+x2+⋯xk∣s∣!k!∏j=1kf(xj)xj!=∣s∣!∑k≥11k![x∣s∣]Fk(x)=∣s∣![x∣s∣](∑k≥01k!Fk(x)−1)=∣s∣![x∣s∣](eF(x)−1)\begin{aligned} \big[|s|=1\big]=&\sum_{|s|=x_1+x_2+\cdots x_{k}}\dfrac{|s|!}{k!}\prod_{j=1}^k\dfrac{f(x_j)}{x_j!}\\ =&|s|!\sum_{k\geq 1}\dfrac{1}{k!}[x^{|s|}]F^k(x)\\ =&|s|![x^{|s|}]\left(\sum_{k\geq 0}\dfrac{1}{k!}F^k(x)-1\right)\\ =&|s|![x^{|s|}]\left(e^{F(x)}-1\right)\\ \end{aligned} [∣s∣=1]====​∣s∣=x1​+x2​+⋯xk​∑​k!∣s∣!​j=1∏k​xj​!f(xj​)​∣s∣!k≥1∑​k!1​[x∣s∣]Fk(x)∣s∣![x∣s∣](k≥0∑​k!1​Fk(x)−1)∣s∣![x∣s∣](eF(x)−1)​
于是:
[x∣s∣](eF(x)−1)=[∣s∣=1]∣s∣!eF(x)=x+1F(x)=ln⁡(x+1)\begin{aligned} \big[x^{|s|}\big]\left(e^{F(x)}-1\right)&=\dfrac{[|s|=1]}{|s|!}\\ e^{F(x)}&=x+1\\ F(x)&=\ln(x+1) \end{aligned} [x∣s∣](eF(x)−1)eF(x)F(x)​=∣s∣![∣s∣=1]​=x+1=ln(x+1)​
考虑通过求导拆掉 ln⁡\lnln:
F′(x)=1x+1=∑i≥0(−1)ixiF(x)=∑i≥1(−1)i−1ixi\begin{aligned} F'(x)&=\dfrac{1}{x+1}=\sum_{i\geq 0}(-1)^{i}x^i\\ F(x)&=\sum_{i\geq 1}\dfrac{(-1)^{i-1}}{i}x^i \end{aligned} F′(x)F(x)​=x+11​=i≥0∑​(−1)ixi=i≥1∑​i(−1)i−1​xi​
根据 F(x)F(x)F(x) 的定义就有:
f(i)i!=(−1)i−1i\dfrac{f(i)}{i!}=\dfrac{(-1)^{i-1}}{i} i!f(i)​=i(−1)i−1​
得到 f(i)=(−1)i−1(i−1)!f(i)=(-1)^{i-1}(i-1)!f(i)=(−1)i−1(i−1)!。

代入原来的式子求 ansansans 即可。

至于 DP 的具体过程,注意到我们每次枚举需要的只是所有 sis_isi​ 的大小和所有的 sumaisuma_isumai​,于是可以以这两个东西当做维度来 DP。

具体过程详见代码:

#include<bits/stdc++.h>#define A 35
#define N 10010using namespace std;namespace modular
{const int mod=1000000007;inline int add(int x,int y){return x+y>=mod?x+y-mod:x+y;}inline int dec(int x,int y){return x-y<0?x-y+mod:x-y;}inline int mul(int x,int y){return 1ll*x*y%mod;}inline void Add(int &x,int y){x=x+y>=mod?x+y-mod:x+y;}inline void Mul(int &x,int y){x=1ll*x*y%mod;}
}using namespace modular;inline int poww(int a,int b)
{int ans=1;while(b){if(b&1) ans=mul(ans,a);a=mul(a,a);b>>=1;}return ans;
}inline int read()
{int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^'0');ch=getchar();}return x*f;
}struct data
{int size,sum;data(){};data(int a,int b){size=a,sum=b;}
};bool operator < (data a,data b)
{if(a.sum==b.sum) return a.size<b.size;return a.sum<b.sum;
}int n,m,M,a[A];
int cnt,prime[N];
int maxq,q[N],numq[N];
bool notprime[N];
int fac[A],ifac[A];map<vector<int>,int>f1;//f1[vec]:当suma数组为vec时,有多少种b的方案(b可以相同)
map<vector<data>,int>f2[2];//f2[pair(size,sum)]:当|si|数组为size、suma数组为sum时,划分T的方案数int calc(int p)
{int ans=0;int x=n;while(x){ans+=x/p;x/=p;}return ans;
}void init()
{fac[0]=1;for(int i=1;i<=m;i++) fac[i]=mul(fac[i-1],i);ifac[m]=poww(fac[m],mod-2);for(int i=m;i>=1;i--) ifac[i-1]=mul(ifac[i],i);for(int i=2;i<=n;i++){if(!notprime[i]){prime[++cnt]=i;q[i]=calc(i);numq[q[i]]++;maxq=max(maxq,q[i]);}for(int j=1;j<=cnt&&i*prime[j]<=n;j++){notprime[i*prime[j]]=1;if(!(i%prime[j])) break;}}
}int aa[A];
int dp[A][N];void dfs(int k,int lst,int sum)
{if(sum==M){int ans=1;for(int i=1;i<=maxq;i++)Mul(ans,poww(dp[k-1][i],numq[i]));vector<int>now;for(int i=1;i<k;i++)now.push_back(aa[i]);f1[now]=ans;return;}for(int i=lst;sum+i<=M;i++){aa[k]=i;for(int j=0;j<=maxq;j++) dp[k][j]=dp[k-1][j];for(int j=i;j<=maxq;j++) Add(dp[k][j],dp[k][j-i]);dfs(k+1,i,sum+i);}
}int main()
{n=read(),m=read();init();for(int i=1;i<=m;i++){a[i]=read();M+=a[i];}dp[0][0]=1;dfs(1,1,0);bool lst=0,now=1;vector<data>empty;f2[now][empty]=1;for(int i=1;i<=m;i++){swap(now,lst);f2[now].clear();for(auto it=f2[lst].begin();it!=f2[lst].end();it++){vector<data>T=it->first;for(int j=0;j<(int)T.size();j++){vector<data>nT=T;nT[j].sum+=a[i],nT[j].size++;sort(nT.begin(),nT.end());Add(f2[now][nT],it->second);}vector<data>nT=T;nT.push_back(data(1,a[i]));sort(nT.begin(),nT.end());Add(f2[now][nT],it->second);}}int ans=0;for(auto it=f2[now].begin();it!=f2[now].end();it++){vector<data>T=it->first;int coef=1;for(data s:T) Mul(coef,mul((s.size&1)?1:mod-1,fac[s.size-1]));vector<int>tmp;for(data s:T) tmp.push_back(s.sum);Add(ans,mul(coef,mul(f1[tmp],it->second)));}sort(a+1,a+m+1);int tmp=1;for(int i=2;i<=m;i++){if(a[i]==a[i-1]) tmp++;else{ans=mul(ans,ifac[tmp]);tmp=1;}}ans=mul(ans,ifac[tmp]);printf("%d\n",ans);return 0;
}
/*
10 6
1 2 2 3 3 3
*/
/*
6 4
1 1 2 1
*/

【XSY3657】因数分解(容斥,DP)相关推荐

  1. LOJ#3124. 「CTS2019 | CTSC2019」氪金手游 容斥+DP

    神仙容斥+DP可还行. code: #include <cstdio> #include <cmath> #include <vector> #include &l ...

  2. 洛谷P3349:小星星(容斥dp)

    解析 先安利一波洛谷上我介绍如何用暴力日过去的博客 现在开始务正业 考虑把dp记录状态的一维s去掉 这样单次转移复杂度变成n3n^3n3 但是这样显然会算多啊! 因为一个编号可能会用很多次 考虑容斥 ...

  3. P4707 重返现世 扩展 MinMax 容斥+DP

    题目传送门 https://www.luogu.org/problem/P4707 题解 很容易想到这是一个 MinMax 容斥的题目. 设每一个物品被收集的时间为 \(t_i\),那么集齐 \(k\ ...

  4. 洛谷P4707 重返现世(扩展MinMax容斥+dp)

    传送门 我永远讨厌\(dp.jpg\) 前置姿势 扩展\(Min-Max\)容斥 题解 看纳尔博客去→_→ 咱现在还没搞懂为啥初值要设为\(-1\)-- //minamoto #include< ...

  5. 840C - On the Bench (容斥 + DP)

    840C - On the Bench 题意 给定序列 a[1...n]a[1...n]a[1...n],求有多种 aaa 的排列,满足任意两个相邻的数乘积不是完全平方数,答案对 109+710^9+ ...

  6. P5643-[PKUWC2018]随机游走【min-max容斥,dp】

    正题 题目链接:https://www.luogu.com.cn/problem/P5643 题目大意 给出nnn个点的一棵树,一个人从点xxx开始随机游走,然后QQQ次询问给出一个点集SSS,求期望 ...

  7. ARC115E-LEQ and NEQ【容斥,dp,线段树】

    正题 题目链接:https://atcoder.jp/contests/arc115/tasks/arc115_d 题目大意 nnn个数字的序列xxx,第xi∈[1,Ai]∩Zx_i\in [1,A_ ...

  8. P4859-已经没有什么好害怕的了【容斥,dp】

    正题 题目链接:https://www.luogu.com.cn/problem/P4859 题目大意 两个长度为nnn的序列a,ba,ba,b两两匹配,求ai>bia_i>b_iai​& ...

  9. 牛客练习赛71C-数学考试【容斥,dp】

    正题 题目链接:https://ac.nowcoder.com/acm/contest/7745/C 题目大意 求一nnn的排列,给mmm个限制pip_ipi​表示1∼pi1\sim p_i1∼pi​ ...

  10. Codeforces 1043F(容斥+dp)

    题目链接 题意 是否存在选择方案使所选的数$gcd=1$ 思路 $f[i][j]$表示选$i$个数$gcd=j$的方案数,$cnt[i]$表示包含因子$i$的数的个数,则$f[i][j]=$$C_{c ...

最新文章

  1. 顺序表-删除所有元素值为x结点(另建表存放+复制到原表)
  2. 新版手机浏览器_新版《野性的呼唤》IGN仅3分 烂番茄72% M站54分
  3. Magic Powder - 2
  4. 数据库元数据数据字典查询_1_列出模式中所有的表
  5. Note Navigation incident local change
  6. Java - 对象(object) 具体解释
  7. python 下的数据结构与算法---6:6大排序算法
  8. HDU——2768 Cat vs. Dog
  9. Tomcat访问日志详细配置
  10. beginnersbook C++ 教程·翻译完成 | ApacheCN
  11. Prove it With Code
  12. 实验吧天网管理系统Writeup
  13. c语言单片机红外报警设计,超级简单单片机红外感应开关DIY设计
  14. 基于51单片机温度火灾烟雾报警器
  15. 未来5年可能必备的IT技术
  16. SQL取整与时间差值返回
  17. 自定义ro.build.fingerprint
  18. 2021高考成绩等位线查询四川,泸州医学院的麻醉专业收分请问下四川考生一 – 手机爱问...
  19. 微信IOT模块 用户手册(串口向微信发送消息,串口与微信通讯)
  20. Qt下实现录制麦克风声音

热门文章

  1. Apache启动报错:Apache is running a threaded MPM
  2. 美国计算机音乐专业,美国大学音乐疗法专业Music therapy解析
  3. 【深度】被加班,狼性文化面纱下的奴性文化
  4. CPU缓存体系对Go程序的影响
  5. phpexcel mysql 导出_PHPEXCEL结合MYSQL+PHP实现数据库数据导出EXCEL实例
  6. DSPE-PEG-N3 磷脂PEG叠氮
  7. 3d抽奖html,3d抽奖(微信)
  8. VMware ESXI 5.5 死机 红屏问题
  9. 论文笔记:Show, Control and Tell:A Framework for Generating Controllable and Grounded Captions
  10. Centos 7 无法启动,Entering emergency mode问题解决