/*在数轴上有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的更多相关文章

  1. (DP 雷格码)Gray code -- hdu -- 5375

    http://acm.hdu.edu.cn/showproblem.php?pid=5375 Gray code Time Limit: 2000/1000 MS (Java/Others)    M ...

  2. DP较为完整的知识

    数位DP 这类题,才刚刚接触,记得去年网络赛,就有道这样的题,我完全不会, 对于这类题基本方法是,是利用数的位数来构造转移方程. 下面给出两篇论文的链接: <数位计数问题解法研究> < ...

  3. 【BZOJ 3925】[Zjoi2015]地震后的幻想乡 期望概率dp+状态压缩+图论知识+组合数学

    神™题........ 这道题的提示......(用本苣蒻并不会的积分积出来的)并没有 没有什么卵用 ,所以你发现没有那个东西并不会 不影响你做题 ,然后你就可以推断出来你要求的是我们最晚挑到第几大的 ...

  4. 【DP入门到入土】

    DP例题较多,可以根据自己需求食用~ update:下翻有状压DP入门讲解,也只有讲解了(逃~ DP的实质,就是状态的枚举. 一般用DP解决的问题,都是求计数或最优问题,所以这类问题,我们也可以用搜索 ...

  5. dp斜率优化

    算法-dp斜率优化 前置知识: 凸包 斜率优化很玄学,凭空讲怎么也讲不好,所以放例题. [APIO2014]序列分割 [APIO2014]序列分割 给你一个长度为 \(n\) 的序列 \(a_1,a_ ...

  6. 插头dp

    插头dp 感受: 我觉得重点是理解,算法并不是直接想出怎样由一种方案变成另一种方案.而是方案本来就在那里,我们只是枚举状态统计了答案. 看看cdq的讲义什么的,一开始可能觉得状态很多,但其实灰常简单 ...

  7. 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& ...

  8. 插头DP题目泛做(为了对应WYD的课件)

    题目1:BZOJ 1814 URAL 1519 Formula 1 题目大意:给定一个N*M的棋盘,上面有障碍格子.求一个经过所有非障碍格子形成的回路的数量. 插头DP入门题.记录连通分量. #inc ...

  9. HDU 1176 免费馅饼:dp

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1176 题意: 横坐标范围为[0,10],你在第0秒站在坐标为5的地方. 在接下来的一段时间内,会有n个 ...

随机推荐

  1. 【BZOJ】4555: [Tjoi2016&Heoi2016]求和 排列组合+多项式求逆 或 斯特林数+NTT

    [题意]给定n,求Σi=0~nΣj=1~i s(i,j)*2^j*j!,n<=10^5. [算法]生成函数+排列组合+多项式求逆 [题解]参考: [BZOJ4555][Tjoi2016& ...

  2. GD库imagecopyresampled()方法详解~

    整理了一下GD库这个缩放,拉伸复制的方法 因为这个函数参数太多了~ imagecopyresampled()   /* //拷贝部分图像并调整大小 bool imagecopyresampled ( ...

  3. Price(洛谷P4109 [HEOI2015]定价)

    题目 思路: 按照我的思路这一题应该是这样子的 剔除+判断 剔除 因为后面的0要越多越好,所以我们判断0出现的情况,当2个数之间的差大与10时,证明2个之间会存在一个0,所以这一位我们可以把它去掉,相 ...

  4. 使用Burpsuite爆破弱口令教工号

    使用Burpsuite爆破弱口令教工号 发表于 2015-11-18   |   分类于 Burpsuite  |   1条评论  |   26次阅读 准备 所谓工欲善其事,必先利其器,首先当然是要下 ...

  5. 福建工程学院寒假作业第一周G题

    涨姿势题1 TimeLimit:1000MS  MemoryLimit:128000KB 64-bit integer IO format:%lld   涨姿势题就是所谓的优化题,在组队赛中,队伍发现 ...

  6. java反序列化漏洞

    http://www.freebuf.com/vuls/86566.html 有时间了  仔细阅读

  7. webgote的例子(2)Sql注入(SearchGET)

    Sql注入(Search/GET) 大家好!!! 现如今web服务在我们的网络上遍地都是,各个终端设备成为我们看不见的客户,web服务也成为公司的招牌.80 443为我们展现的视角也是多姿多彩但背后新 ...

  8. python并发编程之multiprocessing进程(二)

    python的multiprocessing模块是用来创建多进程的,下面对multiprocessing总结一下使用记录. 系列文章 python并发编程之threading线程(一) python并 ...

  9. ERROR in vc 6.0 (LINK : fatal error LNK1561: entry point must be defined)

    导致错误 LINK : fatal error LNK1561: entry point must be defined 的原因有很多种, 网上可以搜到很多, 一般是函数入口没定义, 或者修改为/su ...

  10. Nginx服务安全设置和参数调优

    1.添加参数隐藏Nginx版本号 vim /application/nginx/conf/nginx.conf #http标签下添加 server_tokens off; #测试 [root@cobb ...