日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

hdu4846 最大子正方形(dp)

發(fā)布時(shí)間:2025/6/17 编程问答 9 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu4846 最大子正方形(dp) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題意:
? ? ? 給你一個(gè)圖,讓你找到最大的子矩形。
思路:

? ? ? 之前做過(guò)一個(gè)最大子矩陣,記得當(dāng)時(shí)是用三種方法做的,兩種都是瓶頸法,第三種是dp,結(jié)果今天的用瓶頸吧怎么都過(guò)不去,哎!不知道為什么,后來(lái)沒(méi)辦法有寫了和dp順利ac了,我們求最大子矩陣的時(shí)候是記錄最大的長(zhǎng)*寬,這次只要記錄最大的min(長(zhǎng),寬),就行了,說(shuō)下這個(gè)題目的dp做法吧,只要是開(kāi)三個(gè)數(shù)組,L[],R[],sum[],sum是記錄當(dāng)前點(diǎn)的上面有多少個(gè)連續(xù)的1,L是記錄當(dāng)前點(diǎn)sum大于等于左邊的最遠(yuǎn)的那個(gè)數(shù)的下標(biāo)(連續(xù)大于),R則是又邊,則我們可以一邊更新sum一邊更新L,R和ans,主要核心如下


for(i = 1 ;i <= n ;i ++)
{
? ?for(j = 1 ;j <= n ;j ++)
? ?map[i][j] == '.' ? sum[j] ++ : sum[j] = 0;//更新當(dāng)前點(diǎn)上面有多少個(gè)連續(xù)1
? ?//更新當(dāng)前點(diǎn)左邊連續(xù)大于的最遠(yuǎn)
? ?L[1] = 1;
? ?for(j = 2 ;j <= n ;j ++)
? ?{
? ? ? int k = j;
? ? ? while(k > 1 && sum[j] <= sum[k-1]) k = L[k-1];
? ? ? L[j] = k;
? ?}
? //更新當(dāng)前點(diǎn)右邊連續(xù)大于的最遠(yuǎn)
? ?R[1] = n;
? ?for(j = n - 1 ;j >= 1 ;j --)
? ?{
? ? ? int k = j;
? ? ? while(k > 1 && sum[j] <= sum[k+1]) k = R[k+1];
? ? ? R[j] = k;
? ?}
? // 更新答案
? for(j = 1 ;j <= n ;j ++)
? {
? ? ?int now = min(R[j] - L[j] + 1 ,sum[j]);
? ? ?if(ans < now) ans = now;
? }
} ?

ok核心就是這些,時(shí)間復(fù)雜度是O(n^2)


#include<stdio.h> #include<string.h> int L[1111] ,R[1111] ,sum[1000]; int map[1111][1111];int minn(int x ,int y) {return x < y ? x : y; }int main () {int n ,m ,i ,j;int ans ,x ,y;while(~scanf("%d %d" ,&n ,&m)){memset(map ,255 ,sizeof(map));memset(sum ,0 ,sizeof(sum));while(m--){scanf("%d %d" ,&x ,&y);map[x][y] = 0;}for(ans = 0 ,i = 1 ;i <= n ;i ++){for(j = 1 ;j <= n ;j ++)map[i][j] ? sum[j] ++ : sum[j] = 0;L[1] = 1;for(j = 2 ;j <= n ;j ++){int k = j;while(k > 1 && sum[j] <= sum[k-1]) k = L[k-1];L[j] = k;}R[n] = n;for(j = n - 1 ;j >= 1 ;j --){int k = j;while(k < n && sum[j] <= sum[k+1]) k = R[k+1];R[j] = k;}for(j = 1 ;j <= n ;j ++){int now = minn(R[j] - L[j] + 1 ,sum[j]);if(ans < now) ans = now;}}printf("%d\n" ,ans);}return 0; }

總結(jié)

以上是生活随笔為你收集整理的hdu4846 最大子正方形(dp)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 污污视频免费网站 | 日本护士体内she精2xxx | 91亚洲精品国偷拍 | 三级影片在线免费观看 | 男生操男生网站 | 在线观看污污视频 | 潘金莲黄色一级片 | 中文字幕一区二区三区四区视频 | 国产剧情在线观看 | aaaaa黄色片 天堂网在线观看 | 香蕉网在线播放 | 日女人免费视频 | 精品无码久久久久久国产 | 爱爱的免费视频 | 久久国产精品免费 | 精品蜜桃av| 黑人狂躁日本妞hd | 亚洲天堂中文字幕 | 加勒比综合| 成人精品一区二区三区视频 | 国产伦精品一区二区三区妓女下载 | 亚洲av色香蕉一区二区三区 | 日韩在线观看免费网站 | 亚洲午夜久久久久 | 欧美一级片一区二区 | 午夜偷拍视频 | 日本少妇一区二区三区 | 亚洲欧美精品一区二区三区 | 另类欧美尿交 | av黄色免费网站 | 九一国产在线观看 | av二区在线| 国产精久久久久 | 国产精品国产一区二区三区四区 | 人妻少妇精品一区二区 | 在线观看亚洲网站 | 亚洲精品高潮 | jizz另类| 久久免费视频99 | 日韩精品成人免费观看视频 | 国产欧美激情视频 | 久久综合五月 | 性欧美18一19性猛交 | 好看的av在线 | 午夜国产视频 | 红色假期黑色婚礼2 | 51ⅴ精品国产91久久久久久 | 亚洲成人自拍视频 | 亚洲人午夜射精精品日韩 | 18被视频免费观看视频 | 天堂av影院 | 97精品人妻麻豆一区二区 | 亚洲福利视频一区二区 | 亚洲精品2 | 无码人妻精品一区二区蜜桃色欲 | 97国产视频| 日韩视频三区 | 欧美日韩大片在线观看 | 91精品国产一区二区在线观看 | 成人做爰69片免费观看 | 亚洲一区在线看 | 蜜桃精品视频在线观看 | 疯狂做爰的爽文多肉小说王爷 | 狠狠艹狠狠干 | 一区二区韩国 | 蜜臀在线播放 | 色欲色香天天天综合网www | 国产精品入口a级 | 丰满人妻一区二区三区免费视频棣 | 公交上高潮的丁芷晴 | 一级片在线免费观看 | 自拍偷拍欧美视频 | 国产综合图片 | 国产视频一区二区在线观看 | 涩涩网站在线看 | 插插插色综合 | 免费日韩| 国产精品成人久久久 | 福利一区视频 | 在线你懂得 | 久久美| 日本免费黄色大片 | 桃谷绘里香番号 | www.色妞 | 久草热线 | 四虎视频国产精品免费入口 | 少妇毛片视频 | 亚洲av无码成人精品国产 | 精品国产免费看 | 波多野结衣电影在线播放 | 欧美综合在线观看 | 国产成人综合精品 | 国产婷婷在线视频 | 91久久综合精品国产丝袜蜜芽 | 国产黄色免费大片 | 亚洲国产精品va在线看黑人 | 男人天堂你懂的 | 欧美视频一区二区三区在线观看 | 三级免费黄 |