• 回档|分苹果


    背景:今晚在tyvj参加了一下比赛,没想到可耻的跪了。第一题地球人都知道spfa,结果我写了个坐标类DP还得了30分……悲剧。唯一欣慰的是我用组合数学做出了第二题,奠定了我们学校有五个人冲进前六的基础。先发第二题好了。

     

    题目:由于tyvj比较坑,比赛的题目竟然没了!只能说下大体意思。给定n个苹果,要求分到3个袋子中。袋子是无序的,问有多少种情况,并对k取模。

     

    输入解释:第一行,输入两个整数n,k

    输出解释:输出只有一行,即方案总数对k取模的结果。

    输入样例: 11 10000

    输出样例: 9525

     

    题目分析:

           很明显,每个苹果有三种可能,即放在1,2,3号袋子中。于是n个苹果的总数就是3^n。

           我们不妨利用容斥原理对所有情况进行分类讨论:

           (1)当有两个袋子为0时。那么就会有0,0,全部;0,全部,0;全部,0,0三种情况。显然这应算是一种情况。之所以算是三种而不是六种(见下),是 因为当我们把全部苹果放入一个袋子时,显然与放置一个苹果是等价的。那么对于一个苹果,无疑只有一种情况。

           (2)对于剩余情况,我们不妨把三个袋子按苹果多少排序。例如1,2,3。显然这组数字有六种不同的顺序。也就是我们说得普通情况。

            因此我们可以得到公式:ans=(3^n-3)/6+1。事实上运用除法逆元还可以进一步简化,请同学们自行思考。(解释都到这里了,源代码就不用发了吧?事实上是代码被tyvj吞了……)

  • 相关阅读:
    HDU6060 RXD and dividing
    Knapsack in a Globalized World --多重完全背包
    hdu 6058 Kanade's sum
    矩形面积 HDU
    Bridge Across Islands POJ
    Manors HDU
    Harry Potter and J.K.Rowling HDU
    Polygons HDU
    Jungle Outpost HDU
    CRB and Farm HDU
  • 原文地址:https://www.cnblogs.com/Shymuel/p/4393550.html
Copyright © 2020-2023  润新知