日韩性视频-久久久蜜桃-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)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 色综合久久88色综合天天免费 | 日本免费色视频 | 中文字幕日韩一区二区三区不卡 | 欧美巨鞭大战丰满少妇 | 五月激情在线观看 | 色婷婷一区二区三区四区 | 美丽的姑娘在线观看 | 亚洲av综合一区 | 另类小说亚洲色图 | 玖草影院| 亚洲福利一区二区 | 激情五月婷婷综合网 | 精品不卡一区 | 天天干天天爽天天射 | 美女毛片视频 | 久久久久久无码午夜精品直播 | 欧美69精品久久久久久不卡 | 欧美成人精品三级网站 | 肉肉视频在线观看 | 国产乱国产乱老熟 | 久久九九精品 | 国产亚洲视频一区 | 国产在线麻豆精品观看 | 成人免费高清 | 成人免费视频一区二区 | sm久久捆绑调教精品一区 | 毛片av网址 | 亚洲影视在线 | 国产午夜精品久久 | 一区二区免费在线视频 | 天天操天天玩 | 中文字幕人妻一区二区三区在线视频 | 欧美成人天堂 | 亚洲黄色免费 | 97超碰免费观看 | 91成人在线免费视频 | 日本激情影院 | 超碰人人网 | 亚洲天堂伊人 | 亚洲s码欧洲m码国产av | 91偷拍网站 | 三级欧美视频 | 天堂√8在线中文 | 中文有码视频 | 抖音视频在线观看 | 亚洲色图少妇 | 中文字幕不卡在线观看 | 日韩成人一级 | 亚洲伦理一区二区三区 | 日韩免费不卡视频 | 国产香蕉在线 | 800av凹凸| 久久资源在线 | 一级a性色生活片久久毛片 爱爱高潮视频 | 欧美午夜性春猛交 | 调教在线观看 | 亚洲激情国产 | 成都电影免费大全 | 浮生影视在线观看免费 | 日日干天天 | 美女一级视频 | 日本亚洲一区二区三区 | 日本少妇大战黑人 | 人妻av无码一区二区三区 | 国产高清视频在线观看 | 相亲对象是问题学生在线观看 | 青青视频一区二区 | 本道久久 | 欧美视频免费看欧美视频 | 亚洲经典视频 | 亚洲av网址在线 | 免费黄色国产 | 蜜桃av久久久亚洲精品 | 精品一区二区三区免费视频 | 午夜在线精品 | 精品人妻久久久久一区二区三区 | 91嫩草影视 | 国产av电影一区二区 | 秋霞午夜鲁丝一区二区 | 午夜黄色网址 | 插我一区二区在线观看 | 毛片大全免费看 | 中文自拍 | 日韩三级欧美 | 一本不卡| 高h喷汁呻吟3p| 99久久久无码国产精品 | 日韩福利一区二区三区 | wwwxxx亚洲 | 毛片一级免费 | 国产精品久久久免费视频 | 超级碰在线视频 | 18av在线视频 | 性――交――性――乱睡觉 | 亚洲综合91 | 青青草原亚洲视频 | 超碰在线日韩 | 用力抵着尿进去了h | 亚州欧美日韩 |