题目传送门:https://ac.nowcoder.com/acm/contest/551/G

链接:https://ac.nowcoder.com/acm/contest/551/G
来源:牛客网

题目描述

众所周知,CSL 是一个负责的集训队队长。为了让集训队的学弟们训练更加饱和,他根据每个人的能力,提出了 m 个题数要求。假如 CSL 认为 yiyi 比 xixi 强,那么如果 xixi 做了 a 题,那 CSL 会要求 yiyi 需要做至少 a+ri×ka+ri×k,其中 riri 是已知的常数。CSL 现在一共有 s 道题目可以分给大家,因为 CSL 马上就要考OS了,所以他不想再出其他题了,请问正整数 k 最大是多少。

输入描述:

第一行有三个整数 n, m, s,分别表示集训队的学弟数量,CSL 的题数要求和 CSL 的题目数量。
接下来 m 行,每行三个整数 xi,yi,rixi,yi,ri,含义题目描述中所述。
 
2≤n≤2⋅1052≤n≤2⋅105
1≤m≤6⋅1051≤m≤6⋅105
1≤s≤10121≤s≤1012
1≤xi,yi≤n1≤xi,yi≤n
0≤ri≤1060≤ri≤106

输出描述:

在一行输出一个整数表示 k 可取的最大值。特别地,如果题目不够分则输出 0;为无穷大输出 -1。
示例1

输入

复制

4 5 19
1 3 0
3 4 4
1 4 2
1 3 2
2 4 1

输出

复制

2
示例2

输入

复制

5 5 6
5 4 2
3 2 1
3 5 3
2 4 4
5 2 1

输出

复制

0

备注:

强度是具有传递性的,如果 x 比 y 强且 y 比 z 强,那么 CSL 不会认为 z 比 x 强。

输入数据量较大,建议使用高效的输入输出方式。例如:在 C++ 中使用 scanf/printf 代替 cin/cout;在 Java 中使用 BufferedReader/PrintWriter 代替 Scanner/System.out。

解题思路:

一开始想的是二分答案。

其实按照最优状态贪心下去根本不需要二分。

最优的肯定是入度为 0 的点刷题数都为 0 这样能保证后面乘 k 能更大。

那么画个图就可以看出来,就只剩下 r*k 了,最后答案再把公因数 k 提取出来,就只剩下 r了

BFS 最长路即可。

最后所有路径加起来就是总的 r ,用 S/r 即 k。

AC code:

 #include <bits/stdc++.h>
#define INF 0x3f3f3f3f
#define LL long long
#define inc(i, j, k) for(int i = j; i <= k; i++)
#define rep(i, j, k) for(int i = j; i < k; i++)
#define mem(i, j) memset(i, j, sizeof(i))
#define gcd(i, j) __gcd(i, j)
using namespace std;
const int MAXN = 2e5+;
struct data
{
int v;
LL r;
};
vector<data>mmp[MAXN];
int N, M;
LL S;
int in[MAXN];
LL dp[MAXN];
queue<int>que;
int main()
{
int u, v;
LL r;
scanf("%d %d %lld", &N, &M, &S);
inc(i, , M){
scanf("%d %d %lld", &u, &v, &r);
mmp[u].push_back({v, r});
in[v]++;
// mmp[v].push_back({u, r});
}
inc(i, , N) if(in[i] == ) que.push(i);
while(!que.empty()){
u = que.front();que.pop();
for(auto x:mmp[u]){
if(dp[x.v] < dp[u]+x.r)
dp[x.v] = dp[u]+x.r;
if(--in[x.v] == ) que.push(x.v);
}
}
LL sum = ;
inc(i, , N) sum+=dp[i];
if(sum == ) puts("-1");
else{
printf("%lld\n", S/sum);
}
return ;
}

G、CSL 的训练计划【BFS 贪心】(“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)的更多相关文章

  1. D、CSL 的字符串 【栈+贪心】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)

    题目传送门:https://ac.nowcoder.com/acm/contest/551#question 题目描述 CSL 以前不会字符串算法,经过一年的训练,他还是不会……于是他打算向你求助. ...

  2. “新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛(D题,贪心+栈)

    链接:https://ac.nowcoder.com/acm/contest/551/D来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他语言10485 ...

  3. C、CSL 的密码 【set暴力 || 后缀数组】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛 )

    题目传送门:https://ac.nowcoder.com/acm/contest/551/C 题目描述 众所周知,CSL 最喜欢的密码是 ******.于是有一天……     为了改变这一点,他决定 ...

  4. H、CSL 的拼图 【多维点的交换】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)

    题目传送门:https://ac.nowcoder.com/acm/contest/551/H 题目描述 众所周知 CSL 不仅玩魔方很强,打麻将也很强.今天他打魔法麻将的时候,在路上撞到了一个被打乱 ...

  5. F、CSL 的神奇序列 【规律】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)

    题目传送门:https://ac.nowcoder.com/acm/contest/551/F 题目描述 CSL 有一个神奇的无穷实数序列,他的每一项满足如下关系: 对于任意的正整数 n ,有 n∑k ...

  6. E、CSL 的魔法 【模拟】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)

    题目传送门:https://ac.nowcoder.com/acm/contest/551#question 题目描述 有两个长度为 n 的序列,a0,a1,…,an−1a0,a1,…,an−1和 b ...

  7. “盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛题解&&源码【A,水,B,水,C,水,D,快速幂,E,优先队列,F,暴力,G,贪心+排序,H,STL乱搞,I,尼姆博弈,J,差分dp,K,二分+排序,L,矩阵快速幂,M,线段树区间更新+Lazy思想,N,超级快速幂+扩展欧里几德,O,BFS】

    黑白图像直方图 发布时间: 2017年7月9日 18:30   最后更新: 2017年7月10日 21:08   时间限制: 1000ms   内存限制: 128M 描述 在一个矩形的灰度图像上,每个 ...

  8. SHU 第15届上海大学程序设计联赛夏季赛[热身赛] 第三题(G题) - 英语成绩

    看完题目就觉得是个图论题…… 每个人的成绩就是vertice,两个人的分数差就是edge,那么肯定类似于一种relax的方式,不断将每个人的成绩的min往上提, 当然,单纯的遍历一遍G.E肯定不可能就 ...

  9. “科大讯飞杯”第18届上海大学程序设计联赛春季赛暨高校网络友谊赛 G 血压游戏

    [血压游戏] (https://ac.nowcoder.com/acm/contest/5278/G) 神奇的tag数组...,巧妙弥补了高度损失. 方法一:dsu on tree 类似长链剖分,不过 ...

随机推荐

  1. 微信小程序(一)--简单的介绍

    转自:https://developers.weixin.qq.com/miniprogram/dev/index.html 响应的数据绑定 框架的核心是一个响应的数据绑定系统. 整个小程序框架系统分 ...

  2. ios开发 学习积累20161101

    20161101 XML的声明 <?XML version="1.0" encoding="UTF-8" ?> XML文档必须有根元素 XML 对大 ...

  3. fuzhou 1683 纪念SlingShot ***

    Problem 1683 纪念SlingShot Accept: 361    Submit: 1287Time Limit: 1000 mSec    Memory Limit : 32768 KB ...

  4. mysql数据同步

    随着各行业信息化水平的不断提升,各种各样的信息管理系统都被广泛使用,各系统间数据完全独立,形成了大量的信息孤岛.出于管理及决策方面的需求,实现各平台的数据同步是一个很迫切的需求,TreeSoft数据库 ...

  5. 可持久化trie(BZOJ5338: [TJOI2018]xor)

    题面 BZOJ Sol 显然是要维护一个区域的 \(trie\) 树,然后贪心 区间 \(trie\) 树??? 可持久化 \(trie\) 树??? 直接参考主席树表示出区间的方法建立 \(trie ...

  6. Bootstrap框架和inconfont、font-awesome使用

    iconfont的使用:https://www.cnblogs.com/clschao/articles/10387580.html Bootstrap介绍 Bootstrap是Twitter开源的基 ...

  7. iframe在移动端的缩放

    工作中碰到个奇怪的问题,折腾了大半天,终于算是解决了,这里把分析思路和解决办法记录下. 项目是做响应式的公司官网,前期的静态图页面切完后就提交给后台作为模板使用了,我也就基本退出项目. 在后端落地时发 ...

  8. OSMC Vs. OpenELEC Vs. LibreELEC – Kodi Operating System Comparison

    Kodi's two slim-and-trim kid brothers LibreELEC and OpenELEC were once great solutions for getting t ...

  9. 微服务实战(三):以MySQL为例,从原理上理解那些所谓的数据库军规

    原文链接:微服务化的数据库设计与读写分离(来源:刘超的通俗云计算) 数据库永远是应用最关键的一环,同时越到高并发阶段,数据库往往成为瓶颈,如果数据库表和索引不在一开始就进行良好的设计,则后期数据库横向 ...

  10. 专访探探DBA张文升:PG在互联网应用中同样也跑的很欢畅

    张文升认为,PG无论在可靠性和性能方面都不输其它任何关系型数据库   张文升,探探DBA,负责探探的数据库架构.运维和调优的工作.拥有8年开发经验,曾任去哪儿网DBA.   9月24日,张文升将参加在 ...