题目链接:http://nyoj.top/problem/1273

  • 内存限制:64MB 时间限制:1000ms

题目描述

ALPHA 小镇风景美丽,道路整齐,干净,到此旅游的游客特别多。CBA 镇长准备在一条道路南 面 4*N 的墙上做一系列的宣传。为了统一规划,CBA 镇长要求每个宣传栏只能占相邻的两个方格 位置。但这条道路被另一条道路分割成左右两段。CBA 镇长想知道,若每个位置都贴上宣传栏, 左右两段各有有多少种不同的张贴方案。 例如: N=6,M=3, K=2, 左,右边各有 5 种不同的张贴方案

输入描述

第一行: T 表示以下有 T 组测试数据 ( 1≤T ≤8 )
接下来有T行, 每行三个正整数 N M K 分别表示道路的长度,另一条道路的起点和宽度
(1≤ N ,M ≤ 1 000 000, 1≤ K ≤ 100000)

输出描述

每组测试数据,输出占一行:两个整数,分别表示左右两段不同的张贴方案数。由于方案总数
可能很大,请输出对 997 取模后的结果。

样例输入

2
6 3 2
5 3 2

样例输出

5 5
5 1

解题思路

a[i]为长度i的方案总数;
q[i]为长度为i,并且不可被纵向分开的方案总数(不能由两种更小的长度拼接起来)
很容易得到:a[i]=SUM(q[j]*a[i-j]),j<i.
现在有两个问题,首先是如何求得q[i],其次递推式的复杂度为O(n^2),很明显是不满足这题的数据量的。
我们先考虑第一个问题,多次尝试画出不能分开的方案数(很好找规律),
我们可以总结出一个规律:
i=1,q[i]=1;
i=2,q[i]=4;
i>3,当i为奇数时,q[i]=2,当i为偶数时,q[i]=3,
故a[i]=a[i-1]+4a[i-2]+2a[i-3]+3a[i-4]+2a[i-5]+3a[i-6]......+xa[1];
则a[i-2]=a[i-3]+4a[i-4]+2a[i-5]+3a[i-6]......+xa[1];
两式相减可得到:a[i]=a[i-1]+5a[i-2]+a[i-3]-a[i-4];

#include <bits/stdc++.h>
using namespace std;
int a[1100000];
int main() {int t, m, n, k;a[0] = a[1] = 1;a[2] = 5, a[3] = 11;for (int i = 4; i <= 1000000; i++)a[i] = (a[i - 1] + 5 * a[i - 2] + a[i - 3] - a[i - 4]) % 997;scanf("%d", &t);while (t--) {scanf("%d%d%d", &n, &m, &k);printf("%d %d\n", a[m - 1], a[n - k - m+1]);}return 0;
}

NYOJ - [第九届河南省程序设计大赛]宣传墙(DP)相关推荐

  1. NYOJ - [第九届河南省程序设计大赛]Decimal integer conversion(暴力)

    题目链接:http://nyoj.top/problem/1277 内存限制:64MB 时间限制:1000ms 特判: No 题目描述 XiaoMing likes mathematics, and ...

  2. 第九届河南省程序设计大赛 D 导弹发射

    第九届河南省程序设计大赛 D 导弹发射 内存限制:64MB 时间限制:1s Special Judge: No 题目描述: Alpha 机构研发出一种新型智能导弹,它能够在雷达检测到的区域内,选择一条 ...

  3. 【ACM省赛】第九届河南省程序设计大赛 B 宣传墙

    题目链接:http://nyoj.top/web/contest/problem/cid/13/num/B 题目: 用1*2的地砖,填满4*N的墙,有多少种方案. 题解: 状压dp,枚举每个状态的可能 ...

  4. 第九届河南省程序设计大赛 1273-宣传墙(java)

    1273-宣传墙 内存限制:64MB  时间限制:1000ms  Special Judge: No accepted:6  submit:12 题目描述: ALPHA 小镇风景美丽,道路整齐,干净, ...

  5. 第九届河南省程序设计大赛 A 表达式求值

    题目描述: 假设表达式定义为: 1. 一个十进制的正整数 X 是一个表达式. 2. 如果 X 和 Y 是 表达式,则 X+Y, X*Y 也是表达式; *优先级高于+. 3. 如果 X 和 Y 是 表达 ...

  6. 第七届河南省程序设计大赛~~海岛争霸(nyoj 1248)

    海岛争霸 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加勒比海盗,你知道吧?杰克船长驾驶着自己的的 ...

  7. 第七届河南省程序设计大赛——A 海岛争霸

    第七届河南省程序设计大赛 A 海岛争霸 内存限制:64MB 时间限制:1s Special Judge: No 题目描述: 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加勒比海 ...

  8. nyoj1249 物资调度 (第七届河南省程序设计大赛)

    物资调度 时间限制: 1000 ms  |  内存限制: 65535 KB 难度: 2 描述 某地区发生了地震,灾区已经非常困难,灾民急需一些帐篷.衣物.食品和血浆等物资.可通往灾区的道路到处都是塌方 ...

  9. nyoj1273 河南省第九届省赛_宣传墙、状压DP+矩阵幂加速

    宣传墙 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 ALPHA 小镇风景美丽,道路整齐,干净,到此旅游的游客特别多.CBA 镇长准备在一条道路南 面 4*N 的墙上做 ...

最新文章

  1. Windows域环境下部署ISA Server 2006防火墙(四)
  2. PHP删除数组(array一维)中指定的某个值 (转)
  3. DotNetSpeech.dll的使用
  4. Python基础教程:连接列表的八种方法,你都知道吗?
  5. (boost::mp11::mp_rotate_left相关用法的测试程序
  6. 第十一届蓝桥杯赛后总结 —— 两年征战蓝桥,惜败来年再战。
  7. linux, configure --prefix=/有什么用
  8. VBA 精选示例代码库
  9. 云上安全工作乱如麻,等保2.0来一下
  10. 面向对象基础——static关键字和代码块的使用
  11. 什么是E-MapReduce
  12. Junit下获取src/test/resource路径
  13. linux 终端 画圆,Linux Bash Shell快速入门
  14. SpringBoot报错:If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
  15. [译] 网站设计综合指南
  16. VB.NET Crystal Reports 水晶报表 自定义工具栏
  17. 【Linux】yum(Yellow dog Updater Modified)使用简介
  18. 点燃我温暖你 爱心代码python
  19. 【管理篇 / 登录】❀ 03. USB线连接登录 ❀ FortiGate 防火墙
  20. 常见安全漏洞及整改建议

热门文章

  1. 这位印度小哥,拯救了山河日下的微软帝国
  2. 喜茶多肉瓜瓜 | 埃德珈奶茶饮品培训,饮品配方做法制作教程
  3. Java读写Excel原来这么简单
  4. 【红黑树】都这样讲了,不会还有人不会红黑树吧
  5. php如何判断emoji字符串,PHP实现识别带emoji表情的字符串
  6. 华为畅享10与10s有什么区别?哪个更好
  7. 2D动画设计制作软件:Cartoon Animator 中文版win/mac版
  8. JD京东爬虫-商品评论爬虫-----附源码
  9. 串口服务器采集需要通讯协议么,C2000-A2-SDX6000-CX1
  10. JZJZJZ---数组中出现次数超过一半的数字