中心台站建設

2021-07-24 17:29:21 字數 1928 閱讀 2435

中心台站建設

最小支配集

為了方便,我們先對每個點建自環。

那麼。對於每個點u,一定有一條或多條(u,v) 滿足點v是建基站的。

我們可以從小到大列舉v是否有基站。

函式原型和之前一樣。void dfs(int u,int now)

1. 如果v本來就有基站,那麼 dfs(u+1,now) 搜尋下乙個點。

2. 如果v沒有基站,我們設定基站,那麼 dfs(u+1,now+1) 搜尋一下個點。

剪枝最優性剪枝:和之前一樣。

排除等效冗餘:我們列舉時,只需要列舉某個還沒建基站的點,和任意乙個建基站的點進行搜尋。

這個思路可以保證呼叫dfs(u,now)時, 1..(u-1)全部都滿足約束條件。

#include

#include

#include

using

namespace

std;

const

int maxv=100+1,mod=1000003;

int n,minn=1000,ans;

bool e[maxv][maxv],pkd[maxv],ht[mod];

char buf[20000],tmp[2000];

bool try_insert()

void dfs(int u=1,int now=0)

else

else}}

}int main()

};int nn;

int a[100][100];

vector

<100> > vvs[100];

vector

uvs;

int main(void)

}bitset

<100> bstemp;

bstemp.set(i);

vvs[i].push_back(bstemp);

} }

if(v.size()>0)

fclose(stdin);

fclose(stdout);

return

0; }

} vector

<100> > bstemp,bstemp1;

bstemp=vvs[0];

for (int k=1;kfor (int i=0;i<(int)bstemp.size();++i)

}bool bfind=true;

while(bfind)

}if(bfind)

break;}}

bstemp=bstemp1;

bstemp1.clear();

} int ncount=nn;

for (int i=0;i<(int)bstemp.size();++i)

ncount=min(ncount,(int)bstemp[i].count());

printf("%d\n",ncount);

vector

vresults;

for (int i=0;i<(int)bstemp.size();++i)

printf("%d\n",(int)vresults.size());

for (int i=0;i<(int)vresults.size();++i)

sort(vtemp.begin(),vtemp.end());

stvs sttemp;

sttemp.vs=vtemp;

uvs.push_back(sttemp);

} sort(uvs.begin(),uvs.end());

for (int i=0;i<(int)uvs.size();++i)

fclose(stdin);

fclose(stdout);

return

0;}

cogs 9 中心台站建設。。。

輸入檔案 zpj.in輸出檔案 zpj.out簡單對比 時間限制 1 s 記憶體限制 128 mb 問題描述 n個城市之間有通訊網路,從這n個城鎮中選定幾座城鎮,在那裡建立中心台站,要求它們與其它各城鎮相鄰,同時為降低造價,要使中心台站數目最少。輸入格式 輸入檔案有若干行 第一行,乙個整數n,表示共...

資料中心建設

六 機房測試服務 七 擴充套件 1.資料中心的可擴充套件性和可維護性 2.新建資料中心的驗證測試 使用者運營管理人員全程參與 在用資料中心的風險評估,在用機房定期檢測評估 1.規劃設計 2.選型採購 3.裝置安裝 單元件組合 1.暖通 採暖 通風 空氣調節 2.電氣裝置 備用電源 照明燈具 3.up...

中臺建設隨筆

適用於發展中的大中型公司且有多條產品線,這樣才能更好的復用,避免做了很多沒用的,造成資源浪費。避免重複建設,讓系統盡量抽象,可配置,不依賴具體的業務,這樣有新的產品線成立可快速接入。1.歷史的資料的遷移 在抽象需求的時候要考慮歷史資料的相容,後期好做遷移。對於不需要的點要盡量精簡,避免做的太複雜,業...