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个 ...
随机推荐
- Calendar 日期类介绍
Calendar c = Calendar.getInstance();//创建实例 默认是当前时刻 c.get(Calendar.YEAR); c.get(Calendar.MONTH); c.ge ...
- Python作业工资管理系统(第三周)
作业内容: 实现效果: 从info.txt文件中读取员工及其工资信息,最后将修改或增加的员工工资信息也写入原info.txt文件. 效果演示: 1. 查询员工工资 2. 修改员工工资 3. 增加新员工 ...
- Perl6多线程2: Promise new/keep/bread/status/result
来源于个人理解的翻译. 创建一个 promise: my $p = Promise.new; 可以打印运行 的Promise 状态: my $p = Promise.new(); $p.then({s ...
- 安全测试===dos攻击和ddos攻击
Dos攻击: dos攻击是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务 DoS攻击是指故意的攻击网络协议实现的缺 ...
- ubuntu sougou输入法
1, 打开搜狗输入法Linux版的官网http://pinyin.sogou.com/linux/?r=pinyin,并下载你需要的版本,这里选择64位版. 2,在Ubuntu14.01下可以直接点击 ...
- opencv配置过程 (cmake,vs2013,qt 5.4)
平台及软件: Windows 7 X86 Visual Studio 2013 OpenCV3.0.0 Cmake3.3 1.下载Windows下的安装文件OpenCV-3.0.0.exe,解压,选择 ...
- java基础14 多态(及关键字:instanceof)
面向对象的三大特征: 1.封装 (将一类属性封装起来,并提供set()和get()方法给其他对象设置和获取值.或者是将一个运算方法封装起来,其他对象需要此种做运算时,给此对象调用) 2.继承 ...
- Unity 软件使用事项
打开旧版工程 目前发现两种方式来触发升级程序: 1.Unity软件启动时选择旧版工程,触发更新 2.直接打开旧版工程的场景文件,触发更新 在使用中发现一种错误做法,不知道是不是共性问题,在此先记录 ...
- sad 关于一些html5新属性还需要用https才能支持
像我昨天在搞一个录音的小东西 在本地正常录音正常播放 但是放到线上环境http环境上就出现了如上的错误 功能都不能正常使用 然后就改成https线上环境 然后就正常了 如上 大家有什么赐教的欢迎留言 ...
- 洛谷 P1296奶牛的耳语 题解
题目传送门 这道题很显然可以用O(n2)的方法来做(记得排序),由于数据较水...但还是在for循环中加一些优化:++i,据说这样会快一些... #include<bits/stdc++.h&g ...