博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自己看之区间DP
阅读量:4674 次
发布时间:2019-06-09

本文共 857 字,大约阅读时间需要 2 分钟。

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

区间DP入门题:Brackets

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

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

1 for(k=1; k

 

样例:()()()

变量是一一对应的应该;

 

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

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

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

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

1 #include
2 #define max(a, b) a>b?a:b 3 int n, i, j, k, l, dp[110][110], a; 4 int main( ) 5 { 6 scanf("%d", &n); 7 while(n--) 8 scanf("%d%d", &j, &k), j>k?dp[k][j]=1:dp[j][k]=1; 9 for(k=2, n=101; k

 

例三:石子合并

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

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

1 #include
2 #define min(a, b) a
dp[i][i+n-1]&&dp[i][i+n-1])17 j=dp[i][i+n-1];18 printf("%d\n", j);19 }

 

转载于:https://www.cnblogs.com/DCD112358/p/7487813.html

你可能感兴趣的文章