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. 01 Python初探

    Python初探 Become a better version of yourself! 诞生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年开始写Python ...

  2. SQL 时间格式化函数发布

    SQL 时间格式化函数,有时候因某种需要需要格式化成需要的时间格式,需要的朋友可以收藏下,以备后用. SQL Server里面可能经常会用到的日期格式转换方法: sql server使用convert ...

  3. Windows Azure之Mobile Service

    我建个android app和Windows Azure的Mobile Service配合,以实现会员注册的功能,实际十分简单,微软家的东西真心好用 首先新建个Mobile Service New-& ...

  4. 写一个可拖动的 TShape(简单有效:依靠VCL体系,TShape自己就能被探测到被点击了,然后只要改变Left坐标就行了)

    问题来源: http://www.cnblogs.com/del/archive/2009/03/09/1234066.html#1471535 本例效果图: 自定义类(TMyShape)单元 : u ...

  5. 打开并锁定一个文件(使用LockFile API函数)

    var aHandle : THandle; aFileSize : Integer; aFileName : String; procedure TForm1.Button3Click(Sender ...

  6. 学习Java,容易被你忽略的小细节(3)

    在<学习Java,容易被你忽略的小细节(2)>中我们已经深入讨论过String类中equals()方法的使用,在本文中我们将进一步讨论equals()方法在其他境况下的使用方法. 首先,我 ...

  7. Spring Boot:整合Shiro权限框架

    综合概述 Shiro是Apache旗下的一个开源项目,它是一个非常易用的安全框架,提供了包括认证.授权.加密.会话管理等功能,与Spring Security一样属基于权限的安全框架,但是与Sprin ...

  8. Hexo+NexT(零):最全Hexo+Next搭建博客教程

    快速.简洁且高效的博客框架 有位大神说,喜欢写博客的人的人,折腾博客会经历三个阶段.找到一个免费空间,搭建一个博客,很欣喜,很有成就感,此为一阶段:受限免费空间各种限制,自己买空间和域名,实现对博客的 ...

  9. 搭建Elk集群搭建 ES-filebeat-logstrash-kibana

    一 .基础环境 软件 版本 作用 Linux/Win Server2012 CentOs/Win Server2012 服务器环境 JDK 1.8.0_151 运行环境依赖 Elasticsearch ...

  10. Kafka 学习之路(一)—— Kafka简介

    一.简介 Apache Kafka是一个分布式的流处理平台.它具有以下特点: 支持消息的发布和订阅,类似于RabbtMQ.ActiveMQ等消息队列: 支持数据实时处理: 能保证消息的可靠性投递: 支 ...