bzoj3039】的更多相关文章

3039: 玉蟾宫 Time Limit: 2 Sec  Memory Limit: 128 MBSubmit: 753  Solved: 444[Submit][Status][Discuss] Description 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地.这片土地被分成N*M个格子,每个格子里写着'R'或者'F',R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda.现在freda要在这里卖…
[BZOJ3039]玉蟾宫 Description 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地.这片土地被分成N*M个格子,每个格子里写着'R'或者'F',R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda.现在freda要在这里卖萌...它要找一块矩形土地,要求这片土地都标着'F'并且面积最大.但是rainbow和freda的OI水平都弱爆了,找不出这块土地,而蓝兔也想看freda卖萌(她显然是不…
经典题目不多说 ..,..] of longint;     l,r:..] of longint;     i,j,n,m,ans:longint;     x:char; function max(a,b:longint):longint;   begin     if a>b then exit(a) else exit(b);   end; begin   readln(n,m);   to n do   begin     to m do     begin       read(x)…
3039: 玉蟾宫 Time Limit: 2 Sec  Memory Limit: 128 MBSubmit: 430  Solved: 265[Submit][Status] Description 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地.这片土地被分成N*M个格子,每个格子里写着'R'或者'F',R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda.现在freda要在这里卖萌...它要找一块…
Description 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地.这片土地被分成N*M个格子,每个格子里写着'R'或者'F',R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda.现在freda要在这里卖萌...它要找一块矩形土地,要求这片土地都标着'F'并且面积最大.但是rainbow和freda的OI水平都弱爆了,找不出这块土地,而蓝兔也想看freda卖萌(她显然是不会编程的……),所以它们决定…
题面: P4147 玉蟾宫 题解:过于板子举报了 #include<cstdio> #include<cstring> #include<iostream> #define min(a,b) ((a)<(b)?(a):(b)) #define max(a,b) ((a)>(b)?(a):(b)) using namespace std; ,maxm=maxn; ; char c,C[maxn][maxm]; int main(){ scanf("%…
悬线法是一种更优秀的枚举方式,保证了枚举悬线的集合包含了极大子矩形所在的集合,而且由最大子矩形一定是极大子矩形的定理可知,这种枚举方式可以求出最大子矩形. 具体做法是维护矩形中每个元素对应最近的左边和右边的障碍点,再维护一个高度数组记录下每个点向上可以延伸多高,还有对应的矩形向左向右可以到达的最大宽度. 代码如下 #include <bits/stdc++.h> using namespace std; const int maxn=1e3+10; int n,m,a[maxn][maxn];…
传送门 悬线法的板子题. 悬线法只需要保存当期点向下最多多少个,把这个当成一条线,再处理出线绷直之后最多能向左右延展多少就行了. 代码: #include<bits/stdc++.h> #define N 1005 using namespace std; int n,m,a[N][N],L[N][N],R[N][N],h[N][N],ans=0; char s[3]; int main(){ scanf("%d%d",&n,&m); for(int i=1…
浅谈栈:https://www.cnblogs.com/AKMer/p/10278222.html 题目传送门:https://lydsy.com/JudgeOnline/problem.php?id=3039 记录\(h[i][j]\)表示\((i,j)\)可以往上延伸多长,然后做\(n\)遍POJ2559就行了. 据说这叫悬线法.还有这出题人故意增加读入难度是个什么鬼 时间复杂度:\(O(n)\) 空间复杂度:\(O(n)\) 代码如下: #include <cstdio> #includ…
悬线法 #include <iostream> #include <cstring> #include <cstdio> using namespace std; int n, m, ans=0, h[1005][1005], l[1005][1005], r[1005][1005]; bool a[1005][1005]; char s[15]; int main(){ cin>>n>>m; for(int i=1; i<=n; i++)…