uva 301 Transportation 铁路公司的阳谋 纯dfs暴力
来源:互联网 发布:2017淘宝上传宝贝视频 编辑:程序博客网 时间:2024/05/17 03:16
题目比较难理解。
给出铁路的容量和站点数,以及几笔订单,要求算出如何盈利最大。
咋一看想贪心,但无法确定是最优解啊。
于是用dfs做,就两种状况,选与不选,先开一个每个站点的当前人数数组,假设要选,然后各个站点加上人数判断会不会超人数,不会就进入选择的下一轮dfs,然后把人数减掉,进入不选的dfs。
这题据说用数组标记会超时。。。
代码:
#include <cstdio>const int maxn = 30;int cap, num, ord, ans;int cnt[10];struct Order {int s;int e;int p;};Order o[maxn];bool judge() {for (int i = 0; i < num; i++)if (cnt[i] > cap)return false;return true;}void dfs(int d, int sum) {if (sum > ans) ans = sum;if (d >= ord) return;for (int i = o[d].s; i < o[d].e; i++)cnt[i] += o[d].p;if (judge())//choosedfs(d + 1, sum + o[d].p * (o[d].e - o[d].s));for (int i = o[d].s; i < o[d].e; i++)cnt[i] -= o[d].p;dfs(d + 1, sum);//not choose}int main() {while (scanf("%d%d%d", &cap, &num, &ord) && (cap || num || ord)) {for (int i = 0; i < num; i++)cnt[i] = 0;for (int i = 0; i < ord; i++)scanf("%d%d%d", &o[i].s, &o[i].e, &o[i].p);if (!cap || !num || !ord) {printf("0\n");continue;}ans = 0;dfs(0, 0);printf("%d\n", ans);}return 0;}
- uva 301 Transportation 铁路公司的阳谋 纯dfs暴力
- uva 301 Transportation (DFS)
- uva 301 - Transportation 一切都是那么暴力
- UVA - 301 - Transportation (暴力回溯)
- UVA 301 POJ 1040- Transportation DFS 回溯
- UVA Transportation (DFS)
- 301 - Transportation(dfs)
- UVA 185(暴力DFS)
- UVa 301 - Transportation
- uva 301 - Transportation
- uva 301 - Transportation
- UVa 301 - Transportation
- Uva 301 Transportation
- UVa 301 - Transportation 回溯
- uva 301 Transportation
- UVa 301 - Transportation
- UVA 301 Transportation
- UVA 301 - Transportation
- jquery页签效果
- testestestestestesteste
- 构建高性能web专题
- The literal XXXXXXXXXX of type int is out of range 处理办法
- cookie与session区别
- uva 301 Transportation 铁路公司的阳谋 纯dfs暴力
- 安装apk
- 讲义:第五项修炼(学习型组织的艺术与实践)
- 条款1:尽量用const和inline 而不用#define (第一章 从C转向C++)
- servlet/filter/listener/interceptor区别与联系
- 条款2:尽量用<iostream>而不用<stdio.h>
- DragonBones快速入门指南1
- TechNet Magazine VC++ 示例
- php mysql创建临时表