思想就是把时间段离散化,然后用个点来表示一段时间 #include<iostream> #include<cstdio> #include<cstring> #include <algorithm> #include <math.h> #include <queue> using namespace std; ; ; struct Edge{ int v,w,next; }edge[N*N]; int head[N]; int lev…
很简单的任务调度模板题 把一个工作完成一天的量当做是边 /* 任务调度问题最大流 因为两个任务之间是没有关系的,两天之间也是没有关系的 所以抽象成二分图 任务i在天数[si,ei]之间都连一条双向边,权值为1,表示一天一个任务最多只能完成一个任务点 建立超级源点s,和所有的任务连双向边,权值为pi,表示需要pi天来完成任务 建立超级汇点t,和所有的天数连双向边,权值为m,表示这一天最多完成的任务贡献点 如果最大流是sum{pi} 就是可行,反之不行 */ #include<bits/stdc++…
题意: 有一个烧烤机,每次最多能烤 m 块肉,现在有 n 个人来买烤肉,每个人到达时间为 si,离开时间为 ei,点的烤肉数量为 ci,点的烤肉所需烘烤时间为 di, 每个人要烤的肉可以分成若干份在同时烤,问是否存在一种方案可以满足所有顾客的需求. 分析: 将所有的到达时间和结束时间按升序排序,得到 x <= 2n-1 个时间区间. 建图: s为源,t为汇, 每个顾客i作为一个结点并连边(s, i, ni*ti) 每个区间j作为一个结点并连边(j, t, (ej-sj)*M),其中sj, ej分…
比赛场上很容易想到是费用流,但是没有想到建图方法qwq,太弱了. 这里直接贴官方题解: 费用流.离散化坐标,每行用一个点表示,每列也用一个点表示.表示第i-1行的点向表示第i行的点连边,容量为第i行及以后能拿的棋子数的上限,费用为0,同理表示相邻列的点两两连边.若第i行第j列上有棋子,则表示第i行的点向表示第j列的点连边,容量为1,费用为该棋子的价值.可以定义源点表示第0行,汇点表示第0列,源点到汇点的最大费用流即为答案. 就是按照题解的建图方法,还有一些小细节:先要排序排除无用限制来减少限制边…
摘要: 随着大数据技术的发展,实时流计算.机器学习.图计算等领域成为较热的研究方向,而Spark作为大数据处理的“利器”有着较为成熟的生态圈,能够一站式解决类似场景的问题.那你知道Spark生态系统有哪些组件吗?下面让我们跟着本文一同了解下这些不可或缺的组件.本文选自<图解Spark:核心技术与案例实战> Spark 生态系统以Spark Core 为核心,能够读取传统文件(如文本文件).HDFS.Amazon S3.Alluxio 和NoSQL 等数据源,利用Standalone.YARN…
费用流,离散化后,l向r连费用为负长度的边容量为1 相邻的连容量为k的边,最好建S和T # include <bits/stdc++.h> # define RG register # define IL inline # define Fill(a, b) memset(a, b, sizeof(a)) # define Copy(a, b) memcpy(a, b, sizeof(a)) using namespace std; typedef long long ll; const in…
The Bonus Salary! Time Limit: 2000ms Memory Limit: 65536KB This problem will be judged on PKU. Original ID: 376264-bit integer IO format: %lld      Java class name: Main   In order to encourage employees' productivity, ACM Company has made a new poli…
http://codeforces.com/problemset/problem/704/D 题解 对于两种颜色的染色,我们可以把它看做选择问题. 比如说红色的代价小,所以我们尽可能多的染红色. 然后我们发现有限制的同一行或者同一列内染红色的数量是一段区间. 然后网格上的问题转化为横纵坐标匹配问题. 然后就是一个有上下界的网络流,貌似要判定有无解的话只能最大流? 离散化不要离散限制,还有要特判\(l>r\)的情况. 调了一年.. 代码 #include<bits/stdc++.h> #d…
[题意]: 有一个烤箱,烤箱在一个时刻最多考M个肉串,N个顾客,每个顾客有属性s,n,e,t s是来的时间,n是想要的肉串数量,e是最晚离开的时间,t是烤的时间(几分熟). 顾客的烤肉可以分开烤,比如一串烤肉烤的时间是t,那么分成t分就可以在1的时间内烤完.问能否满足所有的顾客. 很像HDU3527 [思路]: 以时间作为流 每个单位时间只能烤M个肉,那么如果一个顾客的属性为s, n, e, t,那么如果满足n*t <= (t-s)*M则这个顾客是可以被满足的. 那么问题可以转换成区间覆盖问题:…
Discretized Streams: An Efficient and Fault-Tolerant Model for Stream Processing on Large Clusters   当前的流处理方案, Yahoo!'s S4, Twitter's Storm, 都是采用传统的"record at-a-time"处理模式, 当收到一条record, 或者更新状态, 或者产生新的record 问题是, 在使用这些方案的时候, 用户需要考虑的东西很多, 比如 Fault…