Description

某趟列车的最大载客容量为V人,沿途共有n个停靠站,其中始发站为第1站,终点站为第n站。在第1站至第n-1站之

间,共有m个团队申请购票搭乘,若规定:(1)对于某个团队的购票申请,要么全部满足,要么全部拒绝,即不允

许只满足部分。(2)每个乘客的搭乘费用为其所乘站数。问:应如何选择这些购票申请,能使该趟列车获得最大

的搭乘费用?其中,每个团队的购票申请格式是以空格分隔的三个整数:a b t,即表示有t个人需要从第a站点

乘至第b站点(注:每个团队的所有人员都必须同时在a站上车,且必须同时在后面的b站下车)。

Input

有若干行。其中:

第1行只有三个整数n,m,v,分别表示站点数、申请数、列车的最大载客容量。

这三个整数之间都以一个空格分隔。

第2行至第m+1行,每行有三个整数,中间都以一个空格分隔。

其中第k+1行的三个整数a,b,t表示第k个申请,含义为:有t个人需要从第a站乘至第b站。

1≤n≤10;1≤m≤18,1<=V<=200

Output

只有一行,该行只有一个整数,为该列车能获得的最大搭乘费用。

Sample Input

3 3 5

1 2 2

2 3 5

1 3 4

Sample Output

8

//当只选择第3个申请时,能获得的最大搭乘费用为(3-1)*4=8

这道题目乍一看像个背包问题,但其实和背包基本不一样。。。接下来看一下这道题的正确解法(假装正确)

存数据我就用了a,b,t三个数组,本来想开结构体但是后面玩炸了就换成了这个

然后就是dfs的过程,dfs的边界在m站搜索完毕之后,所以如果达到边界,我们就要判断这种状态是否满足条件,满足条件再考虑是否更新ans,对于是否满足条件,可以写一个check函数,用w[i]表示第i站增加的人数(可以是负数),然后遍历一遍,如果过程中总人数超过n则不满足情况。

如果没有达到边界,就考虑是否同意团队请求,拓展是或否两种情况即可。

下面是代码:

#include<bits/stdc++.h>
using namespace std;
int n,m,v,ans=0,w[66];
bool team[1010];
int a[66],b[66],t[66];
bool check()
{
int p=0;
for(int i=1;i<=n;i++)
{
p+=w[i];
if(p>v)return false;
}
return true;
}
void dfs(int dep)
{
if(dep==m+1)
{
int an=0;
memset(w,0,sizeof(w));
for(int i=1;i<=m;i++)
{
if(team[i])
{
w[a[i]]+=t[i];
w[b[i]]-=t[i];
an+=t[i]*(b[i]-a[i]);
}
}
if(check())
{
ans=max(ans,an);
}
return;
}
dfs(dep+1); team[dep]=1;
dfs(dep+1);
team[dep]=0;
return;
}
int main()
{
cin>>n>>m>>v;
for(int i=1;i<=m;i++)
{
cin>>a[i]>>b[i]>>t[i];
}
dfs(1);
cout<<ans<<endl;
return 0;
}

ov.

【题解】旅行-C++的更多相关文章

  1. 竞赛题解 - NOIP2018 旅行

    \(\mathcal {NOIP2018} 旅行 - 竞赛题解\) 坑还得一层一层的填 填到Day2T1了 洛谷 P5022 题目 (以下copy自洛谷,有删减/修改 (●ˇ∀ˇ●)) 题目描述 小 ...

  2. noip2012开车旅行 题解

    题目大意: 给出n个排成一行的城市,每个城市有一个不同的海拔.定义两个城市间的距离等于他们的高度差的绝对值,且绝对值相等的时候海拔低的距离近.有两个人轮流开车,从左往右走.A每次都选最近的,B每次都选 ...

  3. 【题解】 P5022旅行

    [题解]P5022 旅行 当给定你一颗树的时候,这题就是一道送分题,凉心啊! 但是给定你一颗基环树呢? 暴力断环直接跑. 但是数据范围\(n\le 1000\) 乱做就完事了. 考场上这样想的,对于\ ...

  4. 洛谷 P5022 旅行——题解

    发现大部分题解都是O(n^2)的复杂度,这里分享一个O(n)复杂度的方法. 题目传送 首先前60%的情况,图是一棵无根树,只要从1开始DFS,每次贪心走点的编号最小的点就行了.(为什么?因为当走到一个 ...

  5. [HAOI2006]旅行 题解(kruskal)

    [HAOI2006]旅行 Description Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光.Z小镇附近共有N个景点(编号为1,2,3,-,N),这些景点被M条道路连接着,所有道路都 ...

  6. 【luogu P5022 旅行】 题解

    题目连接:https://www.luogu.org/problemnew/show/P5022 \(NOIP2018 DAY2T1\) 考场上只写了60分,很容易想到当 m = n - 1 时的树的 ...

  7. 题解报告:hdu 2066 一个人的旅行

    Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰 ...

  8. NOIP 2018旅行题解

    从佳木斯回来刷一刷去年没A的题 题目描述 小 Y 是一个爱好旅行的 OIer.她来到 X 国,打算将各个城市都玩一遍. 小Y了解到, X国的 nn 个城市之间有 mm 条双向道路.每条双向道路连接两个 ...

  9. 洛谷 P1522 牛的旅行 Cow Tours 题解

    P1522 牛的旅行 Cow Tours 题目描述 农民 John的农场里有很多牧区.有的路径连接一些特定的牧区.一片所有连通的牧区称为一个牧场.但是就目前而言,你能看到至少有两个牧区通过任何路径都不 ...

  10. luoguP1081 开车旅行 题解(NOIP2012)

    这道题是真滴火!(一晚上加一节信息课!) 先链接一下题目:luoguP1081 开车旅行 首先,这个预处理就极其变态,要与处理出每一个点往后走A会去哪里,B会去哪里.而且还必须O(nlogn)给它跑出 ...

随机推荐

  1. C#有哪几种定时器

    1.定义在System.Windows.Forms里2.定义在System.Threading.Timer类里3.定义在System.Timers.Timer类里 System.Windows.For ...

  2. vs的一个不经常用的快捷键

    Ctrl+shilt+< 类似于缩小字体 Ctrl—+shift+>类似于方法字体

  3. 中国自主X86处理器工艺跃进:国产28nm升级16nm(上海兆芯)

    提到X86处理器,世人皆知Intel.AMD,殊不知还有个VIA(威盛),在Intel反垄断世纪大战中VIA公司作为Intel霸权的受害者也最终确认了X86授权,不过VIA与前面两家的实力相差太远,X ...

  4. 在Delphi中创建线程,请一定使用BeginThread()代替CreateThread()创建线程!(更好的管理异常)

    在Delphi中创建线程,请一定使用BeginThread()代替CreateThread()创建线程! 如果直接使用Win32的API函数CreateThread()创建多个线程,也是可以创建的.但 ...

  5. Play Framework + ReactiveMongo 环境搭建

    Play!是一个full-stack(全栈的)Java/Scala Web应用框架,包括一个简单的无状态MVC模型,具有Hibernate的对象持续,一个基于Groovy的模板引擎,以及建立一个现代W ...

  6. Delphi Thread.Queue与Synchronize的区别(差别: Synchronize是阻塞,Queue是非阻塞)

    前话:  其实大家要学会看源码, 我接下来要说的这些东东,与其等别人讲,还不如自己搞几个代码试一下,印象还深刻点 TThread.Queue和TThread.Synchronize的区别, 效果上:二 ...

  7. linux+php+swoole解决方案

    服务器接收巨量的并发我使用linux+php+swoole解决方案.简单快速高效 并发量大 稳定 http://www.swoole.com/

  8. 每一位想有所成就的程序员都必须知道的15件事(走不一样的路,要去做,实践实践再实践,推销自己,关注市场)good

    从 为之漫笔作者:为之漫笔 有超过 100 人喜欢此条目 原文地址:How to advance your career? Read the Passionate Programmer! 我刚看完Ch ...

  9. Windows下OSGEarth的编译过程

    目录 1. 依赖 1) OpenSceneGraph 2) GDAL 3) CURL 4) GEOS 5) 其他 2. 编译 1) 设置参数 2) 配置路径 3) 生成编译 3. 参考文献 1. 依赖 ...

  10. .Net之使用Jquery Ajax通过FormData对象异步提交图片文件到服务端保存并返回保存的图片路径

    前言: 首先对于图片上传而言,在我们的项目开发中可以说出现的频率是相当的高的.这篇文章中,我将要描述的是在我们.Net中如何使用Jquery Ajax通过FormData对象异步提交图片文件到后台保存 ...