博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Iroha and Haiku II
阅读量:5104 次
发布时间:2019-06-13

本文共 1659 字,大约阅读时间需要 5 分钟。

标签: 状态压缩DP


题目描述

Haiku is a short form of Japanese poetry. A Haiku consists of three phrases with 5, 7 and 5 syllables, in this order.

Iroha is looking for X,Y,Z-Haiku (defined below) in integer sequences.
Consider all integer sequences of length N whose elements are between 1 and 10, inclusive. Out of those 10N sequences, how many contain an X,Y,Z-Haiku?
Here, an integer sequence a0,a1,…,aN−1 is said to contain an X,Y,Z-Haiku if and only if there exist four indices x,y,z,w(0≤x<y<z<w≤N) such that all of the following are satisfied:
ax+ax+1+…+ay−1=X
ay+ay+1+…+az−1=Y
az+az+1+…+aw−1=Z
Since the answer can be extremely large, print the number modulo 109+7.

Constraints

3≤N≤40

1≤X≤5
1≤Y≤7
1≤Z≤5

输入

The input is given from Standard Input in the following format:

N X Y Z

输出

Print the number of the sequences that contain an X,Y,Z-Haiku, modulo 109+7.

样例输入

3 5 7 5

样例输出

1

提示

Here, the only sequence that contains a 5,7,5-Haiku is [5,7,5].

分析

  • 用dp[i][j]来表示,长度为i的数组,最后几个数字的状态为j,且这个数组中不存在连续的一些数的和为X,Y,Z的方法数.
  • 状态j是这么定义的,把数组中的元素的二进制表示按照顺序串联起来,取后X+Y+Z位
  • 如果倒数第Z位,倒数第Y+Z位,倒数第X+Y+Z位都是1,那么就满足了题目中所说的条件.

代码

#include 
#include
#include
#include
using namespace std;typedef long long ll;const ll MOD=1e9+7;int n,a,b,c;ll dp[42][1<<17];int main(int argc, char const *argv[]){ scanf("%d%d%d%d", &n,&a,&b,&c); dp[0][0]=1; int base=(1<<(c-1))+(1<<(b+c-1))+(1<<(a+b+c-1)); for (int i = 0; i < n; ++i) { for (int j = 0; j < (1<<(a+b+c)); ++j) { for (int k = 0; k < 10; ++k) { int x=(j<<(k+1))+(1<

转载于:https://www.cnblogs.com/sciorz/p/9058610.html

你可能感兴趣的文章
PL/SQL Developer 8注册码
查看>>
IDEA拷贝操作
查看>>
Groovy中那些神奇注解之ToString
查看>>
如何在IDEA 中使用Git
查看>>
宇宙第一开发工具:vs2019 开发Python
查看>>
Tomcat Https配置
查看>>
百度地图 android SDKv2.2.0
查看>>
[贪心][模拟] Jzoj P5811 简单的填数
查看>>
react样式
查看>>
document.body
查看>>
大话存储系列21——存储系统内部IO 上
查看>>
检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法
查看>>
关于mybatis中基本类型条件判断问题
查看>>
RDD之二:原理
查看>>
Struts2.0 xml文件的配置(package,namespace,action)
查看>>
转载:【Oracle 集群】RAC知识图文详细教程(四)--缓存融合技术和主要后台进程
查看>>
2018-2019-2 网络对抗技术 20165301 Exp 9 Web安全基础
查看>>
将20180608141920转成date格式
查看>>
位操作
查看>>
待续--mysql中key 、primary key 、unique key 与index区别
查看>>