洛谷P1736 吃魚
****灰常機智****
DP。說一說思路。
先考慮左上到右下的對角線:f[i][j]表示以(i,j)這一點作為右下角的合法正方形的最大長度。如果當前位置的數字為1,那麽考慮轉移:
-
如果a[i-1][j-1]是0,那麽f[i][j]就是1;
- 如果a[i-1][j-1]是1,那麽f[i][j]=min{f[i-1][j-1]+1,(i,j)左邊的最長連續0的長度,(i,j)上面最長連續0的長度}。
那麽問題來了,怎麽快速求最長連續0的長度呢,這個預處理好就可以了。
為了方便,我們預處理的時候,x[i][j]表示,(i,j)左邊最長連續0的長度(包含(i,j)),y[i][j]同理表示上面。如果a[i][j]==1,直接把x[i][j]和y[i][j]設為0,否則就x[i][j]=x[i][j-1]+1,y[i][j]=y[i-1][j]+1。這樣的話DP轉移方程應該是f[i][j]=min(f[i-1][j-1]+1, x[i][j-1]+1, y[i-1][j]+1)。
如果是右上到左下的對角線,就只要把每一行的數左右反轉一下,再做同樣的DP即可。
洛谷P1736 吃魚
相關推薦
洛谷P1736 吃魚
長度 我們 -1 == 方便 min 一行 快速 思路 ****灰常機智**** DP。說一說思路。 先考慮左上到右下的對角線:f[i][j]表示以(i,j)這一點作為右下角的合法正方形的最大長度。如果當前位置的數字為1,那麽考慮轉移: 如果a[i-1][j-1]是0,
[洛谷] P1736 創意吃魚法
das 格式 兩個 開始 有一個 i++ min 策略 isdigit 題目描述 回到家中的貓貓把三桶魚全部轉移到了她那長方形大池子中,然後開始思考:到底要以何種方法吃魚呢(貓貓就是這麽可愛,吃魚也要想好吃法 ^_*)。她發現,把大池子視為01矩陣(0表示對應位置無魚,1
洛谷P1736 創意吃魚法 (DP)
com cpp include 以及 一行 blog 必須 http 應該 洛谷P1736 創意吃魚法 題目描述 回到家中的貓貓把三桶魚全部轉移到了她那長方形大池子中,然後開始思考:到底要以何種方法吃魚呢(貓貓就是這麽可愛,吃魚也要想好吃法 ^_*)。她發現,把大池子視為
洛谷P1736 創意吃魚法【DP】
時空限制 1000ms / 128MB 題目描述 回到家中的貓貓把三桶魚全部轉移到了她那長方形大池子中,然後開始思考:到底要以何種方法吃魚呢(貓貓就是這麼可愛,吃魚也要想好吃法 ^_*)。她發現,把大池子視為01矩陣(0表示對應位置無魚,1表示對應位置有魚)有助
洛谷P1736 創意吃魚法
https://www.luogu.org/problemnew/show/P1736 開始自己想:設f(i,j):以(i,j)為左上角的包含(i,j)的最大子正方形大小,則f(i,j)取決於:設t=f(i+1,j+1),(i,j)右以及下方的t個元素最多連續幾個0,可以用二分+字首和。我只會l
洛谷P1736 創意吃魚法 dp
das 拓展 多少 朋友 都是 初始化 span war get 正解:dp 解題報告: 早就想寫dp的題目辣!我發現我的dp好差啊QAQ所以看到列表的小朋友寫dp的題目就跟著他們的步伐做下題好辣QwQ 這題的話沒有那——麽難,大概說下趴QwQ
洛谷 P1736 創意吃魚法
個數字 region 接下來 正方 scanf 解題思路 max 輸出格式 答案 題目描述 回到家中的貓貓把三桶魚全部轉移到了她那長方形大池子中,然後開始思考:到底要以何種方法吃魚呢(貓貓就是這麽可愛,吃魚也要想好吃法 ^_*)。她發現,把大池子視為01矩陣(0表示對應位置
洛谷 P1433 吃奶酪
left 一行 blog www ide ans footer foo targe 題目描述 房間裏放著n塊奶酪。一只小老鼠要把它們都吃掉,問至少要跑多少距離?老鼠一開始在(0,0)點處。 輸入輸出格式 輸入格式: 第一行一個數n (n
洛谷 P1426 小魚會有危險嗎【模擬/題意理解】
這一 space hid onclick 數據 display play ron 一次 題目描述 有一次,小魚要從A處沿直線往右邊遊,小魚第一秒可以遊7米,從第二秒開始每秒遊的距離只有前一秒的98%。有個極其邪惡的獵人在距離A處右邊s米的地方,安裝了一個隱蔽的探測器,
洛谷P1433 吃奶酪 DFS
using class 類型 就會 stream style 變量定義 == 如果 題目中說了輸入的坐標是實數,所以最好把參與運算的變量定義成double類型 在搜索的過程中只要計算得到的路程大於最小的路程就return,然後搜索下一個坐標 #include<ios
洛谷P1426-小魚會有危險嗎
題目描述 有一次,小魚要從A處沿直線往右邊遊,小魚第一秒可以遊7米,從第二秒開始每秒遊的距離只有前一秒的98%。有個極其邪惡的獵人在距離A處右邊s米的地方,安裝了一個隱蔽的探測器,探測器左右x米之內是探測範圍。一旦小魚進入探測器的範圍,探測器就會在這一秒結束時把訊號傳遞給那個獵人,獵
洛谷[P1425]小魚的游泳時間
題目傳送門 題目描述 倫敦奧運會要到了,小魚在拼命練習游泳準備參加游泳比賽,可憐的小魚並不知道魚類是不能參加人類的奧運會的。這一天,小魚給自己的游泳時間做了精確的計時(本題中的計時都按24小時制計算),它發現自己從a時b分一直游泳到當天的c時d分,請你幫小魚計算一下,它這天一共
洛谷P1433 吃乳酪---狀壓模板
這題相當於求最佳全排列,所以可以使用狀壓dp來做,其實遞迴加回溯也可以解決。 #include<bits/stdc++.h> using namespace std; inline float dis(float x1,float y1,float x2,float y2) {
10.1做題——洛谷P1433 吃乳酪
洛谷1433 吃乳酪 題目描述 房間裡放著n塊乳酪。一隻小老鼠要把它們都吃掉,問至少要跑多少距離?老鼠一開始在(0,0)點處。 輸入輸出格式 輸入格式: 第一行一個數n (n<
【洛谷P1425 小魚的游泳時間--100分】
#include<iostream> #include<math.h> #include<cstdio> using namespace std; int main
SSL-ZYC 洛谷 P1433 吃乳酪
題目大意: 房間裡放著n塊乳酪。一隻小老鼠要把它們都吃掉,問至少要跑多少距離?老鼠一開始在(0,0)點處。 思路: 明顯的DFS! 這道題的思路是十分清晰的: 1.讀入,順便用勾股定理求兩
洛谷P1433 吃奶酪【dfs】【剪枝】
efi bool tle == blank per 距離 ios cst 題目:https://www.luogu.org/problemnew/show/P1433 題意: 給定n個坐標,要求從(0,0)開始走遍所有點,最少經過的路程。 思路: 剛開始想像數字三角形一樣適
洛谷 P1433 吃奶酪(記憶化)
include ac代碼 如果 scan 最優 輸入 col n) 一行 題目描述 房間裏放著n塊奶酪。一只小老鼠要把它們都吃掉,問至少要跑多少距離?老鼠一開始在(0,0)點處。 輸入輸出格式 輸入格式: 第一行一個數n (n<=15) 接下來每行2個實數,表示
#深搜#洛谷 1433 吃乳酪
首先這道題是在深搜出現的,所以深搜程式碼。 #include <cstdio> #include <algorithm> #include <cmath> us
洛谷 1433_吃乳酪_dfs
題目描述 房間裡放著n塊乳酪。一隻小老鼠要把它們都吃掉,問至少要跑多少距離?老鼠一開始在(0,0)點處。 思路 處理出每一個點的距離,然後搜尋,如果當前值大於最小值就不做 這題不是最小生成樹