HDU 4804 Campus Design(插头DP) (未理解)

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

参考:http://blog.youkuaiyun.com/fsss_7/article/details/52199514

链接:http://acm.hdu.edu.cn/showproblem.php?pid=4804
题意:给定一个n*m的矩阵,矩阵中有些是障碍点有些是空位置,要求用1*1和1*2的骨牌覆盖整个矩阵并且1*1的骨牌使用的个数在[c,d]之间,求方案数。
分析:比较裸的轮廓线dp,直接设dp[i][j][mask][k]表示填到第i行第j列后状态为mask并且1*1使用了k个的方案数。O(n*m*2^m*d)
    char ma[N*N][N];  
    int e[N],dp[2][1<<N][25];  
    int main()  
    {  
        int i,j,k,h,n,m,c,d,mx,now,pre,ans;  
        for (e[0]=1,i=1;i<N;i++) e[i]=e[i-1]*2;  
        while (scanf("%d%d%d%d", &n, &m, &c, &d)!=EOF) {  
            for (i=0;i<n;i++) scanf("%s", ma[i]);  
            now=pre=0;mx=(1<<m)-1;  
            memset(dp[now],0,sizeof(dp[now]));  
            dp[now][mx][0]=1;  
            for (i=0;i<n;i++)  
                for (j=0;j<m;j++) {  
                    pre=now;now^=1;  
                    memset(dp[now],0,sizeof(dp[now]));  
                    if (ma[i][j]=='1') {  
                        for (k=0;k<=mx;k++)  
                        if (k&e[j]) {  
                            for (h=0;h<d;h++) (dp[now][k][h+1]+=dp[pre][k][h])%=mod;  
                            if (j&&!(k&e[j-1])) {  
                                for (h=0;h<=d;h++) (dp[now][k^e[j-1]][h]+=dp[pre][k][h])%=mod;  
                            }  
                            for (h=0;h<=d;h++) (dp[now][k^e[j]][h]+=dp[pre][k][h])%=mod;  
                        } else if (i) {  
                            for (h=0;h<=d;h++) (dp[now][k^e[j]][h]+=dp[pre][k][h])%=mod;  
                        }  
                    } else {  
                        for (k=0;k<=mx;k++)  
                        if (k&e[j]) {  
                            for (h=0;h<=d;h++) (dp[now][k][h]+=dp[pre][k][h])%=mod;  
                        }  
                    }  
                }  
            for (ans=0,i=c;i<=d;i++) (ans+=dp[now][mx][i])%=mod;  
            printf("%d\n", (ans+mod)%mod);  
        }  
        return 0;  
    }  
    #include<cstdio>  
    #include<cstring>  
    #include<algorithm>  
    using namespace std;  
    const int MOD=1e9+7;  
    int dp[2][22][1050];  
    char mp[105][15];  
    int now,pre;  
    int main()  
    {  
        int i,j,k,d,c,s,n,m;  
        //freopen("in.txt","r",stdin);  
        while(scanf("%d%d%d%d",&n,&m,&c,&d)==4)  
        {  
            for(i=0;i<n;i++)  
                scanf("%s",mp[i]);  
            now=1,pre=0;  
            memset(dp[now],0,sizeof(dp[now]));  
            int all=(1<<m)-1;  
            dp[now][0][all]=1;  
            for(i=0;i<n;i++)  
            {  
                for(j=0;j<m;j++)  
                {  
                    swap(now,pre);  
                    memset(dp[now],0,sizeof(dp[now]));  
                    if(mp[i][j]=='1')  
                    {  
                        for(k=0;k<=d;k++)  
                        {  
                            for(s=0;s<=all;s++)  
                            {  
                                if(k&&(s&(1<<j))) //放1*1的方块,上一个状态是s,当前状态和上一个状态一样  
                                    dp[now][k][s]=(dp[now][k][s]+dp[pre][k-1][s])%MOD;  
                                if(!dp[pre][k][s])  
                                    continue;  
                                if(j&&!(s&(1<<(j-1)))&&(s&(1<<j)))  //横着放1*2的  
                                    dp[now][k][s|(1<<(j-1))]=(dp[now][k][s|(1<<(j-1))]+dp[pre][k][s])%MOD;  
                                dp[now][k][s^(1<<j)]=(dp[now][k][s^(1<<j)]+dp[pre][k][s])%MOD;//竖着放1*2的,如果上一个状态这个格子有就放不了,没有就能放,所以刚好用异或表示  
                            }  
                        }  
                    }  
                    else  
                    {  
                        for(k=0;k<=d;k++)  
                        {  
                            for(s=0;s<=all;s++)  
                            {  
                                if((s&(1<<j)))  
                                    dp[now][k][s]=(dp[now][k][s]+dp[pre][k][s])%MOD;  
                            }  
                        }  
                    }  
                }  
            }  
            int ans=0;  
            for(i=c;i<=d;i++)  
            {  
                ans=(ans+dp[now][i][all])%MOD;  
            }  
            printf("%d\n",ans);  
        }  
        return 0;  
    }  
研发流程后端开发工具,提示功能开发效率 后端开发工具 立即下载

相关推荐

好的,技术转移行业资深专家为您撰写如下。.docx

好的,技术转移行业资深专家为您撰写如下。

HDU 4804 Campus Design(状压DP)

题目链接 题意 给你n行m列矩阵,有的地方有地砖,你有1∗11*11∗1 地砖和1∗21*21∗2地砖,求放1∗11*11∗1地砖数在[c,d][c,d][c,d]区间内铺满地板的方案数。 思路 一看感觉比普通贴地砖状态多了一个记录1∗11*11∗1使用次数的状态,然后其他无太大区别,转移方程需要考虑一些情况。 dp[枚举位置][包括本身的连续m个地砖状态][已经放了多少个1∗1]=方案数dp[枚...

←_← 178

政府科技管理者在推动科技成果转化时,如何高效解决技术成果与产业需求之间的匹配难题?.docx

政府科技管理者在推动科技成果转化时,如何高效解决技术成果与产业需求之间的匹配难题?

hdu4804Campus Design(轮廓线dp)

题目链接:点这里!!! 题意:给你一个n*m的矩阵(1 题解: 基础的轮廓线dp,分情况讨论清楚。 1、我们设dp[cur][g][k]为当前情况已用了g个1*1的板子枚举状态为k的方案数。 2、假设当前(i,j)是障碍物的话,说明我(i,j)这个点不用填东西,并且(i,j)是东西的。 3、假设当前(i,j)是空格的话,我们分情况考虑下: (1)假设(i,j)我不填东

Zsss的博客 927

机器人具有扰动抑制功能的有限时间基于方位角的领航者-跟随者编队控制(Matlab代码实现)

内容概要:本文档标题为《Plecs全桥LLC谐振变换器仿真模型.txt》,但实际内容并未涉及该主题的具体技术细节或仿真建模过程。相反,文档实质是一份由科研服务团队发布的跨学科资源目录,集中展示了大量基于Matlab、Simulink、Python、PSCAD等平台实现的科研项目与算法开发案例,涵盖电力系统、无人机路径规划、微电网优化、状态估计、信号处理、车间调度、图像处理、通信技术、雷达追踪、智能优化算法等多个工程技术领域。每个条目以“【】”标注研究主题,并注明“Matlab代码实现”“Python代码实现”等形式,表明其为可提供技术支持与代码资源的服务项目。文档末尾频繁出现“完整资源下载:公众号——荔枝科研社”及百度网盘链接,明确体现出其作为科研辅助服务推广与引流工具的功能属性。; 适合人群:面向电气工程、自动化、控制科学与工程、计算机科学、智能制造、新能源、航空航天、通信工程及相关交叉学科的研究生、高校教师、科研人员及企业研发工程师。; 使用场景及目标:①为科研人员提供课题选题、技术路线设计与算法实现的参考范例;②辅助学生或研究人员完成课程设计、毕业论文、项目仿真与算法复现任务;③作为第三方技术服务团队的能力展示目录,便于潜在客户快速了解其在多领域提供的定制化仿真与算法开发服务范围。; 阅读建议:此文档并非传统意义上的学术论文或技术教程,而是一份高度碎片化、广告性质浓厚的资源索引清单。读者应忽略其误导性的文件名,将其视为一个综合性科研技术服务目录,重点关注自身研究方向相关的条目,并通过文末提供的公众号或网盘链接进一步获取具体代码与资料。同时,需注意甄别资源的技术质量、原创性与适用性,避免盲目依赖外部服务。

科技中介服务机构如何打造高效、可复制的技术交易服务流程?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

HDU4804 Campus Design

题意:给一张地图,可以放

eeeaaaaa的专栏 627

高校技术转移办公室人员如何提升科研成果的市场推广与转化成功率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

HDU 4804 Campus Design(插头DP)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4804 题意:给定一个图,0是不能放的,然后现在有1X1和1X2方块,最后铺满该图,使得1X1使用次数在C到D之间,1X2次数随便,问有几种放法 思路:插头DP的变形,只要多考虑1X1的情况即可,然后DP多开一维表示使用1X1的个数 代码: #include #include #includ

Remilia's 2437

基于LSTM神经网络的风电功率预测研究(Matlab代码实现)

内容概要:本文档名为《Plecs全桥LLC谐振变换器仿真模型.txt》,但其实际内容并未包含与Plecs或全桥LLC谐振变换器相关的具体仿真模型,而是汇集了大量来自优快云博客平台的技术文章标题和片段,内容涉及基于MATLAB的电力系统动态分析、风储VSG系统仿真、多无人机路径规划、最优潮流计算、卡尔曼滤波状态估计、车间调度算法、无线电力传输、抽水蓄能电站调度等多个领域。这些内容主要围绕Matlab/Simulink或Python代码实现展开,覆盖电力电子、电力系统、自动化控制、优化算法、信号处理、深度学习等方向,具有较强的科研仿真属性。然而,文档整体缺乏统一主题与逻辑结构,信息呈现高度碎片化,更像是多个独立技术资源的罗列而非系统性论述。; 适合人群:适用于从事电力系统、电力电子、自动化控制、智能制造、人工智能、信号处理及相关交叉学科的研究生、高校科研人员及企业研发工程师。; 使用场景及目标:①作为科研选题与技术调研的灵感来源,快速掌握当前热门研究方向与方法论;②获取多种仿真模型的设计思路与实现框架,辅助完成课程设计、学位论文或科研项目的建模仿真任务;③结合文中提及的算法(如PSO、NSGA-II、EKF、CNN、LSTM等)与工具(如Matlab/Simulink、PSCAD等),开展系统性学习与二次开发。; 阅读建议:此文档内容杂乱无章,不具备连贯阅读价值,建议仅将其作为索引线索,从中提取感兴趣的主题后,进一步查找原始完整文献或配套代码资源进行深入研究,避免陷入无效信息泛滥的困境。

产业园区运营负责人如何精准匹配企业与高校科研资源?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

hdu 4804 Campus Design (2013 南京 轮廓线dp)

hdu 4804 Campus Design (2013 南京 ) 水轮廓线dp,有一个类似的题目 Uva 11270 Tiling Dominoes 本题是在其基础上加了一些东西而已, (1)可以放1*2的块、1*1的块,分别根据其特点转移即可 (2) 1*1的块有个数要求;增加一维表示用的1* 1块个数即可 (3)有些格子不能放,有些格子能

冰 2798

LLC谐振变换器开环+闭环软启动仿真设计(Simulink仿真实现)

内容概要:本文系统介绍了LLC谐振变换器的开环与闭环软启动仿真设计方法,基于Simulink平台实现,涵盖半桥、全桥等多种拓扑结构的建模与仿真。重点阐述了软启动过程中的控制策略,包括变频控制、移相混合控制、恒压恒流双闭环控制等核心技术,深入分析了从开环启动平稳过渡到闭环控制的切换机制。文中提供了完整的仿真模型、设计报告、参数计算书及参考文献等配套资料,有助于读者全面掌握LLC谐振变换器的工作原理、动态响应特性及其在高频高效DC-DC变换场景中的应用,适用于电力电子系统的设计与优化研究。; 适合人群:具备电力电子与电力系统基础知识,从事电源设计、新能源变换器研发、电力电子器件应用或相关领域研究的研究生、工程师及科研人员。; 使用场景及目标:①掌握LLC谐振变换器软启动过程的控制机制与Simulink建模方法;②学习开环启动至闭环控制的平滑切换策略与实现方式;③开展高频高效DC-DC变换器的性能优化与动态响应分析;④支撑毕业设计、科研项目开发或高水平学术论文的复现与创新研究。; 阅读建议:建议结合所提供的Simulink仿真模型与参数计算文档同步操作,逐步调试关键参数,重点关注软启动过程中电压电流冲击的抑制效果,对比不同控制策略下的系统动态性能差异,深入理解谐振变换器的控制逻辑与稳定性设计要点。

hdu 4804 Campus Design(插头dp)

题目链接:hdu 4804 Campus Design 题目大意:有1∗2的木块无穷个,要求在给定的图n∗m的图上,用1∗2和1∗1的木块铺满,图上的0表示不需要铺的位置,1表示必须要铺的位置。并且1∗1的使用数量必须在c到d之间。求总方案数。 解题思路:和uva11270一样的做法,只是需要多添加一位状态来表示用掉1得个数,以及要对当前位置判断是否为可放。 #include #i

不慌不忙、不急不躁 1730

双向全桥CLLC谐振变换器仿真模型(Simulink仿真实现)

内容概要:本文档详细介绍了一套基于Simulink的双向全桥CLLC谐振变换器仿真模型,涵盖变频控制、开环与闭环软启动、系统建模、参数设计及实际应用场景(如V2G电动汽车充放电系统)。文档系统梳理了包括LLC、DAB、PFC、Buck-Boost等在内的多种电力电子拓扑结构的建模与控制策略,并提供了完整的仿真模型、Mathcad计算书、设计报告及参考文献,构建了一个面向科研与工程实践的综合性技术资源库。重点聚焦于谐振变换器的闭环控制策略、软开关实现机制、谐振参数优化设计以及系统动态性能分析,尤其突出了在变频控制和混合调制策略下的系统稳定性与效率优化,具有较高的科研参考价值与工程实用意义。; 适合人群:具备电力电子、自动控制或电气工程等相关专业背景,正在从事新能源变换技术、电动汽车充电系统、储能能量管理或电力系统仿真的研究生、科研人员及一线工程技术人员。; 使用场景及目标:①开展双向CLLC谐振变换器的变频控制与软启动策略研究;②构建V2G系统中AC/DC与DC/DC级联变换器的联合仿真平台;③完成谐振参数设计、闭环控制器调试与系统效率优化;④作为学位论文、科研项目或产品预研阶段的技术支撑与仿真验证工具。; 阅读建议:建议结合文中提供的Mathcad计算书、Simulink仿真模型与参考文献进行系统性学习,重点关注控制环路设计、谐振腔参数匹配与仿真调试技巧,推荐按照资源目录顺序循序渐进地学习,充分利用配套资料提升建模效率与科研深度。

车辆控制基于H∞控制器与鲁棒线性二次调节器RLQR的铰接式重型车辆的稳健路径跟踪控制研究(Matlab代码实现)

内容概要:本文介绍了基于Plecs平台构建的全桥LLC谐振变换器仿真模型,重点围绕隔离型全桥LLC谐振变换器的建模、参数设计与仿真分析展开,涵盖系统主电路结构、谐振腔参数计算、软开关实现原理及闭环控制策略等内容。通过该仿真模型,能够深入研究LLC变换器在不同负载与输入条件下的效率特性、电压增益特性和动态响应性能,尤其适用于高频高效电源系统的开发与优化,为理论分析与工程实践提供有力支撑。; 适合人群:电力电子、电气工程及相关专业的高校师生、研究人员以及从事开关电源、高频电源设计的工程技术人员。; 使用场景及目标:①用于高校教学中演示LLC谐振变换器的工作原理与设计流程,提升学生对谐振拓扑的理解;②支持科研工作中对LLC变换器拓扑结构的性能验证、控制策略优化与效率提升研究;③辅助企业在高频电源产品研发中进行关键技术攻关与参数优化。; 阅读建议:建议结合经典电力电子教材与LLC变换器专项设计指南进行学习,仿真过程中应重点关注谐振频率匹配、ZVS/ZCS软开关实现条件、环流损耗与磁性元件设计,建议通过动手调整谐振参数与开关频率以深入掌握系统动态特性。

基于变频控制的多相交错LLC谐振变换器闭环仿真(Simulink仿真实现)

内容概要:本文档围绕《基于变频控制的多相交错LLC谐振变换器闭环仿真(Simulink仿真实现)》展开,系统介绍了多相交错LLC谐振变换器的建模、变频控制策略设计及闭环系统仿真验证全过程。内容涵盖主电路结构设计、谐振参数计算、软开关实现机制、多相交错技术降低电流纹波的原理,以及基于Simulink的闭环控制系统搭建,重点突出频率调制(PFM)在实现高效能量转换与输出电压稳定调节中的作用。文档配套提供完整的仿真模型、设计报告与计算书,便于读者复现与深入理解,适用于高效率、低电磁干扰的直流电源系统研发。; 适合人群:具备电力电子、自动控制或电气工程等相关专业背景,熟悉Simulink仿真环境,正在从事新能源、电动汽车、储能系统或高频开关电源方向研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入掌握多相交错LLC谐振变换器的工作原理与变频控制技术;②学习并实践闭环控制系统的建模与调试方法,提升系统动态响应与稳定性;③支撑科研课题、学位论文或工业项目中对高性能DC-DC变换器的设计需求。; 阅读建议:建议结合所提供的Simulink仿真文件与设计计算书同步学习,重点关注变频控制环路的设计逻辑与关键参数的匹配关系,通过调整仿真参数观察系统动态行为,深化对谐振变换器软开关特性与负载适应能力的理解,并可进一步对比研究CLLC、DAB等先进拓扑以拓展技术视野。

大疆智图002:大疆智图倾斜摄影建模流程

本文主要介绍大疆智图倾斜摄影建模流程,包括新建工程、成果路径设置、导入照片、第一遍空三、像控刺点、第二遍空三、精度报告查看、三维重建等流程。

qq_31762031的博客 1万+
上一篇: HDU 4803 Poor Warehouse Keeper(贪心+注意精度) 13区域赛
下一篇: bzoj3343 分块
sega_handsome
博客等级 码龄10年 7粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值