//菜鸡制作,看的时候可能三目运算符略烦;;;

区间DP入门题:Brackets

地址:http://59.77.139.92/Problem.jsp?pid=1463

分析(对区间DP的代码原理进行分步解析):

 for(k=; k<L; k++)
{
for(i=, j=k; j<L; i++, j++)
{
if(s[i]=='['&&s[j]==']'||s[i]=='('&&s[j]==')')
dp[i][j]=dp[i+][j-]+;
for(x=i; x<j; x++)
dp[i][j]=max(dp[i][j], dp[i][x]+dp[x+][j]);
}
}

样例:()()()

变量是一一对应的应该;

区间DP原理就可以理清楚了。

然后我们看一下这题:刺激的摩托飞艇

地址:http://59.77.139.92/Problem.jsp?pid=2382

这一题求最小拆除路线实际上就是求最大不相交路线的数量, 也就是和上面那一题一模一样,但是这一题变通的地方在于dp数组一开始就要赋值,相连则dp[i][j]=1, 其他的地方完全可以照搬

 #include<stdio.h>
#define max(a, b) a>b?a:b
int n, i, j, k, l, dp[][], a;
int main( )
{
scanf("%d", &n);
while(n--)
scanf("%d%d", &j, &k), j>k?dp[k][j]=:dp[j][k]=;
for(k=, n=; k<n; k++)
for(i=, j=k; j<n; j++, i++)
{
for(l=i+, a=; l<j; l++)
a=max(a, dp[i][l]+dp[l][j]);
dp[i][j]+=a;
}
printf("%d\n", dp[][]);
}

例三:石子合并

地址:http://59.77.139.92/Problem.jsp?pid=2385

这一题的区别点就是石子是环状的,那么我们就可以简单的对数组进行延长操作来求, 其他核心基本上不变

 #include<stdio.h>
#define min(a, b) a<b?a:b
int dp[][], i, j, k, l, n, a[], sum[];
int main( )
{
scanf("%d", &n);
for(i=; i<n; i++)
scanf("%d", &a[i]), i?sum[i]=a[i]+sum[i-]:sum[i]=a[i];///sum数组记录前缀和
for(i=n; i<*n; i++)
a[i]=a[i-n], sum[i]=sum[i-]+a[i];///增长
for(k=; k<n; k++)
for(i=, j=k; j<*n; i++, j++)
for(l=i, dp[i][j]=0x3f3f3f; l<j; l++)
dp[i][j]=min(dp[i][j], dp[i][l]+dp[l+][j]+sum[j]-sum[i-]);
for(i=, j=0x3f3f3f; i<n; i++)
if(j>dp[i][i+n-]&&dp[i][i+n-])
j=dp[i][i+n-];
printf("%d\n", j);
}

最新文章

  1. JS学习之路(这个觉得写的很好,放在这里是方便查看)
  2. MEF入门之不求甚解,但力求简单能讲明白(一)
  3. Set Font Properties On Mouse Hover Of Push Button And Text Items At Run time In Oracle Forms
  4. 工具http://www.architexa.com/learn-more/install使用
  5. 类似与三元表达式的 json 读取值
  6. iOS11和机器学习CoreML库
  7. IIC协议学习笔记
  8. 随记之 -- diy相册
  9. Android5.1 - 通讯录建立群组
  10. RB-Tree删除详解
  11. Flask开发微电影网站(八)
  12. C# Synchronized 和 SyncRoot 实现线程同步的源码分析及泛型集合的线程安全访问
  13. 论文阅读笔记十二:Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation(DeepLabv3+)(CVPR2018)
  14. Office365 OneDrive Geo Move
  15. Android Adb命令查看包名信息
  16. 2018面向对象程序设计(Java)第16周学习指导及要求
  17. RabbitMQ、Redis、Memcache
  18. Jmeter(三十三)Stepping Thread Group
  19. hdu 1059 (多重背包) Dividing
  20. Python 入门基础3 --流程控制

热门文章

  1. POSt 提交参数 实体 和字符串
  2. FZU2125_简单的等式
  3. 下载文件 通过a 标签 请求某个servlet进行下载的
  4. 【bzoj2906】颜色 分块
  5. 【uoj#244】[UER #7]短路 CDQ分治+斜率优化dp
  6. 【NOIP2017】宝藏(状态压缩,动态规划)
  7. BZOJ3295:[CQOI2011]动态逆序对——题解
  8. 解决:LNMP架构下访问php页面出现500错误
  9. 【数学】【P5076】 Tweetuzki 爱整除
  10. 2016-2017 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2016) F dfs序+树状数组