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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LOJ #2733 [JOI2016春季合宿]Sandwiches (DP)

發布時間:2025/3/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LOJ #2733 [JOI2016春季合宿]Sandwiches (DP) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接

https://loj.ac/problem/2733

題解

神仙題……
首先可以觀察到一個結論: 目標塊的兩塊小三明治一定分別是最后和倒數第二個被吃的。
由此我們可以考慮這兩塊誰先被吃。這樣的好處就是,起初我們一個塊被吃的依賴條件是某兩個塊中有一個被吃就行,現在兩個塊中的某一個已經欽定了比它更晚,另一個就一定要比它早,這樣依賴關系就形成了一張圖。
那么有一個\(O(n^4)\)的做法: 對于每一個塊枚舉先吃哪個小三明治,然后DFS求出要先吃這個三明治需要吃掉哪些三明治。
下面還有一個結論: 設對于一個塊\((x,y)\) (第\(x\)行第\(y\)列)我們先吃掉了靠左邊界的塊,那么對于塊\((x,y-1)\) (即它左邊的塊),我們也需要先吃掉靠左邊界的塊,右同理。
推論: 設\(L(x,y)\)是要先取走塊\((x,y)\)靠左邊界的塊需要取走的塊的集合,則\(L(x-1,y)\subset L(x,y)\).
于是枚舉每一行,在這一行中從左到右DFS求\(L\), 從右往左DFS求\(R\), 遍歷過的點無需再遍歷。
總時間復雜度\(O(n^3)\).

代碼

#include<bits/stdc++.h> #define llong long long #define mkpr make_pair using namespace std;const int N = 400; const int INF = 1e8; char a[N+3][N+3]; int vis[N+3][N+3]; int dp0[N+3][N+3],dp1[N+3][N+3]; int n,m;int dfs(int x,int y,int dir) {if(vis[x][y]==-1) {return INF;}else if(vis[x][y]==1) {return 0;}vis[x][y] = -1; int ret = 2;if(a[x][y]=='N'){if(dir==1){if(x>1) {ret += dfs(x-1,y,a[x-1][y]=='N'?1:0);}if(y<m) {ret += dfs(x,y+1,1);}}else{if(x<n) {ret += dfs(x+1,y,a[x+1][y]=='N'?0:1);}if(y>1) {ret += dfs(x,y-1,0);}}}else{if(dir==1){if(x<n) {ret += dfs(x+1,y,a[x+1][y]=='N'?0:1);}if(y<m) {ret += dfs(x,y+1,1);}}else{if(x>1) {ret += dfs(x-1,y,a[x-1][y]=='N'?1:0);}if(y>1) {ret += dfs(x,y-1,0);}}}if(ret<INF) {vis[x][y] = 1;}else ret = INF;return ret; }int main() {scanf("%d%d",&n,&m);for(int i=1; i<=n; i++) scanf("%s",a[i]+1);for(int i=1; i<=n; i++){memset(vis,0,sizeof(vis));for(int j=1; j<=m; j++){dp0[i][j] = dp0[i][j-1]+dfs(i,j,0);if(dp0[i][j]>INF) {dp0[i][j] = INF;}}memset(vis,0,sizeof(vis));for(int j=m; j>=1; j--){dp1[i][j] = dp1[i][j+1]+dfs(i,j,1);if(dp1[i][j]>INF) {dp1[i][j] = INF;}}for(int j=1; j<=m; j++){int ans = min(dp0[i][j],dp1[i][j]);printf("%d ",ans<INF?ans:-1);}puts("");}return 0; }

總結

以上是生活随笔為你收集整理的LOJ #2733 [JOI2016春季合宿]Sandwiches (DP)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品一线二线三线 | 性chinese天美传媒麻 | 涩涩视频在线播放 | 污视频在线免费观看 | 最近中文字幕无免费 | 日韩免费福利视频 | 欧美一级片在线观看 | 老师上课夹震蛋高潮了 | 天堂网在线观看 | 亚洲一区二区国产精品 | 久久91亚洲 | 毛片随便看 | 男女激情av| 日本黄色a视频 | 五月天丁香在线 | 黄色资源在线 | 麻豆av网址| 国产欧美精品国产国产专区 | 依依成人av| 免费成人进口网站 | 亚洲av无码一区二区三区网站 | 国产激情精品一区二区三区 | 日韩欧美中文在线 | 精品一区二区免费 | www.奇米| 黄色a级片在线观看 | 欧美在线二区 | 精品麻豆 | 山外人精品影院 | 国产福利免费视频 | 波多野结衣视频一区二区 | 哺乳期喷奶水丰满少妇 | 成人免费公开视频 | 欧美另类高清 | 久久国产柳州莫菁门 | 亚洲两性 | 久久久看片 | 看污片网站| 夜夜骑av | 亚洲影院在线播放 | 国产人人插 | 国产精品变态另类虐交 | 一本之道久久 | 四虎精品一区 | 国产真实乱人偷精品视频 | 糖心av| 日韩网红少妇无码视频香港 | 色屁屁草草影院ccyycom | 黑白配在线观看免费观看 | 国产一区二区三区四区 | 992在线观看 | 少妇饥渴放荡91麻豆 | 国产又爽又黄的视频 | 玖玖爱精品| av一区在线观看 | 蜜桃在线一区二区 | 激情av中文字幕 | 欧美有码视频 | 在线观看麻豆av | 日韩va亚洲va欧美va久久 | 在线视频1卡二卡三卡 | 超碰国产在线观看 | 福利一区二区在线观看 | 欧美精品一区二区不卡 | www.999av| 中文字幕视频在线观看 | 欧美区一区二区三 | 青青视频免费看 | 91免费.| 97超碰免费在线观看 | 丁香六月欧美 | 日韩女同一区二区三区 | 午夜影院日本 | 色吧综合网 | 少妇无码一区二区三区免费 | 女同毛片一区二区三区 | 午夜激情视频在线观看 | 一卡二卡三卡四卡五卡 | 午夜在线你懂的 | 黄色大全免费看 | 亚洲精品福利视频 | 欧美午夜精品一区二区蜜桃 | 在线免费看毛片 | 亚洲精品一区二区三区在线 | 欧美一级在线免费观看 | 国产精品熟女视频 | 精品国产一二三 | 午夜久久久久 | 99热综合 | 中文字幕精品一区二区三区精品 | 亚洲一区二区三区免费视频 | 在线免费观看欧美大片 | 国产亚洲精品网站 | 国产剧情av麻豆香蕉精品 | 青娱乐在线视频免费观看 | av在线免费观看网址 | 色综合五月天 | 国产毛片自拍 | 色图18p |