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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

hdu2235 机器人的容器

發布時間:2025/6/17 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu2235 机器人的容器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:
機器人的容器
Time Limit: 3000/3000 MS (Java/Others) ? ?Memory Limit: 32768/32768 K?(Java/Others)
Total Submission(s): 171 ? ?Accepted Submission(s): 33

Problem Description
這是一個n*m的矩形,矩形的每一個單位格子上的高度為h(0<=h<1000),請問這個容器容量

Input
輸入一個正整數T表示有T組數據
對于每組數據第一行輸入兩個正整數n,m(0<n,m<500)表示矩陣的大小。
接下來有n行,每行m個整數h。

Output
對于每組輸入輸出一個整數表示容量。

?

Sample Input

1
4 4
1 1 1 1
1 0 0 1
1 0 0 1
1 1 1 1
?
Sample Output
4
?
思路:
? ? ? 這個題目做了一個星期,不過感覺是個好題,感覺這個問題很實際,看到好題就特高興,
說下思路,一開始用了個很tle的方法,把每一個點都就是一層以層的來,對于沒一個點的每一層都是處理新圖,0,1看能不能跑出去,如果能ans++,時間復雜度大約是?500 * 500 * 1000 * 500 * 500,sb了,后來我想了下用二分去優化每一個點.二分去找每一個點的最大價值,500 * 500 * lg(1000) * 500 * 500照樣跪,說下ac的思路吧(網上的,看了好久想了好久才明白), 先把每一個點都獨立出來,按高度從小到大排序,如果高相等,就把是最外邊上的點放前面,這樣二級排序后我們就得到了一個序列,這個序列的最大特點就是任意兩個相鄰的點之間都沒有"空隙",就是沒有高度處于之間的柱子,(我表達不太明白,想一下就知道了),然后我們跑循環,我換個方式寫,容易明白


for(i = 1 ;i <= n * m ;i ++)

{
? ?如果當前的這個點沒有被標記過(標記過的點從此就沒有價值了,被標記就是當前可以流出去)
? ? {

? ? ? ?如果當前的這個點是邊緣上的點
? ? ? ?{
? ? ? ? ?那么直接從改點開始搜,吧所有沒標記過并且小于等于當前高度的點全都標記上 ? ?,標記的時候別忘了更新 ? ? ? ? ?下當前整個圖一共已經標記多少個了標記個數很有用..
? ? ? }
? ? ? 否則
? ? ? {
? ? ? ? 如果當前的點的相鄰四個點中有被標記過的,那么當前的這個點也就廢了,直接從當?
前的這個點開始,把小于 ? ? ? ? 等于他并且沒標記過的全標記上,標記上的都是廢的點..
? ? ? }
? ? ? 如果當前的高小于下一個高
? ? ? {
? ? ? ? (此時就有一個空隙,那么這個空隙的高度是node[i+1].h - node[i].h,空隙的寬度?是多少呢 ,其實就是當前開 ? ? ? ? 始往前沒有作廢的點)則 ans += (node[i+1].h - node[i].h) * (i - 作廢點的個數,作廢點的個數就是全 ?圖被標記 ? ? ? 的個數)
? ? }
}


如果沒明白我在說下,所謂的作廢點就是可以連接到邊緣上的點,因為排序了,高度越來越高,如果當前的這個點是作廢點,那么當前這個點和他所連接的作廢點一定是以后能連接到當前的點的作廢點,排序導致沒一個相鄰的高度差之間不會有別的高度的東西出現.當前的高度差*當前點個數-作廢點個數就是當前這一層的價值...這個題目很贊...天天圖論,做做這個也挺好..


#include<stdio.h> #include<string.h> #include<algorithm>#define N_n 505 #define N_N 250050 using namespace std;typedef struct {int x ,y;int high;int key; }NODE;NODE node[N_N]; int H[N_n][N_n]; int mark[N_n][N_n]; int now_mksum; int dir[4][2] = {0 ,1 ,0 ,-1 ,1 ,0 ,-1 ,0}; int n ,m;bool camp(NODE a ,NODE b) {return a.high < b.high || a.high == b.high && a.key > b.key; }bool ok(int x ,int y ,int now_h) {if(x >= 1 && x <= n && y >= 1 && y <= m && !mark[x][y] && H[x][y] <= now_h)return 1;return 0; }void MK(int x ,int y ,int now_h) {for(int i = 0 ;i < 4 ;i ++){int xx = x + dir[i][0];int yy = y + dir[i][1];if(ok(xx ,yy ,now_h)){mark[xx][yy] = 1;now_mksum ++;MK(xx ,yy ,now_h);}}return; }void jude(int x ,int y ,int now_h) {for(int i = 0 ;i < 4 ;i ++){int xx = x + dir[i][0];int yy = y + dir[i][1];if(xx == 0 || xx == n + 1 || yy == 0 || yy == m + 1)continue; if(mark[xx][yy]){ mark[x][y] = 1;now_mksum ++; MK(x ,y ,now_h); break;}} }int main () {int t ,i ,j ,ans;scanf("%d" ,&t);while(t--){scanf("%d %d" ,&n ,&m);for(i = 1 ;i <= n ;i ++)for(j = 1 ;j <= m ;j ++){scanf("%d" ,&H[i][j]);int now = (i - 1) * m + j;node[now].x = i;node[now].y = j;node[now].high = H[i][j];node[now].key = (i == 1 || i == n || j == 1 || j == m);}sort(node + 1 ,node + n * m + 1 ,camp);memset(mark ,0 ,sizeof(mark));for(ans = now_mksum = 0 ,i = 1 ;i <= n * m ;i ++){if(node[i].high == node[n*m].high) break;if(!mark[node[i].x][node[i].y]){if(node[i].key) {mark[node[i].x][node[i].y] = 1;now_mksum ++;MK(node[i].x ,node[i].y ,node[i].high);}else jude(node[i].x ,node[i].y ,node[i].high);}if(node[i].high < node[i+1].high)ans += ((node[i+1].high - node[i].high) * (i - now_mksum));}printf("%d\n" ,ans);}return 0; }





? ? ? ?

總結

以上是生活随笔為你收集整理的hdu2235 机器人的容器的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日本猛少妇色xxxxx | 亚洲视频六区 | 男女黄床上色视频免费的软件 | 国产手机av | 成人午夜久久 | 日韩免费视频一区二区视频在线观看 | 国产婷婷一区二区 | 在线你懂| 99亚洲天堂 | 少妇高潮伦 | 尤物自拍 | 我要看免费黄色片 | 天堂网一区二区 | 日日射视频 | 免费看成人| 国产成人无码AA精品区 | 亚洲成人一区二区三区 | 99这里有精品 | 欧美一级片黄色 | 六月久久 | 亚洲国产aⅴ成人精品无吗 日韩乱论 | 狂野欧美性猛交xxxx巴西 | 亚洲片国产一区一级在线观看 | 国产毛片3| 一二三不卡 | 熟妇高潮一区二区三区在线播放 | 久久久久久久影视 | 美女脱了裤子让男人桶 | 欧美一级性视频 | 免费午夜影院 | 91国产在线免费观看 | 色播一区二区 | 琪琪色av | 亚洲乱码一区二区三区 | 国产激情对白 | 国产一区二区三区在线免费观看 | 精品人伦一区二区三区蜜桃免费 | 操操操视频 | 欧美视频一区二区三区四区在线观看 | 日韩婷婷 | 黑料视频在线观看 | 日韩在线视频不卡 | 国产aⅴ无码片毛片一级一区2 | 在线观看av国产一区二区 | 日韩精品一卡二卡 | 高潮在线视频 | 日本欧美一区 | 秋霞欧美一区二区三区视频免费 | 久久免费一区 | 夜色一区二区 | 成年人黄色免费网站 | 伊人青青 | 午夜av网站| 中文字幕在线视频观看 | 国产av一区二区三区精品 | 伊人久久免费 | 国语对白自拍 | 日本老年老熟无码 | 奇米久久久 | 久久不射影院 | 亚洲午夜免费 | 婷婷在线免费观看 | 91麻豆产精品久久久久久夏晴子 | 色婷婷av一区二区三区软件 | 强制憋尿play黄文尿奴 | 九九精品网 | 少妇激情偷人爽爽91嫩草 | 在线成人看片 | 欧美激情一区二区三区免费观看 | 99久久精品免费 | 免费麻豆国产一区二区三区四区 | 久久久久久久极品 | 爱的天堂| 久热最新 | 日韩精品视频在线播放 | 久久婷综合 | 特级毛片在线 | 亚洲女人av| 中文av网站 | 欧美一区二区视频在线观看 | 贝利弗山的秘密在线观看 | 三级久久久 | 国产精品三区四区 | 国产欧美日本在线 | 欧美国产精品一二三 | 黄色av网站免费在线观看 | 四虎精品在永久在线观看 | 欧美久久久久久久久久久 | 金鱼妻日剧免费观看完整版全集 | 玩偶游戏在线观看免费 | 色妹子综合 | 国产三级按摩推拿按摩 | 99国产精品白浆在线观看免费 | 欧美精品免费一区二区三区 | 美日韩丰满少妇在线观看 | 亚洲激情中文字幕 | youjizz国产精品 | 国产区第一页 | 美女高潮视频在线观看 |