日天的终生大事(dp)
日天的终生大事
题目描述
日天学长向妹子表白了,妹子说:“日天你那么聪明,回答我一个问题就答应你。你告诉我,L位K进制数有多少个?”日天表示这个问题太简单了,要求提高难度。妹子想了想说:“那么我增加一个要求,一个满足要求的L位K进制数,任意两位相邻的数字相减的绝对值不能等于一,你能告诉我,有多少个满足条件的L位K进制数么?”,因为这个结果可能非常大,为了不难为日天,结果要对1000000007取余。日天一时半会儿没想出来,学长的终身大事需要同学们的帮助哇!
Hint:对于输入4 2,以下数字满足条件11、13、20、22、30、31、33。故输出7。
输入
多组输入直至文件结尾
每组输入占一行,包含两个正整数k,l。
(1<=l<=1000)
(1<k<=1000)
输出
每组数据输出一个整数,表示答案对1000000007取余的值。
样例输入
4 2
样例输出
7DP
#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <vector> #include <queue> #include <stack> #include <cstdlib> #include <iomanip> #include <cmath> #include <cassert> #include <ctime> #include <map> #include <set> using namespace std; #define lowbit(x) (x&(-x)) #define max(x,y) (x>y?x:y) #define min(x,y) (x<=y?x:y) #define MAX 100000000000000000 #define MOD 1000000007 #define pi acos(-1.0) #define ei exp(1) #define PI 3.141592653589793238462 #define ios() ios::sync_with_stdio(true) #define INF 1044266558 #define mem(a) (memset(a,0,sizeof(a))) typedef long long ll; ll dp[1003][1003],pos,cnt,k,n; int main() {while(scanf("%lld%lld",&k,&n)!=EOF){memset(dp,0,sizeof(dp));if(n==1) {printf("%lld\n",k);continue;}for(int i=0;i<k;i++){if(i==0 || i==k-1) dp[n-1][i]=(k-1)%MOD;else dp[n-1][i]=(k-2)%MOD;}pos=(k*(k-2)+2)%MOD;for(int i=n-2;i>0;i--){cnt=pos;pos=0;for(int j=0;j<k;j++){if(j==0) dp[i][j]=(cnt+MOD-dp[i+1][j+1])%MOD;else if(j==k-1) dp[i][j]=(cnt+MOD-dp[i+1][j-1])%MOD;else dp[i][j]=(cnt+MOD-dp[i+1][j-1]+MOD-dp[i+1][j+1])%MOD;pos=(pos+dp[i][j])%MOD;}}printf("%lld\n",(pos+MOD-dp[1][0])%MOD);}return 0; }
转载于:https://www.cnblogs.com/shinianhuanniyijuhaojiubujian/p/7487705.html
日天的终生大事(dp)相关推荐
- NC17134 Symmetric Matrix(dp+数学)
链接:https://ac.nowcoder.com/acm/problem/17134 solution 首先看一下 n×nn \times nn×n 的方阵需要满足的条件: 矩阵中的任意元素 ai ...
- ORACLE 错误一览表
ORA-00001: 违反唯一约束条件 (.) ITPUB个人空间)@f+^ bQ,H ORA-00017: 请求会话以设置跟踪事件 #f;i$EC6Cnp/H,z0ORA-00018: 超出最大会话 ...
- 算法训练Day50 | LeetCode123. 买卖股票的最佳时机III(最多买卖2次);LeetCode188. 买卖股票的最佳时机IV(最多买卖K次)
目录 LeetCode123. 买卖股票的最佳时机III 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考与收获 LeetCode188. 买卖股票的最佳时机IV 1. 思路 2. 代码实现 ...
- 义务教育数学课程标准2022
刘畅多次强调,课程教材要发挥培根铸魂.启智增慧的 作用,必须坚持马克思主义的指导地位,体现马克思主义中国化最新 成果,体现中国和中华民族风格,体现党和国家对教育的基本要求, 体现国家和民族基本价值观, ...
- SSL2811 2017年10月30日提高组T2 摘Galo(树形dp)
2017年10月30日提高组T2 摘Galo Description 0v0在野外看到了一棵Galo树,看到食物的0v0瞪大了眼睛,变成了OvO. 这棵Galo树可以看做是一棵以1号点为根的n个点的有 ...
- 7月29日dp训练总结
7 7 7 月 29 29 29 日 d p dp dp 训练总结 时间安排 考试时间:8点到10点20 8 : 00 ∼ 8 : 20 8:00\sim8:20 8:00∼8:20 : 把题目通读一 ...
- 【每日DP】day1 P1802 5倍经验日(别样的01背包)难度⭐★
题目链接 输入 6 8 21 52 1 21 70 5 21 48 2 14 38 3 14 36 1 14 36 2 输出 1060 一道有点意思的01背包,可以帮助理解.好久没写DP了,每天一道D ...
- 2017年10月23日提高组T2 灵知的太阳信仰 单调队列优化dp
Description 在炽热的核熔炉中,居住着一位少女,名为灵乌路空. 据说,从来没有人敢踏入过那个熔炉,因为人们畏缩于空所持有的力量--核能. 核焰,可融真金. 咳咳. 每次核融的时候,空都会选取 ...
- dp训练 4月5日 第四天结 动态规划入门完成
这四天一共做了12道有关dp的题,其中十道训练计划中的题,两道是团队训练时遇到的dp题. 十道训练题全部来自于syl的小学期dp课程,包括 两道新手背包题(01背包,01背包满包) 一道区间dp题(括 ...
最新文章
- 使用Apache Commons Configuration读取配置信息
- matlab 区间预测,用神经网络进行预测的MATLAB算法实现?
- 【Android 安全】DEX 加密 ( Java 工具开发 | apk 文件对齐 )
- sas宏中如何跳出%do循环
- 想了解推荐系统最新研究进展?请收好这16篇论文
- 通过MicroProfile上下文传播增强了CDI上下文和隔板
- LeetCode 496. 下一个更大元素 I(哈希)
- Python编写caffe代码
- 2017年高频率的互联网校园招聘面试题
- androidid什么时候会变_高瓷绿松石是什么意思?为何绿松石的瓷度要比颜色重要?...
- oracle基于脚本的安装失败,脚本建库导致 Oracle 组件未安装故障案例
- gif表情包在线生成器怎么一键生成图片
- BP神经网络预测实例(matlab代码,神经网络工具箱)
- python求两坐标距离_如何使用Python已知两坐标求距离?
- 第33期、基于java的网上订餐管理系统
- 安全运维基础知识梳理
- mysql数据库闪退
- 物联网安全专题 | 浅谈物联网设备安全分析方法 — 硬件篇
- html自定义菜单按钮图片,editormd,markdown 自定义导航栏按钮
- Python微信自动回复脚本