2018 “百度之星”程序设计大赛 - 初赛(A) 度度熊看球赛 (DP)

http://acm.hdu.edu.cn/showproblem.php?pid=6377

 

思路:

dp[i][j] 表示前 i 对情侣,有 j 对坐在一起的方案数。
首先为了简便,我们把每对情侣中两个人看作是相同的两个人,最后乘上 2^n 即可。
最后要求 ans×(2N)!,也就是求出 i 对情侣坐位所有不同方案数。
然后由前 i 对递推转移到前 i+1 对 :
1、第 i+1 对在一起:
(1)第 i+1 对插入进另一对中间, dp[i+1][j] += dp[i][j] * j ;
(2)第 i+1 对不插入另一对中间,dp[i+1][j+1] += dp[i][j] * (2*i+1-j) ;
2、第 i+1 对不在一起:
(1)第 i+1 对的两个人分别插入另外两对中间,dp[i+1][j-2] += dp[i][j] * C(j,2) ;
(2)第 i+1 对的两个人只有一个人插入到另一对中间,dp[i+1][j-1] += dp[i][j] * C(j,1) ;
(3)第 i+1 对的两个人都不插入其它对里,dp[i+1][j] += dp[i][j] * C(2*i+1-j, 2) ;

 

代码:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int mod=998244353;
ll dp[1010][1010];
ll qpow(ll x,ll n)        //求x^n%mod
{
    ll ret=1;
    for(; n; n>>=1)
    {
        if(n&1) ret=ret*x%mod;
        x=x*x%mod;
    }
    return ret;
}

ll C(ll a,ll b)
{
    return a*(a-1)%mod*qpow(b,mod-2)%mod;
}
void init()
{
    dp[1][1]=2;
    for(int i=1; i<1002; i++)
    {
        dp[i+1][0]=(2*dp[i][0]%mod*C(2*i+1,2)%mod+2*i*2*dp[i][1]%mod+2*dp[i][2]%mod)%mod;
        for(int j=1; j<=i+1; j++)
        {
            dp[i+1][j]=(2*dp[i][j]%mod*j%mod+2*dp[i][j-1]%mod*(2*i+1-(j-1))%mod+2*dp[i][j+2]%mod*C(j+2,2)%mod+
                        2*dp[i][j]%mod*C(2*i+1-j,2)%mod+2*dp[i][j+1]%mod*((j+1)*(2*i+1-(j+1))%mod)%mod)%mod;
        }
    }
}
int main()
{
    ll n,d;
    init();
    while(~scanf("%lld%lld",&n,&d))
    {
        ll ans=0;
        if(n==1)
        {
            printf("%lld\n",2*d%mod);
            continue;
        }
        for(int i=0;i<=n;i++) ans=(ans+dp[n][i]*qpow(d,i)%mod)%mod;
        printf("%lld\n",ans);
    }
    return 0;
}

 

内容概要:本文介绍了如何使用Python识别图片和扫描PDF中的文字。首先,文章讲解了使用Spire.OCR for Python库来识别图片中的文字,包括安装库、配置OCR模型路径和语言设置、扫描图片以及保存识别后的文本。其次,详细描述了从图片中提取文字及其坐标位置的方法,使用户不仅能够获取文本内容,还能知道文本在图片中的具体位置。最后,文章还介绍了如何结合Spire.PDF for Python将PDF文件转换为图片格式,再通过OCR技术从中提取文字,适用于处理扫描版PDF文件。文中提供了完整的代码示例,帮助读者理解和实践。 适合人群:对Python编程有一定基础,希望学习或提高光学字符识别(OCR)技术的应用开发者,尤其是需要处理大量图片或PDF文档中文字信息的工作人员。 使用场景及目标:① 开发者可以利用这些方法自动化处理图片或PDF文档中的文字信息,提高工作效率;② 实现从非结构化数据(如图片、扫描件)到结构化数据(如文本文件)的转换,便于后续的数据分析和处理;③ 提供了一种解决纸质文档数字化的有效途径,特别是对于历史档案、书籍等资料的电子化保存。 其他说明:需要注意的是,OCR的准确性很大程度上取决于图片的质量,清晰度高、对比度好的图片可以获得更好的识别效果。此外,不同OCR库可能对特定语言或字体的支持程度不同,选择合适的库和配置参数能显著提升识别精度。在实际应用中,建议先进行小规模测试,优化参数后再大规模应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值