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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

LA3403天平难题(4个DFS)

發(fā)布時(shí)間:2025/6/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LA3403天平难题(4个DFS) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題意:
? ? ?給出房間的寬度r和每個(gè)吊墜的重量wi,設(shè)計(jì)一個(gè)盡量寬但寬度不能超過房間寬度的天平,掛著所有掛墜,每個(gè)天平的一段要么掛這一個(gè)吊墜,要么掛著另一個(gè)天平,每個(gè)天平的總長(zhǎng)度是1,細(xì)節(jié)我給出題目中的幾個(gè)圖來方便理解:


思路:
? ? ? 敲了將近兩個(gè)小時(shí),數(shù)據(jù)比較小,也就是說只要找到解決方法,一般就可以直接AC了,首先我們可以搜索枚舉天平的狀態(tài),就是總的天平的框架的樣子,也就是二叉樹的樣子,這個(gè)地方卡了一會(huì)才想出來,我們可以直接枚舉當(dāng)天天平上有的點(diǎn),每一步搜索是在當(dāng)前天平上已有的點(diǎn)的葉子節(jié)點(diǎn)中兩種決策,要么增加一個(gè)天平,要么不增加,在別的葉子節(jié)點(diǎn)上增加天平,總之當(dāng)前這一步要在一個(gè)葉子節(jié)點(diǎn)上增加天平,(想想我們畫二叉樹的時(shí)候是不是這樣畫的),而且每增加一個(gè)天平就會(huì)在二叉樹上增加一個(gè)掛墜的數(shù)量,一直增加到測(cè)試數(shù)據(jù)給的吊墜的數(shù)量,對(duì)于每一個(gè)枚舉得到的二叉樹,我們可以知道他一定是n個(gè)葉子節(jié)點(diǎn)的二叉樹,然后我們用一個(gè)全排列(也可以寫深搜,用全排列是為了不讓代碼太多,太亂)給這個(gè)葉子附上對(duì)應(yīng)的重量,賦完重量之后我們可以再用深搜來給每個(gè)非葉子節(jié)點(diǎn)到他做兒子和有兒子的距離求出來,這個(gè)比較簡(jiǎn)單(不會(huì)可以直接看下面代碼),求完距離之后可以用深搜遍歷沒一條路徑,樹根的坐標(biāo)是0,然后往左就-,往右就+得到一個(gè)最大和最小的坐標(biāo),然后根據(jù)坐標(biāo)差來更新最優(yōu)值,這個(gè)題目我寫了三個(gè)深搜,一個(gè)全排列AC的,感覺實(shí)現(xiàn)的有點(diǎn)麻煩,但不知道有沒有更省事的,目前百度不到,還有就是有一個(gè)比較坑人的地方就是當(dāng)?shù)鯄嬛挥幸粋€(gè)的時(shí)候直接輸出0,不是-1。




#include<stdio.h>
#include<string.h>
#include<algorithm>


#define N 3000


using namespace std;


typedef struct
{
? ?double ll ,rr ,ww;
? ?int mk;
}NODE;


NODE node[N];
int Now[N] ,n ,nn;
double num[10] ,r ,Ans;
double minn ,maxx;


double DFSlr(int now)
{
? ?if(node[now].mk) return node[now].ww;
? ?double lsum = DFSlr(now * 2);
? ?double rsum = DFSlr(now * 2 + 1);
? ?node[now].ll = rsum / (lsum + rsum);
? ?node[now].rr = lsum / (lsum + rsum);
? ?return lsum + rsum;
}


void DFSmm(double v ,int now)
{
? ?if(node[now].mk)
? ?{
? ? ? if(minn > v) minn = v;
? ? ? if(maxx < v) maxx = v;
? ? ? return;
? ?}
? ?DFSmm(v - node[now].ll ,now * 2);
? ?DFSmm(v + node[now].rr ,now * 2 + 1);
}




void DFS(int sw ,int sumnode)
{
? ?if(sw == n)
? ?{
? ? ? int tmpyz[10] ,nowid = 0;
? ? ? for(int i = 1 ;i <= sumnode ;i ++)
? ? ? if(node[Now[i]].mk) tmpyz[++nowid] = Now[i];
? ? ? for(int i = 1 ;i <= nn+1 ;i ++)
? ? ? {
? ? ? ? ?for(int j = 1 ;j <= n ;j ++)
? ? ? ? ?node[tmpyz[j]].ww = num[j];
? ? ? ? ?DFSlr(1);
? ? ? ? ?maxx = -100000 ,minn = 100000;
? ? ? ? ?DFSmm(0 ,1);
? ? ? ? ?if(maxx - minn <= r)
? ? ? ? ?{
? ? ? ? ? ? if(Ans < maxx - minn)
? ? ? ? ? ? Ans = maxx - minn;
? ? ? ? ?} ? ? ? ?
? ? ? ? ?next_permutation(num + 1 ,num + n + 1);
? ? ? ?}
? ? ? return;
? ?}
? ?for(int i = 1 ;i <= sumnode ;i ++)
? ?{
? ? ? if(node[Now[i]].mk)
? ? ? {
? ? ? ? node[Now[i]].mk = 0;
? ? ? ? node[Now[i]*2].mk = 1;
? ? ? ? node[Now[i]*2+1].mk = 1;
? ? ? ? Now[sumnode+1] = Now[i]*2;
? ? ? ? Now[sumnode+2] = Now[i]*2+1;
? ? ? ? DFS(sw + 1 ,sumnode + 2);
? ? ? ? node[Now[i]].mk = 1;
? ? ? ? node[Now[i]*2].mk = 0;
? ? ? ? node[Now[i]*2+1].mk = 0;
? ? ? }
? ?}
}


int main ()
{
? ?int t ,i;
? ?scanf("%d" ,&t);
? ?while(t--)
? ?{
? ? ? scanf("%lf" ,&r);
? ? ? scanf("%d" ,&n);
? ? ? for(nn = i = 1 ;i <= n ;i ++)
? ? ? {
? ? ? ? ?scanf("%lf" ,&num[i]);?
? ? ? ? ?nn *= i;
? ? ? }
? ? ? if(n == 1)
? ? ? {
? ? ? ? ?printf("0\n");
? ? ? ? ?continue;
? ? ? }
? ? ? memset(node ,0 ,sizeof(node));
? ? ? Now[1] = 1 ,Ans = -1;
? ? ? node[1].mk = 1;
? ? ? DFS(1 ,1);
? ? ? printf("%.16lf\n" ,Ans);
? ?}
? ?return 0;
}
? ? ??
? ?
? ?
? ? ? ??
? ? ? ??
? ? ? ??
? ?
? ?
? ? ? ? ?
? ? ??























總結(jié)

以上是生活随笔為你收集整理的LA3403天平难题(4个DFS)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产成人tv | 国产视频一区二区三区在线 | 夜夜嗨一区二区三区 | 午夜精品福利一区二区三区蜜桃 | 好男人在线观看 | 亚洲人精品午夜射精日韩 | 日韩首页 | 黄色一级片在线 | 久久亚洲av永久无码精品 | 欧洲成人在线观看 | 日本一区二区三区免费电影 | 国产98在线 | 男男gay同性三级 | 久久国产精品国产精品 | avtt一区| 国产又粗又猛又爽又黄的视频一 | 久久午夜激情 | 国产91熟女高潮一区二区 | 日本精品一区二区在线观看 | 一区二区高清在线观看 | 91麻豆蜜桃一区二区三区 | 91a视频 | 国产区精品区 | 先锋影音一区二区三区 | 最新黄色av网址 | 亚洲拍拍视频 | 色哟哟免费视频 | 婷婷综合五月天 | www.99re.| 我的丝袜美腿尤物麻麻 | 波多野结衣一二三区 | 97免费在线| 亚洲婷婷小说 | 日本男人天堂网 | 亚洲aaaaaaa | 成人一级视频在线观看 | jizzjizz在线播放 | 日韩中文字幕在线看 | 91caob| 在线成人国产 | 激情文学8888 | www.欧美精品 | 韩日视频| 69视频在线观看免费 | 一区二区日韩电影 | 蜜桃一区二区 | 成人在线网 | 四虎精品在线播放 | 影音先锋中文字幕人妻 | 黄色天堂av | 国产精品久久久久久久av | 精品国产乱码久久久久久免费 | 五月婷婷狠狠干 | 黄色91视频 | 麻豆理论片 | 秋霞午夜鲁丝一区二区老狼 | 欧洲在线观看 | 国产精品毛片一区二区在线看 | 午夜吃瓜 | 成人av在线网址 | av超碰 | 国产真人做爰视频免费 | 欧美日本亚洲 | 中文字幕日韩精品一区 | 国产精品久久久久久亚洲av | 欧亚av| 亚洲视频 一区 | 亚洲精品一级二级 | 久久女同 | 欧美一区二区三区系列电影 | 揄拍成人国产精品视频 | 超碰av在线 | 一区二区日韩电影 | 国产a国产片 | jvid视频 | 国产中文字幕乱人伦在线观看 | 久热亚洲 | 男生插女生网站 | 欧美aaa大片 | 欧美亚洲日本一区 | 日韩国产欧美 | 午夜免费福利视频 | 亚洲美女视频在线观看 | 日韩久久影院 | 观看毛片| 91免费版黄色| 播放灌醉水嫩大学生国内精品 | 免费人成在线观看视频播放 | 91精品国产成人www | 五月99久久婷婷国产综合亚洲 | 国产成人无码一区二区在线观看 | 欧美精品黑人猛交高潮 | 黄色伊人网 | 国产精品美女久久久久图片 | 国产欧美精品aaaaaa片 | 波多野吉衣av | 免费成人美女在线观看. | 精品一区二区三区成人免费视频 | 日本特黄特色aaa大片免费 |