中心台站建設
最小支配集
為了方便,我們先對每個點建自環。
那麼。對於每個點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.歷史的資料的遷移 在抽象需求的時候要考慮歷史資料的相容,後期好做遷移。對於不需要的點要盡量精簡,避免做的太複雜,業...