自己比不上小学生了QAQ

题目:有6个箱子A-F,每个箱子里有一把钥匙,拿到钥匙i就能打开箱子i。现在我们强行打开1,2箱子,取出里面的钥匙,然后用这些钥匙打开其他箱子……最后问有几种可能打开所有箱子。(小学题
解法:我们用f[i]表示可以打开i个箱子的放置数,首先推首项f[2]=2,因为1,2和2,1都是一样可以打开的,我们从n开始考虑第n个箱子的钥匙一定不能放在它自己的身上,因为这样必定无解,那么它就一定放置在1,2...n-1个箱子之中,我们把第n个箱子所放的钥匙和位于其他箱子之中有n的钥匙的箱子互换一下,然后把n号箱子删除,那么方案数就是f[n]=f[n-1](n-1);
所以方程就是f[i]=f[i-1]
(i-1);

#include <stdio.h>
int main()
{
    int f[7];f[2]=2;
    int i=2,n=6; while(i++!=n) f[i]=f[i-1]*(i-1);
    printf("%d\n",f[6]);
    return 0;
}
lpt的小屋 文章被收录于专栏

我想要一份甜甜的爱情

全部评论

相关推荐

看新闻上说,印度媒体都在密集发申请攻略,咨询量直接涨了30%印度、韩国、新加坡的申请意愿特别突出,感觉要成科技人才的新选择了~我的offer还没有呢!
ysb:哥们就不明白了,自己的人才都留不住,然后找外国,咋滴给外国人才高福利朝九晚五不加班是吗,然后我们大学生996,加班,无offer,摆地摊,送外卖是吗,有点意思,很英明
我的秋招日记
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务