栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 2474 European railroad tr...

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 2474 European railroad tr...

#include <iostream>#include <fstream>#include <cassert>#include <set>using namespace std;#define MAXN 8int best;set<int> solution;void backtrack(int n, int tracks, set<int> &positions, int required[MAXN]) {if (tracks >= best)return;bool stop = true;for (int i=1; i<n; i++) {if (!required[i])continue;stop = false;int old = required[i];for (set<int>::iterator it=positions.begin(); it!=positions.end(); it++) {if (positions.find(*it+old) != positions.end() || positions.find(*it-old) != positions.end()) {required[i] = 0;backtrack(n, tracks, positions, required);required[i] = old;return;}}}if (stop) {best = tracks;solution = positions;return;}for (int i=1; i<n; i++) {if (!required[i])continue;int old = required[i];required[i] = 0;// place track in required distance of an old trackfor (set<int>::iterator it=positions.begin(); it!=positions.end(); it++) {positions.insert(*it+old);backtrack(n, tracks+1, positions, required);positions.erase(*it+old);positions.insert(*it-old);backtrack(n, tracks+1, positions, required);positions.erase(*it-old);}required[i] = old;}}int main() {int tc;cin >> tc;for (int scen=1; scen<=tc; scen++) {cout << "Scenario #" << scen << endl;int n, required[MAXN];cin >> n;assert(n >= 1 && n <= 8);solution.clear();solution.insert(0);for (int i=0; i<n; i++) {cin >> required[i];assert(required[i]>=1000 && required[i]<=5000);solution.insert(required[i]);}set<int> positions;positions.insert(0);positions.insert(required[0]);required[0] = 0;best = n+1;backtrack(n, 2, positions, required);assert(best<=n+1 && best == solution.size());cout << best << ":";int offset = *(solution.begin());for (set<int>::iterator it = solution.begin(); it!=solution.end(); it++)cout << " " << *it-offset;cout << endl << endl;}return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/373280.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号