O(N^3) ㄎㄎ 對動態規劃越來越熟了~XDD
#include<stdio.h> #include<stdlib.h> int main() { int n,m; bool sq1[201][201]; int prc[201][201]; int lx,ly; scanf("%d %d",&n,&m); for(lx=1;lx<=n;lx++) for(ly=1;ly<=m;ly++) scanf("%d",&sq1[lx][ly]); for(lx=0;lx<=n;lx++) prc[lx][0]=0; for(ly=0;ly<=m;ly++) prc[0][ly]=0; for(lx=1;lx<=n;lx++) for(ly=1;ly<=m;ly++) prc[lx][ly]=sq1[lx][ly]*(prc[lx][ly-1]+1); int max=0; for(ly=1;ly<=m;ly++) { for(lx=1;lx<=n;lx++) { if(sq1[lx][ly]) { int lk=lx; while(prc[lk][ly]>=prc[lx][ly]) lk--; max=(max>(lx-lk)*(prc[lx][ly]))? max:(lx-lk)*(prc[lx][ly]); } } } printf("%d\n",max); return 0; }
沒有留言:
張貼留言