简单dp ---HDU3485 Count 101
题目大意:让求长度为n的0 和 1 构成的串中不包含101子串的个数有多少。
这个题当时想了好久,以为是一个规律题,一直在推规律,最后还是wa了,上网一看原来是dp问题, 不过确实递推式挺巧妙的。
递推式dp[i] = 2 * dp[i - 1] - dp[i - 2] + dp[i - 3];
现在就来推一下这个式子,首先dp[i]就表示当长度为 i 的 的时候满足条件(就是串中不含101)的个数,dp[i] = 2 * dp[i - 1] - {最后两位是10的个数},其中2 * dp[i-1]就表示总数,最后两位是10的个数就等于 最后一位是0的个数减去倒数第二位是0的个数, 还有一个问题就是最后一位是0怎么求, 最后一个是零的个数就是dp[i-1], 因为当前位的总个数等于前一位乘2, 因为是只有0和1两种状态,所以是0的个数就是前一位的数所以 {最后两位是10的个数} = dp[i - 2] - dp[i - 3]; 所以这个式子最后就是dp[i] = 2 * dp[i - 1] - dp[i - 2] + dp[i - 3];
代码如下:
1 #include<iostream> 2 #include <stdio.h> 3 using namespace std; 4 int dp[10010]; 5 int main() 6 { 7 dp[0] = 0; dp[1] = 2; dp[2] = 4; dp[3] = 7; 8 for (int i = 4; i < 10010; i++) 9 dp[i] = (2 * dp[i - 1] - dp[i - 2] + dp[i - 3]) % 9997 ; 10 int n; 11 while (~scanf("%d", &n) && n != -1) 12 { 13 printf("%d\n", dp[n]); 14 } 15 return 0; 16 }
转载于:https://www.cnblogs.com/Howe-Young/p/4097304.html
简单dp ---HDU3485 Count 101相关推荐
- Codeforces 41D Pawn 简单dp
题目链接:点击打开链接 给定n*m 的矩阵 常数k 以下一个n*m的矩阵,每一个位置由 0-9的一个整数表示 问: 从最后一行開始向上走到第一行使得路径上的和 % (k+1) == 0 每一个格子仅仅 ...
- hdu2067 简单dp或者记忆化搜索
题意: 小兔的棋盘 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- POJ1088:滑雪(简单dp)
题目链接: http://poj.org/problem?id=1088 题目要求: 一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小.求可以滑落的最长长度. 题目解析: 首先要先排一 ...
- 第三讲 数学与简单DP【完结】
目录 1205. 买不到的数目 [数学结论题] 1211. 蚂蚁感冒 [模拟 / 推理] 1216. 饮料换购 [简单 / 模拟] 2. 01背包问题 [板子题] 1015. 摘花生 [简单DP] 8 ...
- hdu 2881(简单dp)
题意:n*n的矩阵,里面有m个格子是有任务要去完成的,t,x,y表示要在第t秒到达(x,y)的格子完成任务,问你最多可以完成多少 解题思路:简单dp,将时间排个序后就是LIS #include< ...
- P1005 矩阵取数游戏(__int128模板/简单dp)
转跳P1005 题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的 n \times mn×m 的矩阵,矩阵中的每个元素 a_{i,j}a i,j 均为非负整数.游戏规则如下: 每次取数时 ...
- 最少拦截系统,简单dp,(学长说这是贪心?!。。。。。。也是醉了)
description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天, ...
- HDU 1158【简单dp】
题意:给你一个项目,需要几个月来完成买,同时也给你每个月最少需要的工人数.并且告诉你hiring,firing每个工人的钱数,以及每个月应付每个工人的工资.求项目完成时最小花费. 这是个简单dp,思路 ...
- 4.15 每周作业 —— 简单DP
免费馅饼 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submissi ...
最新文章
- Linux下task_struct详解
- 2020年,那些「引爆」了机器学习社区的热门论文、库和基准
- iptables+geoip来过滤阻挡来源IP
- easyui 中combogrid 实现多选,反选效果
- Java中调用Oracle中的存储过程的单元测试代码
- 内核隐藏进程(源码)
- 庞佐错觉_水晶球错觉
- android 输入法文本选择功能,Android的文本和输入---创建输入法(一)
- 全网最细Docker安装Minio,填满最新版大坑(强烈推荐收藏)
- 服务器不显示内存条,服务器检测不到内存条
- 95-190-742-源码-WindowFunction-AllWindowFunction
- windows10 ubuntu16.04 双硬盘安装双系统安装
- 【SAP HANA】关于SAP HANA中带层次结构的Attribute View创建、激活状况下在系统中生成对象的研究...
- 理解 __doPostBack--1
- 论单片机程序固件保护的重要性和方法
- html怎么隐藏项目符号,CSS-如何隐藏侧边栏列表中的项目符号?
- Java 开发规范文档
- java程序员的转正述职ppt
- 高效文件管理-Git管理个人文件指南
- Win11如何清除最近打开过的文件记录?
热门文章
- 用python画简单的动物-世上最慢“动物”之一,为啥程序员却很爱它?
- python跟java-Python和Java该学哪个?还在纠结的你看过来呀~
- python使用lxml及request爬取-python用lxml解析网页为什么不完整?
- python开发工资多少-Python开发工资多少
- python画图简单代码-用python进行简单的画图操作
- python教学视频下载-董付国老师Python精品教学,视频教程下载
- python代码示例下载-python爬取音频下载的示例代码
- python需要电脑配置-python3批量统计用户电脑配置
- python入门买什么书-大学生Python入门什么书好?
- 学python需要什么基础知识-学习python需要什么基础