[jzoj]2938.【NOIP2012模拟8.9】分割田地
Link
https://jzoj.net/senior/#main/show/2938
Description
地主某君有一块由2×n个栅格组成的土地,有k个儿子,现在地主快要终老了,要把这些土地分给这些儿子。分给每个儿子的土地最小的单位是一个栅格,同时,分给同一个儿子的土地要求要相邻连续的。地主觉得分给某个儿子的土地面积至少有一个栅格,但是具体多少可以随意。
请问,聪明的你,能够算出地主一共有多少种分土地的方法吗?也就是说要求把2*n的栅格分成k个连通区域,每个区域至少有一个栅格。
Solution
10~90分
应该都是正解某些细节没有处理好,或者可以打个递归暴力做一下,可以得到少量的分数
100分
这道题是道很好的DP题目,准确来说是递推,因为它有许多情况需要讨论。
我们设f[i,k,0/1]表示你选到第i列,其中分配给k个儿子,第i列两个栅格分配给不同一个儿子为0,反之,为1。
关键是很难想到转移。
其中有9种情况,其实应该有12种情况,因为有的,状态一样,但是情况不一样。
[1]、f[i,k,0]:=f[i,k,0]+f[i-1,k-2.0]
[2]、f[i,k,0]:=f[i,k,0]+f[i-1,k-2,1]
[3]、f[i,k,0]:=f[i,k,0]+f[i-1,k-1,1]*2
[4]、f[i,k,0]:=f[i,k,0]+f[i-1,k-1,0]*2
[5]、f[i,k,0]:=f[i,k,0]+f[i-1,k,0]
[6]、f[i,k,1]:=f[i,k,1]+f[i−1,k−1,0]
[7]、f[i,k,1]:=f[i,k,1]+f[i-1,k-1,1]
[8]、f[i,k,1]:=f[i,k,1]+f[i-1,k,0]*2
[9]、f[i,k,1]:=f[i,k,1]+f[i-1,k,1]
状态怎么来呢?与前一列的状态有关,具体可以分成如下9种。盗用别人的图片

自己手推一下,非常容易可以的出来,故本题就迎刃而解了。没有想到递推如此强大。
Code
uses math;
const
maxn=;
var
n,m,i,k:longint;
f:array[..,-..,..] of int64;
begin
readln(n,m); f[,,]:=;
f[,,]:=; for i:= to n do
for k:= to min(i*,m) do
begin
f[i,k,]:=(f[i,k,]+f[i-,k-,]+f[i-,k-,]+f[i-,k-,]*+f[i-,k-,]*+f[i-,k,]) mod maxn;
f[i,k,]:=(f[i,k,]+f[i-,k-,]+f[i-,k-,]+f[i-,k,]*+f[i-,k,]) mod maxn;
end; writeln((f[n,m,]+f[n,m,]) mod maxn); writeln(chr());
end.
[jzoj]2938.【NOIP2012模拟8.9】分割田地的更多相关文章
- JZOJ【NOIP2012模拟8.9】2020.10.5 T1
逐个击破 题目 Description 三大战役的平津战场上,傅作义集团在以北平.天津为中心,东起唐山西至张家口的铁路线上摆起子一字长蛇阵,并企图在溃败时从海上南逃或向西逃窜.为了就地歼敌不让其逃走, ...
- 洛谷P3145 [USACO16OPEN]分割田地Splitting the Field
P3145 [USACO16OPEN]分割田地Splitting the Field 题目描述 Farmer John's NN cows (3 \leq N \leq 50,0003≤N≤50,00 ...
- JZOJ【NOIP2013模拟联考14】隐藏指令
JZOJ[NOIP2013模拟联考14]隐藏指令 题目 Description 在d维欧几里得空间中,指令是一个长度为2N的串.串的每一个元素为d个正交基的方向及反方向之一.例如,d = 1时(数轴) ...
- 【NOIP2012模拟8.7】JZOJ2020年8月8日提高组T1 奶牛编号
[NOIP2012模拟8.7]JZOJ2020年8月8日提高组T1 奶牛编号 题目 作为一个神秘的电脑高手,Farmer John 用二进制数字标识他的奶牛. 然而,他有点迷信,标识奶牛用的二进制数字 ...
- [jzoj 6092] [GDOI2019模拟2019.3.30] 附耳而至 解题报告 (平面图转对偶图+最小割)
题目链接: https://jzoj.net/senior/#main/show/6092 题目: 知识点--平面图转对偶图 在求最小割的时候,我们可以把平面图转为对偶图,用最短路来求最小割,这样会比 ...
- [jzoj 5664] [GDOI2018Day1模拟4.6] 凫趋雀跃 解题报告(容斥原理)
interlinkage: https://jzoj.net/senior/#contest/show/2703/3 description: solution: 考虑容斥原理,枚举不合法的走的步数 ...
- [jzoj 6101] [GDOI2019模拟2019.4.2] Path 解题报告 (期望)
题目链接: https://jzoj.net/senior/#main/show/6101 题目: 题解: 设$f_i$表示从节点$i$到节点$n$的期望时间,$f_n=0$ 最优策略就是如果从$i, ...
- [jzoj 6093] [GDOI2019模拟2019.3.30] 星辰大海 解题报告 (半平面交)
题目链接: https://jzoj.net/senior/#contest/show/2686/2 题目: 题解: 说实话这题调试差不多花了我十小时,不过总算借着这道题大概了解了计算几何的基础知识 ...
- [jzoj 6080] [GDOI2019模拟2019.3.23] IOer 解题报告 (数学构造)
题目链接: https://jzoj.net/senior/#main/show/6080 题目: 题意: 给定$n,m,u,v$ 设$t_i=ui+v$ 求$\sum_{k_1+k_2+...+k_ ...
随机推荐
- Netty 源码分析
https://segmentfault.com/a/1190000007282628 netty社区-简书闪电侠 :https://netty.io/wiki/related-articles.ht ...
- 第九节:深究并行编程Parallel类中的三大方法 (For、ForEach、Invoke)和几大编程模型(SPM、APM、EAP、TAP)
一. 并行编程 1. 区分串行编程和串行编程 ①. 串行编程:所谓的串行编程就是单线程的作用下,按顺序执行.(典型代表for循环 下面例子从1-100按顺序执行) ②. 并行编程:充分利用多核cpu的 ...
- 简单管理员权限与几个常用的PHP 常用函数,in_array(),explode(),implode(),join(),str_replace()
先把今天要用的几个函数罗列出来: //explode()转换成数组,implode()转化成字符串 explode("分隔符",需要被分割的字符串或变量) $priv=" ...
- UE4材质特别属生记录
tangent space normal 切线空间法线 材质默认使用的切线空间法线,可切换为对象空间法线(彩色贴图) Separate Translucency 单独半透明 允许半透明被渲染到一个单独 ...
- Python中应该使用%还是format来格式化字符串?
转载自http://www.cnblogs.com/liwenzhou/p/8570701.html %的特点是,前面有几个%,后面的括号里就得有几个参数,如果只有一个%,括号可以省略 基本格式 'a ...
- dubbo监控中心与admin管理项目的使用
监控中心与admin管理项目都是针对特定的注册中心进行监控,因此需要配置对应的注册中心的地址,或者在dubbo.properties或者在applications.properties文件配置. == ...
- codeforces 893F - Physical Education Lessons 动态开点线段树合并
https://codeforces.com/contest/893/problem/F 题意: 给一个有根树, 多次查询,每次查询对于$x$i点的子树中,距离$x$小于等于$k$的所有点中权值最小的 ...
- MS SQL Server 查询元数据
use test -- 查询数据库中所有的表和架构名称select SCHEMA_NAME(schema_id) as table_schema_name, name as table_name fr ...
- IIS配置页面重写(配合插件url-rewrite2去除页面后缀名)
本来一直想了解浏览器地址栏中url后缀名如何去除,今天正好抽空折腾一下. 下面参考一位博友文章(出处见文章末尾),基于windows平台(windows7)详细介绍. 1. URL重写组件url-re ...
- 再见,Python!你好,Go语言
Go 语言诞生于谷歌,由计算机领域的三位宗师级大牛 Rob Pike.Ken Thompson 和 Robert Griesemer 写成.由于出身名门,Go 在诞生之初就吸引了大批开发者的关注.诞生 ...