摘要://dp[i][j]表示前i个花瓶装前j束花的最大审美值//dp[i][j] = max(dp[i-1][j], dp[i-1][j-1]+cost[j][i])#include<iostream>using namespace std;const int INF = 1000000000;const int N = 105;int dp[N][N];int cost[N][N];int f, n...
阅读全文
摘要://dp[i][k]表示前i个店添加k个供应点所达到的最小值//状态转移方程为:dp[i][k] = min(dp[j][k-1], dis[j+1][i]),//其中k-1 <= j <= i-1, dis[i][j]表示从第i个饭店到第j个饭店添加一个供应点所达到的最小值,取i,j中间值即可//初始化:dp[0][0] = 0;#include <iostream>#include <cstr...
阅读全文
摘要://这题之前一直卡着没过,今晚蛋疼了一晚才过//这题是拓扑排序,有几个易错点//拓扑排序的时候,m每次要保证入度为0的点只有1个,因为题目要求的是完全排序//当满足条件(确定排序或检测到矛盾)后,后面的输入就可以不管了#include <iostream>#include <queue>#include <string>#include <cstring>using namespace std;c...
阅读全文
摘要://这题开始方法想错了,调了半天,才发现动规方程列不正确//这题可以看做一维数组的连续子串最大和的扩展//方法是把二维转换成一维,再用一维的动规方程求//把多行合并成一行求#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int N = 105;const int INF = 100000...
阅读全文
摘要://利用stack计算表达式//类似计算中序表达式那样,用两个栈,一个存字母,一个存符号//这题要自己存入*号,要用一个变量储存之前输入的符号,判断是否要把*入栈//如果前一个符号是(,则不需要。#include <iostream>#include <stack>#include <cstdio>using namespace std; struct info{ int row, col; in...
阅读全文