luogu-P10061
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
const int MAXN = 55;
int m, n, a[MAXN][MAXN], f[MAXN][MAXN][MAXN][MAXN];//f[i][j][k][l] 为两纸条分别传到(i, j),(k, l)的最大好感度
bool flag[MAXN][MAXN] = {};
int MAX(int i, int j, int k, int l) {
return std::max(std::max(i, j), std::max(k, l));
}
int main() {
scanf("%d%d", &m, &n);
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
scanf("%d", &a[i][j]);
}
}
for(int i = 1; i <= m; i++) {
for(int j = 1; j <= n; j++) {
for(int k = 1; k <= m; k++) {
for(int l = 1; l <= n; l++) {//暴力枚举
f[i][j][k][l] = MAX(f[i - 1][j][k - 1][l], f[i - 1][j][k][l - 1], f[i][j - 1][k - 1][l], f[i][j - 1][k][l - 1]) + a[i][j] + a[k][l];
//一张纸条有两种传递的方式,两张一共有四种方式,取好感度最大的一个
if(i == k && j == l) {//如果走到一个位置
f[i][j][k][l] -= a[i][j];//减去其中一个的好感度
}
}
}
}
}
printf("%d", f[m][n][m][n]);
return 0;
}
5月22日动态规划阶段测试
乌龟棋
最长上升子序列(LIS)详解
最长上升子序列(LIS)nlogn算法
替换其实是为后面的元素让出更多的空间,如果有更小的元素,才能插入,如果没有,则对最终结果也没有影响
1 | #include <cstdio> |
Windows平台搭建Minecraft的Java版服务器
水文
树的概念和定义
4月5日综合测试
神奇的队伍
题目描述
你知道吗,在重庆市第八中学校中,流传着四大不可思议的传说。接下来,你将看到四大不可思议之一——神奇的队伍。
相传在八中科技楼的五楼和六楼之间的楼梯的第七步台阶的旁边墙壁上,存在一个隐藏的空间,这个空间中存在着一支神奇的队伍,一支由名为ぎさう的怪异组成的队伍。他们性格散漫,整天以捣蛋搞恶作剧为生,这不,他们又准备出发啦!当然,在他们出发捣乱之前,肯定要先一个一个的排好队,所有的ぎさう一共需要排成n列,当带头的ぎさう喊出稍息的之后,由于这些ぎさう散漫惯了,有迈左腿的,也有迈右腿的,很不整齐。已知在第i列中,有li个ぎさう先迈出了左腿,有ri个ぎさう迈出了右腿。假设所有的ぎさう中,有L个ぎさう迈出左腿,R个ぎさう迈出右腿时,整个队伍的整齐度为|L-R|,现在,带头的ぎさう希望能改变一整列的ぎさう的动作,使得这一列的所有ぎさう之前迈出左腿的现在迈右腿,之前迈右腿的现在迈左腿(当然也可以不改变)。现在带头的ぎさう需要计算,他需要改变哪一列,才能使整个队伍的整齐度最大。如果不改变任何一列,则输出0.
输入格式
第一行一个数字n(1≤n≤100000),表示ぎさう所拥有的列数。
接下来n行,每行两个数字l_i和r_i(1≤l_i,r_i≤500),表示这一列的ぎさう迈出左腿的数量和迈出右腿的数量。
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick Start
Create a new post
1 | $ hexo new "My New Post" |
More info: Writing