[题解]诸侯安置(dp+组合)
题目链接:这里~
题目描述:
很久以前,有一个强大的帝国,它的国土成正方形状,如图所示。
这个国家有若干诸侯。由于这些诸侯都曾立下赫赫战功,国王准备给他们每人一块封地(正方形中的一格)。但是,这些诸侯又非常好战,当两个诸侯位于同一行或同一列时,他们就会开战。如下图2—3为n=3时的国土,阴影部分表示诸侯所处的位置。前两幅图中的诸侯可以互相攻击,第三幅则不可以。
国王自然不愿意看到他的诸侯们互相开战,致使国家动荡不安。 因此,他希望通过合理的安排诸侯所处的位置,使他们两两之间都不能攻击。
现在,给出正方形的边长n,以及需要封地的诸侯数量k,要求你求出所有可能的安置方案数。(n≤l00,k≤2n2-2n+1)
由于方案数可能很多,你只需要输出方案数除以504的余数即可。
输入输出格式
输入格式:
仅一行,两个整数n和k,中间用一空格隔开。
输出格式:
一个整数,表示方案数除以504的余数。
说明
注意:镜面和旋转的情况属于不同的方案。
思路:难在转移,这个图并不规整,但是可以发现,每个封地只会影响横竖两排,我们考虑能否通过平移使得等价与原图形且图形方便转移。
如果我们将所有方块平移上去,可以发现,对于横竖排方块数量没有影响。
所以可以转移,转移方程需要用到乘法原理,记得初始化。
f[i][j]=f[i-1][j]+(f[i-1][j-1]*(lim[i]-(j-1));
代码:
#include<bits/stdc++.h> #define R register using namespace std; int n,k,f[320][320],lim[320],mo=504,Max; int main(){scanf("%d%d",&n,&k);Max=n*2-1;R int w=1;f[0][0]=1;for(R int i=1;i<=Max;i++)f[i][0]=1;for(R int i=1;i<=Max;i+=2){lim[i]=lim[i+1]=w;w+=2;}for( R int i = 1; i <= Max ; i++ )for( R int j = 1;j <= min(i,k) ; j++ )f[i][j]=(f[i-1][j]+(f[i-1][j-1]*(lim[i]-(j-1)))%mo)%mo;printf("%d",f[Max][k]%mo);return 0; }
转载于:https://www.cnblogs.com/sky-zxz/p/9831025.html
[题解]诸侯安置(dp+组合)相关推荐
- P1240 诸侯安置 [dp]
P1240 诸侯安置 这道题跟前面的"车的放置"是差不多的.只不过那道题碰巧可以用组合数解决,而这道题只能用dp. 首先要转换这个图,这个图这么奇怪显然无法dp. 我们只需要如第二 ...
- 【洛谷】 P1240 诸侯安置(递推)
洛谷P1240 诸侯安置 点击此处去OJ 问题描述 很久以前,有一个强大的帝国,它的国土成正方形状(需旋转45°来看),图1所示为n=3时的情况.这个国家有若干诸侯.由于这些诸侯都曾立下赫赫战功,因此 ...
- 诸侯安置 简单的递推
诸侯安置 Problem Description 很久以前,有一个强大的帝国,它的国土呈正方形状(转45度看),如图所示. 这个国家有若干诸侯.由于这些诸侯都曾立下赫赫战功,国王准备给他们每人一块封地 ...
- 诸侯安置(暴力搜索)
题目: 诸侯安置 [问题描述] 很久以前,有一个强大的帝国,它的国土成正方形状,如图1 所示 这个国家有若干诸侯.由于这些诸侯都曾立下赫赫战功,国王准备给他们每人一块封地 (正方形中的一格).但是,这 ...
- 【递归与递推】诸侯安置
[递归与递推]诸侯安置 题目描述 很久以前,有一个强大的帝国,它的国土成正方形状,如图2-2所示. 这个国家有若干诸侯.由于这些诸侯都曾立下赫赫战功,国王准备给他们每人一块封地(正方形中的一格).但是 ...
- dp——洛谷P1240 诸侯安置
https://www.luogu.org/problem/show?pid=1240 哇很好的一道题目诶: 和那个八皇后很像的,但是八皇后是一年前做的题了: 这个我们搜索就算了,虽然用一些技巧也不是 ...
- 【洛谷 P1240】诸侯安置
题目描述 很久以前,有一个强大的帝国,它的国土成正方形状,如图所示. 这个国家有若干诸侯.由于这些诸侯都曾立下赫赫战功,国王准备给他们每人一块封地(正方形中的一格).但是,这些诸侯又非常好战,当两个诸 ...
- 题解——洛谷P2734 游戏A Game 题解(区间DP)
题面 题目背景 有如下一个双人游戏:N(2 <= N <= 100)个正整数的序列放在一个游戏平台上,游戏由玩家1开始,两人轮流从序列的任意一端取一个数,取数后该数字被去掉并累加到本玩家的 ...
- 诸侯安置 搜索02 empire
这道题目的第一感觉肯定是很像八皇后!!!可是它并不是八后所以我们需要使用一种逆向思维去思考! 题目大家应该都知道了,我就不讲了,这里主要讲思路: 重新描述一下问题,其实就是在一个边长为 2n-1 的正 ...
- LuoguP1240 诸侯安置
本来是来练组合的,不知怎么又开始水普及DP了 #include <cstdio> #include <iostream> #include <cstring> #i ...
最新文章
- mysql killed进程不结束_php和mysql连接方式(短 长 池)
- OpenCV中 Mat 按行或按列合并程序
- 游戏风格化角色创建入门指南视频教程
- 算法学习:后缀数组 height的求取
- secureCRt中文乱码问题
- 协方差、相关系数---通俗解释
- django第三天(路由基础和路由分配)
- ubuntu 修该rm命令使删除文件到回收站
- rman命令学习-tina(上)
- 程序布置到服务器上速度慢_百战程序员python面试题总结---高级语法(4)
- 史上最强百度网盘下载限速破解方法大全
- 独家丨我在北工大看王校长吃热狗
- 软件测试用例设计方法等价划分法
- terrasolid时间设置
- 微信人脸SDK集成踩坑
- 二级mysql真题2019_2019年9月二级MySQL试题(汇总)
- .ipynb_checkpoints报错的解决方法
- 联想e470加装固态硬盘_联想e470能不能加固态硬盘?
- SpringCloud(3)--服务熔断降级
- scratch连接wedo2.0超详细教程(附资源)
热门文章
- c# 标准正太分布函数_数据处理中0-1规范化和标准化
- 版本控制工具(svn)
- 版本控制工具(GIT)
- python3 数据结构_python系列十一:python3数据结构
- python进阶之内置方法
- 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第3节 线程同步机制_6_解决线程安全问题_同步方法...
- java中的VO、PO、BO、DAO、POJO
- Mysql基本语句(个人笔记)
- 使用docker+tomcat部署jenkins
- Not a git repository (or any of the parent directories): .git