zoukankan      html  css  js  c++  java
  • 回档|分苹果

    背景:今晚在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吞了……)

  • 相关阅读:
    在MAC系统的eclipse里打开android sdk manager
    在MAC上搭建eclipse+android开发环境以及eclipse的svn插件的安装
    C语言入门
    变量和数据类型
    兼容 FF&IE 的替换鼠标选择文字方法(转载)
    JavaScript 中在光标处插入添加文本标签节点 详细方法
    jquery获取鼠标位置
    转:javascript Range对象跨浏览器常用操作
    日省三思
    jQuery强大的jQuery选择器 (详解)[转]
  • 原文地址:https://www.cnblogs.com/Shymuel/p/4393550.html
Copyright © 2011-2022 走看看