/images/avatar.webp

求最大正方形面积

1 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 #include <iostream>using namespace std; int a[1001][1001], dp[1001][1001]; int main() { int n, m; cin >> n >> m; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { cin >> a[i][j];

vscode

在task里添加编译命令,从而执行编译操作。步骤如下:

  • 按住ctrl+shift+P,打开命令面板;
  • 选择Configure Tasks…,选择Create tasks.json file from templates,之后会看到一系列task模板;
  • 选择others,创建一个task,下面是一个task的示例:

花店橱窗

dp[i][j]表示摆了i种花,且第i种花的位置在j的最大值,location[i][j]表示第i种花摆在j时上一种花摆在哪。

1.因为可能有负数,所以dp要初始化为负无穷,dp[0][0] = 0为边界

2.第i种花的位置必须要大于第i-1种花,所以j的范围要注意,要从i-1开始,到m-(n-i)结束

3.第三个循环的k表示上一种花的位置,这里k要升序循环,因为答案要求按照字典序

P1006 [NOIP2008 提高组] 传纸条

DP数组:

第一维度维护的是在传的过程中纵坐标与横坐标的和。

在同一斜线上,剩下表示两个点的从坐标就可以表示这两个点的位置。

第二维度维护的是相对在左边的点的纵坐标。

第三维度维护的是相对在右边的点的纵坐标。

当查询一个情况时,只有四种情况可以到他

1
F[sum][i][j]=max{F[sum-1][i][j]+F[sum-1][i][j-1]+F[sum-1][i-1][j]+F[sum-1][i-1][j-1]}

matrixfun

双倍经验

dp[i][j]

i代表左边取了几个数

j代表右边取了几个数

按行取最大值即可

先把2^n算出来挺好

int128 奇技淫巧

艹,原来的代码有错!

顺便喷一下emacs的加空格插件

特点

  1. 不支持printf,scanf,cin,cout,自己输入输出
  2. 至多可存38位
  3. 运算同int