dp洋洋散散的知识+code
/*在数轴上有0-N的位置
从0出发每次可以向右走
2
23
233步*/ // 1 总共的方案数 f[i]=f[i-]+f[i-]+f[i-]; f[]=;
for (int a=;a<=n;a++)
{
if (a>=) f[a]+=f[a-];
if (a>=) f[a]+=f[a-];
if (a>=) f[a]+=f[a-];
}
printf("%d\n",f[n]); // 2 考虑恰好t次到达时
//dp 题 可以考虑 每多一个条件 数组就多一维;所以,开二维数组
//f[i][j] 表示 用 j 步走了i种方案 f[i][j]=f[i-][j-]+f[i-][j-]+f[i-][j-]; f[][]=;
for (int a=;a<=n;a++)
for (int b=;b<=t;b++)
{
if (a>=) f[a][b]+=f[a-][b-];
if (a>=) f[a][b]+=f[a-][b-];
if (a>=) f[a][b]+=f[a-][b-];
}
printf("%d\n",f[n][t]);
int ans=;
for (int a=;a<=t;a++)
ans+=f[n][a];
printf("%d\n",ans); // 3 考虑小于t次
//将
f[n][]+f[n][]+....f[n][t]; //考虑最多走r步233
//so 要再加一维,变成三维数组
//f[i][j][k] 表示走到 i点,公用j步,走233用了k步 f[i][j][k]=f[i-][j-][k]+ f[i-][j-][k]+ f[i-][j-][k-];
/*
(N,M)的方格图
从(0,0)开始
只能朝右或上走
问走到(N,M)的方案数*/ //将每个点的左边点和下边点相加 f[n][m]=f[n-][m]+f[n][m-]; //考虑有k个点(x,y)不能走
//定义布尔数组记录每个不能坐的点
每次设f[x][y]=,并加以判断; //2.考虑每个坑只能掉一次:
if(不是坑) F[i][j][k]=f[i-][j][k]+f[i][j-][k]; else if(是坑) F[i][j][]=f[i-][j][]-f[i][j-][]; #include<iostream>
using namespace std;
int main()
{
int n,i,j,a[][];
cin>>n;
for (i=; i<=n; i++)
for (j=; j<=i; j++)
cin>>a[i][j]; //输入数字三角形的值
for (i=n-; i>=; i--)
for (j=; j<=i; j++)
{
if (a[i+][j]>=a[i+][j+])
a[i][j]+=a[i+][j]; //路径选择
else a[i][j]+=a[i+][j+];
}
cout<<a[][]<<endl;
} int fib(int a)
{
if (!a) return ;
if (a==) return ;
if (g[a]) return f[a];
g[a]=true;
f[a]=fib(a-)+fib(a-);
return f[a];
}
数字三角形问题,使得答案对p取模最大? F[i][j][k] 表示走到第i行第j列 使得答案模p是否可行 F[i][j][k]=f[i+][j][k-v[i][j]]
Or
F[i+][j+][k-v[i][j]]
**********代码: for (int a=;a<=n;a++)
f[n][a][v[n][a]%p]=true;
for (int a=n-;a>=;a--)
for (int b=;b<=a;b++)
for (int c=;c<p;c++)
f[a][b][c]=
f[a+][b][(c-v[a][b]+p)%p] ||
f[a+][b+][(c-v[a][b]+p)%p];
int ans;
for (int a=p-;a>=;a--)
if (f[][][a])
{
ans=a;
break;
} //***********区间DP******** /*合并石子 每次选择相邻两堆 代价为两堆石子和 问最小总代价 (第一层for循环一定要正着写) 因为后一层循环需要前一层循环的数据 */ F[l][r]=min(f[l][k]+f[k+][r]+sum[l][r]) /*矩阵乘法
自定义顺序
使得运算次数最少*/ //F[i][j] 表示搞定[I,j]的最小代价
F[i][j] = min(f[i][k]+f[k][j+]+cost(I,k,j))
dp洋洋散散的知识+code的更多相关文章
- (DP 雷格码)Gray code -- hdu -- 5375
http://acm.hdu.edu.cn/showproblem.php?pid=5375 Gray code Time Limit: 2000/1000 MS (Java/Others) M ...
- DP较为完整的知识
数位DP 这类题,才刚刚接触,记得去年网络赛,就有道这样的题,我完全不会, 对于这类题基本方法是,是利用数的位数来构造转移方程. 下面给出两篇论文的链接: <数位计数问题解法研究> < ...
- 【BZOJ 3925】[Zjoi2015]地震后的幻想乡 期望概率dp+状态压缩+图论知识+组合数学
神™题........ 这道题的提示......(用本苣蒻并不会的积分积出来的)并没有 没有什么卵用 ,所以你发现没有那个东西并不会 不影响你做题 ,然后你就可以推断出来你要求的是我们最晚挑到第几大的 ...
- 【DP入门到入土】
DP例题较多,可以根据自己需求食用~ update:下翻有状压DP入门讲解,也只有讲解了(逃~ DP的实质,就是状态的枚举. 一般用DP解决的问题,都是求计数或最优问题,所以这类问题,我们也可以用搜索 ...
- dp斜率优化
算法-dp斜率优化 前置知识: 凸包 斜率优化很玄学,凭空讲怎么也讲不好,所以放例题. [APIO2014]序列分割 [APIO2014]序列分割 给你一个长度为 \(n\) 的序列 \(a_1,a_ ...
- 插头dp
插头dp 感受: 我觉得重点是理解,算法并不是直接想出怎样由一种方案变成另一种方案.而是方案本来就在那里,我们只是枚举状态统计了答案. 看看cdq的讲义什么的,一开始可能觉得状态很多,但其实灰常简单 ...
- POJ 1742 Coins DP 01背包
dp[i][j]表示前i种硬币中取总价值为j时第i种硬币最多剩下多少个,-1表示无法到达该状态. a.当dp[i-1][j]>=0时,dp[i][j]=ci; b.当j-ai>=0& ...
- 插头DP题目泛做(为了对应WYD的课件)
题目1:BZOJ 1814 URAL 1519 Formula 1 题目大意:给定一个N*M的棋盘,上面有障碍格子.求一个经过所有非障碍格子形成的回路的数量. 插头DP入门题.记录连通分量. #inc ...
- HDU 1176 免费馅饼:dp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1176 题意: 横坐标范围为[0,10],你在第0秒站在坐标为5的地方. 在接下来的一段时间内,会有n个 ...
随机推荐
- 【CodeForces】908 D. New Year and Arbitrary Arrangement
[题目]Good Bye 2017 D. New Year and Arbitrary Arrangement [题意]给定正整数k,pa,pb,初始有空字符串,每次有pa/(pa+pb)的可能在字符 ...
- vscode中go插件配置
# 转自:http://www.mamicode.com/info-detail-2436665.html # https://blog.csdn.net/bing2011/article/detai ...
- i8042 键盘控制器-------详细介绍
[转]http://shanzy.bokee.com/834368.html ps/2 键盘硬件概述 对于驱动来说,和键盘相关的最重要的硬件是两个芯片.一个是 intel 8042 芯片,位于主板上, ...
- route add提示: "SIOCADDRT: No such process
解决方法如下: 原因: There are multiple known causes for this error: - You attempted to set a route specific ...
- cordova 从xcode7迁移到xcode8
环境以开发流程 当前项目使用的cordova环境 cordova 6.1.1 cordova-ios 3.9.2(vs15自动装的不知道在哪能改,所以考虑升级到vs17,能够手动指定) cordova ...
- 企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)
前言: 原理与思想 这里选用GTID主从复制模式Mysql主从复制模式,是为了更加确保主从复制的正确性.健康性与易配性.这里做的是两服务器A,B各有Mysql实例331 ...
- 非常粗糙的react网页ppt
import React, {Component} from 'react'; import './slide.css'; class Page extends Component { constru ...
- Spring MVC数据绑定(一)
1.数据绑定介绍 在执行程序时,Spring MVC会根据客户端请求参数的不同,将请求消息中的信息以一定的方式转换并绑定到控制器类的方法参数中.这种将请求消息数据与后台方法参数建立连接的过程就是Spr ...
- NIO-1缓冲区(Buffer)
import java.nio.ByteBuffer; import org.junit.Test; /* * 一.缓冲区(Buffer):在 Java NIO 中负责数据的存取.缓冲区就是数组.用于 ...
- Qt 下载列表地址
每次下载Qt总是找好长时间,收藏一下地址 Qt 下载列表地址 https://www.qt.io/download-open-source/#section-9 教育网镜像下载 http://mirr ...