10532: 花

题目描述

某乔为了解花的生长习性,采集了很多春花来研究。
但其中混杂了一些普通的花,为了区别它们,某乔研究出春花的一些特征:春花有S种形态,每天都会展现出某种形态。在N天中,如果有且仅有一次:连续3天都是某种形态,那么它就是一朵春花。
例如:假设每天的形态分别为:AABBBC,那么这就是一朵春花。
但例如:AAABCDDDEEF,AABBBBC,YHNDSB就不是春花。
第一个因为A和D各有1次连续三天是同一种形态。
第二个在[3, 6]天中,形态B存在2次连续三天是相同的。
第三个因为辱骂出题人没有出现连续三天是同一形态。
现在,某乔想知道,给出N, S,一共存在多少种春花可能表现的形态?答案可能很大,对10^9+7取模

输入

一个整数T,表示测试数据组数。
每组测试数据占一行,两个整数,分别表示L和S。

输出

对每组数据,输出一个整数表示答案。

样例输入

复制样例数据

1
3 7

样例输出

7

提示

一共有7种形态,每种形态能构成1个方案。

对于60%的数据,L≤30,S≤26。
对于80%的数据,L≤10000,S≤26。
对于100%的数据,L≤100000,S≤100000。

思路:

dp[i][j][k] 表示i位置已经有j个连续的字母

k=0/1  表示当前是否已经有3个连续的字母出现

代码:

#include <bits/stdc++.h>using namespace std;
const int maxn = 100005;
const int mod = 1e9+7;
typedef long long ll;
ll dp[maxn][5][2];
int main()
{int T;scanf("%d",&T);while(T--){ll n,s;scanf("%lld%lld",&n,&s);memset(dp,0,sizeof(dp));dp[1][1][0] = s;for(ll i=2;i<=n;i++){dp[i][1][0] = ((dp[i-1][2][0]%mod+dp[i-1][1][0]%mod)%mod*(s-1))%mod;dp[i][2][0] = dp[i-1][1][0];dp[i][3][1] = dp[i-1][2][0];dp[i][2][1] = dp[i-1][1][1];dp[i][1][1] = ((dp[i-1][1][1]%mod+dp[i-1][2][1]%mod+dp[i-1][3][1]%mod)%mod*(s-1)%mod)%mod;}ll ans = 0;ans = (dp[n][1][1]%mod+dp[n][2][1]%mod+dp[n][3][1]%mod)%mod;printf("%lld\n",ans);}return 0;
}

转载于:https://www.cnblogs.com/hao-tian/p/10283669.html

10532: 花 [dp]相关推荐

  1. LQ0069 李白打酒加强版【DP】

    题目来源:蓝桥杯2022初赛 C++ B组I题 题目描述 话说大诗人李白,一生好饮.幸好他从不开车. 一天,他提着酒壶,从家里出来,酒壶中有酒 2 斗.他边走边唱: 无事街上走,提壶去打酒. 逢店加一 ...

  2. 2019杭电多校第7场 K Kejin Player HDU 6656(数学推导)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6656 题目大意:对于每一个等级,可以花ai元,有pi概率升级,如果升级失败就退到xi级,问从li级升到 ...

  3. NYOJ 1023 还是回文(DP,花最少费用形成回文串)

    1 /* 2 题意:给出一串字符(全部是小写字母),添加或删除一个字符,都会产生一定的花费. 3 那么,将字符串变成回文串的最小花费是多少呢? 4 5 思路:如果一个字符串增加一个字符 x可以形成一个 ...

  4. D19-Acwing-实现DP第三节相关代码课程完结撒花~

    刚刚写了一个小时的日记,自己真的很幸运了,要知道珍惜呀!!!不要给自己太大压力,享受过程!!!加油!! 今天计划先实现昨天看的dp第三节,虽然有点难,但应该问题不大:然后,复习之前的代码,下午看贪心啦 ...

  5. 【算法】动态规划+“背包九讲”原理超详细讲解+常见dp问题(9种)总结

    目录 一.动态规划(DP) 二.背包九讲 (1)完全背包 P1616 疯狂的采药(完全背包) (2)01背包 滚动数组 一维数组 P1048 采药(01背包) 01背包表格图示 (3)多重背包 整数拆 ...

  6. c语言dp状态转移方程,[总结-动态规划]经典DP状态设定和转移方程

    马上区域赛,发现DP太弱,赶紧复习补上. #普通DP CodeForces-546D Soldier and Number Game 筛法+动态规划 待补 UVALive-8078 Bracket S ...

  7. 宋体节点hdoj 1520 Anniversary party(树形dp)

    每日一贴,今天的内容关键字为宋体节点 标题链接 按照级等我们可以建一颗树,如图 我们可以把一个节点当作一个人,每一个节点都有一个权重.按照标题意思,如果我们取了某个节点,那么他的父节点和子节点都是不能 ...

  8. “ px”,“ dip”,“ dp”和“ sp”有什么区别?

    Android度量单位有什么区别? 像素 蘸 dp SP #1楼 我将详细说明dp如何精确转换为px: 如果在mdpi设备上运行,则150 x 150 px图像将占用150 * 150 dp的屏幕空间 ...

  9. NOI2007 货币兑换 - CDQ分治斜率优化dp

    斜率优化dp维护一个凸壳.如果\(x, y\)坐标都递增,可以用单调队列,如果只有\(x\)递增,可以在凸壳上二分斜率,如果\(x, y\)都不递增,则需要在凸包中插入,可以用平衡树或cdq分治维护. ...

最新文章

  1. Earth to developers: Grow up!
  2. 三菱gs触摸屏进入设定菜单_三菱触摸屏常用功能设置 以及界面调整
  3. Android 实现图片的单点缩放、拖动、旋转
  4. 错误:Parameter ‘0‘ not found.Available parameters are [arg1, arg0, param1, param2]的解决方法
  5. Tungsten Fabric SDN — VNC API — API Client 的 Python SDK
  6. 案例实操:Azkaban调度spark作业
  7. Oracle触发器简单使用记录
  8. WPF不同线程之间的控件的访问
  9. Asp.net禁用site.Mobile.Master
  10. rooibos茶中单宁酸研究
  11. GMTC 大前端时代前端监控的最佳实践 1
  12. 第8章 静态路由配置
  13. 矢量绘图工具:Sketch 78 for mac
  14. BZOJ4435 : [Cerc2015]Juice Junctions
  15. kno DNS 03 Tips - DNS Cookies
  16. 怎样裁切图片?如何将图片剪裁成需要的大小?
  17. 注册表怎么禁用计算机,注册表的禁用方法与解锁方法
  18. 腾讯微博qq说说备份导出工具_软件推荐Day51 其他工具类 腾讯微博备份
  19. 黑苹果开机界面的启动项设置
  20. 万全服务器t350装系统_联想万全350安装win2003

热门文章

  1. 维基百科文件解析成中文遇到的变量类型、编码问题
  2. 比特币里面有哪些天才的设计?
  3. 0c-36-自动释放池应用场景
  4. 2012总结--目录
  5. DataGridView多线程更新数据的问题的解决办法
  6. 图文解说:Discuz论坛基础设置第一弹
  7. GDB中应该知道的几个调试方法-转
  8. mysql 删除 修改密码_MySQL新建用户,授权,删除用户,修改密码
  9. 蓝桥杯 ALGO-139 算法训练 s01串
  10. 【操作系统】滨江学院 陈遥 期末试卷考点整理