HDU 5155 Harry And Magic Box --DP

Screenshot_2026-11-03-16-23-09-34.jpg 立即下载

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#define Mod 1000000007
#define lll __int64
using namespace std;

lll c[55][55];
lll dp[55][55];

void calc()
{
    for(int i=0;i<=51;i++)
    {
        c[i][0] = 1;
        for(int j=1;j<=i;j++)
            c[i][j] = (c[i-1][j-1]+c[i-1][j])%Mod;
    }
}

int main()
{
    int n,m,i,j,k,t;
    calc();
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        memset(dp,0,sizeof(dp));
        dp[0][0] = 1;
        for(i=1;i<=n;i++)               //第i行
        {
            for(k=1;k<=m;k++)           //这一行有多少个亮
            {
                for(j=0;j<=k;j++)       //上一行有多少个亮
                {
                    for(t=max(1,k-j);t<=k;t++)   //这一行放多少个,至少放一个
                    {
                        dp[i][k] = (dp[i][k]+dp[i-1][j]*c[m-j][k-j]%Mod*c[j][t-(k-j)]%Mod)%Mod;
                    }
                }
            }
        }
        printf("%I64d\n",dp[n][m]%Mod);
    }
    return 0;
}

题意:nxm的棋盘,要求每行每列至少放一个棋子的方法数。

解法:首先可以明确是DP,这种行和列的DP很多时候都要一行一行的推过去,即至少枚举此行和前一行。

dp[i][j]表示前 i 行有 j 列都有了棋子,且每行也有棋子。

这题做法: 从第1行到第n行,枚举这一行有k列已至少有一个,再枚举前一行有j列至少有一个,然后枚举这一行新放多少个棋子t,至少一个(因为每行至少一个)

那么有 dp[i][k] += dp[i-1][j]*C[m-j][k-j]*C[j][t-(k-j)], C表示组合数

C[m-j][k-j]表示新增的那些原来没棋子现在有棋子的列k-j列分别可以放到上一行没放的地方m-j个地方,这样放会增加至少有一个棋子的列

C[j][t-(k-j)]表示剩下的在原来那j个有棋子的列去放,这样放不会增加至少有一个棋子的列。

原网址:http://www.cnblogs.com/whatbeg/p/4200116.html


研发流程后端开发工具,提示功能开发效率 后端开发工具 立即下载

相关推荐

快手商业化风控内容审核场景下的大模型早期探索与应用

在处理大量的自动语音识别(ASR)输出时,面临的主要挑战之一是文本的冗长和格式混乱,这严重影响了审核人员的阅读效率。为了解决这一问题,我们利用大模型的理解能力对文本进行智能总结,可以显著优化文本内容,使其更加清晰并且具有可读性。该方式极大地提高了审核过程的效率,审核人员可以更快地处理信息,减少了处理时间和劳动强度。

kuaishoutech的博客 2740

hdu 5155 Harry And Magic Box(DP)

题目链接:hdu 5155 Harry And Magic Box dp[i][j]表示i∗j的矩阵方案数,dp[i][j]从dp[i−k][j−1]中转移,枚举前面j-1列中k行为空,那么这些行在第j列一定有宝石。 #include #include #include using namespace std; typedef long long ll; const ll

不慌不忙、不急不躁 1318

TC397 EB配置ADC软件触发:从零实现周期采样与中断处理

本文详细介绍了如何在Infineon AURIX TC397芯片上使用EB Tresos工具配置ADC软件触发,实现周期采样与中断处理。通过硬件连接、EB模块配置、代码初始化及数据处理的全流程解析,帮助开发者快速掌握ADC软件触发技术,提升嵌入式系统开发效率。

root9的博客 234

HDU 5155 Harry And Magic Box DP题

Harry And Magic Box Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 196    Accepted Submission(s): 97 Problem Description One day, Harry go

小人物的草稿本 1157

保姆级教程:用torch.profiler给你的vLLM推理做个“全身体检”(附Perfetto可视化分析)

本文提供了一份详细的vLLM推理性能分析教程,通过torch.profiler和Perfetto工具链实现从数据采集到可视化分析的全流程。文章涵盖了环境配置、性能数据采集、trace文件解析以及Perfetto可视化分析,帮助开发者优化大模型推理服务的性能,显著降低计算资源消耗。

weixin_29041767的博客 359

图解说明JLink驱动与目标板电源匹配的关键细节

深入讲解JLink驱动安装及使用过程中,如何正确匹配目标板电源,避免常见通信故障。通过图解方式清晰展示关键连接细节,确保调试稳定可靠,是嵌入式开发中不可或缺的实战经验分享。

weixin_42173218的博客 431

HDU 5155 Harry And Magic Box dp

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5155 题意: 给n*m的零一矩阵,问它的左视图和正视图都为全1的所有情况。 题解: n,m不超过50,所以可以跑O(n^4); 另dp[i][j]代表前i行(每一行至少放一个,因为这样就可以只考虑列会不会为空就可以了)中有j列不全为0,那么有状态转移方程: dp[i][k]+=dp[i...

weixin_30648963的博客 153

四足狗机器人硬件开发技术栈详解

本文系统介绍了四足狗机器人的硬件开发技术,重点分析了五大核心模块:机械结构(骨架设计)、动力系统(关节驱动)、感知系统(环境监测)、控制系统(决策中枢)和电源系统(能源管理)。文章详细阐述了各模块的选型标准、技术要点和协同设计原则,提供了从需求定位到组装调试的完整开发流程,并针对常见问题给出解决方案。随着材料轻量化、模块标准化和AI集成化的发展趋势,四足机器人硬件将向更灵活、更智能的方向演进,为工业巡检、应急救援等场景提供更强大的移动平台支持。

start_up_go的博客 284

hdu5155(Harry And Magic Box) DP+组合容斥原理 BC25

hdu5155(Harry And Magic Box) DP+组合容斥原理 BC25

LH 752

基于深度学习的行人车辆检测与计数系统(UI界面+YOLOv8/v7/v6/v5代码+训练数据集)

从YOLOv1到最新的YOLOv8,其网络结构、训练策略和损失函数不断优化,性能持续提升。image_path, _ = QFileDialog.getOpenFileName(self, "选择图片文件", "", "Image Files (*.jpg *.png *.jpeg *.bmp)")video_path, _ = QFileDialog.getOpenFileName(self, "选择视频文件", "", "Video Files (*.mp4 *.avi *.mov *.mkv)")

YOLO 227

Win7/10/11文件拖拽导致资源管理器闪退问题

最近老是遇到把文件从资源管理器拖动到微信或者浏览器时,资源管理器直接闪退的问题,一开始在公司遇到了还以为是电脑配置太低,直到被封闭在家办公,发现自己的高级电脑也有这个问题,那就来了解了解问题是出在什么地方把。

Nicer_feng's blog 1万+

HDU 5155 Harry And Magic Box( DP )

Harry And Magic Box Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 87Accepted Submission(s): 44 Problem Description One day, Harry got a...

weixin_33775582的博客 136

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

HDU-5155 Harry And Magic Box(DP,组合数)

Harry And Magic BoxOne day, Harry got a magical box. The box is made of n*m grids. There are sparking jewel in some grids. But the top and bottom of the box is locked by amazing magic, so Harry can’t s

Eiffel的博客 406

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

HDU5155 Harry And Magic Box

Harry And Magic Box

ZYL的博客 518

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

HDU - 5155 Harry And Magic Box

问题描述 一个盒子由n*m个格子组成,有一些格子里会有闪闪发光的宝石。 现在有求盒子从左边看过去,每一行都闪烁着光芒,从前面看过去,每一列也都闪烁着光芒。 问:盒子里的宝石有多少种分布情况。 答案有可能很大,所以输出答案对1000000007取模。 输入描述 多组输入数据 每组数据一行,输入两个数n m表示盒子的大小,0≤n,m≤50 输出描述 每组数据输出一行,

小G的ACM之路 1450

hdu 5155 Harry And Magic Box(递推)

Harry And Magic Box Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 625    Accepted Submission(s): 294 Problem Description One day,

TUT我好菜啊 620

hdu 5155 Harry And Magic Box BC#25比赛1002

Harry And Magic Box Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 237    Accepted Submission(s): 120 Problem Description One day,

东篱南山下的七柳先森丶 774

HDU-5155 Harry And Magic Box

题目描述 在\(n*m\)的矩阵内每一行每一列都有钻石,问钻石分布的种类? 答案有可能很大,所以输出答案对\(1000000007\)取模。 Input 对于每个测试用例,有两个整数\(n\)和\(m\)表示框的大小。\(0< N,M<50\) Output 输出每组数据的分发数. Sample Input 1 1 2 2 2 3 Sample Output 1 7 25 这...

162

hdu5155---Harry And Magic Box

Harry And Magic Box Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 131    Accepted Submission(s): 64 Problem Description One day, Harr

Alex 825

HDU 5155 Harry And Magic Box

问题描述 有一天,哈利得到了一个神奇的盒子。这个盒子由n*m个格子组成,有一些格子里会有闪闪发光的宝石。但是盒子的顶部和底部都被神奇的魔法封印着,所以哈利没办法从顶部和底部看到盒子的内部。然而,盒子的四边都是透明的,哈利可以从盒子的四边看到里面的情况。哈利发现,这个神奇的盒子,从左边看过去,每一行都闪烁着光芒,从前面看过去,每一列也都闪烁着光芒。哈利想知道,盒子里的宝石有多少种分布情况。答案有可

alpc_wt的专栏 742

Harry And Magic Box

import java.util.Scanner; //http://acm.hdu.edu.cn/showproblem.php?pid=5155 public class Main { public static int[][] c; public static int[] bi; public static int len = 55; public static int mod

Yukar_syt的专栏 852

【CUGBACM15级BC第25场 B】hdu 5155 Harry And Magic Box

递归+组合数

Gzbgreat的博客 357

Hdu 5155 Harry And Magic Box

在n×mn \times m的盒子中有多少种放置石头的方案使得每一行每一列都至少有一个石头(0≤n,m≤50)(0 \le n,m \le 50)这个dp计数的状态感觉也是十分的炫酷dpi,jdp_{i,j}表示前ii行每一行都至少有一个石头并且有且仅有jj列有石头(也就是剩下m−jm-j列都是空列)的方案数。这样的话答案就是dpn,mdp_{n,m}然后我们考虑状态转移,考虑状态dpi,jdp_{

lambda QAQ 571

hdu 5155 Harry And Magic Box

题意:一个n*m的网格,每行每列都有珠宝。问有多少种不同的珠宝摆放方式能满足要求。         思路:dp。dp(i,j)表示n=i,m=j时的答案。因为n和m等价,可以设i>=j。显然,当j=1时,dp(i,j)=1,然后根据dp(i,j)可以推出dp(i,j+1)。比如你现在要计算dp(i,j),并且珠宝的放置时一列一列放的,你现在已经放好了前j-1列,需要摆放最后一列,前面的每一列肯定

A Cube Master 663
上一篇: 489F. Special Matrices(dp)
下一篇: HDU5159 Card
classic_YZ
博客等级 码龄12年 3粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值