记为一条从u 到v 的,流量为cap 的,费用为cost 的弧与反弧
源点向每个房间连边
每道菜向汇点连边
每个人拆成两个用,x+p 与房间连边,x+p+n 与菜连边
当第k 个人喜欢第x 个房间,连边
当第k 个人喜欢第x 道菜,连边
跑一边S 到T 的最大流
[USACO5.4]奶牛的电信Telecowmunication
记为一条从u 到v 的,流量为cap 的,费用为cost 的弧与反弧
拆点,对于点x,分为x 和x+n 两点,x 负责流入,x+n 负责流出
对于每个点连边
对于原图每条连接u,v 的边,连边,
跑一边s+n 到t 的最大流
最大流最小割
[SDOI2009]Elaxia的路线
记E 为Elaxia 的最短路DAG,W 为w 的最短路DAG
根据W 重构E 每条边的权值
对于连接u,v,权值为val的边
当且仅当在W 中或时,边权为val,否则为0
在E 上跑一边最长路得出答案
[NOIP模拟]八戒
题目描述
给出n个点,m条边
每个点有一个权值w,和衰减速度v,每走1单位的路衰减v
保证最优取法所有点权值均大于0
用记录最小衰减值,其中i 为当前点位置,s 为当前状态
其中为i 到j 的距离,可以用Floyd 处理
[NOIP模拟]奇怪的队列
题目描述
nodgd的粉丝太多了,每天都会有很多人排队要签名。
今天有n个人排队,每个人的身高都是一个整数,且互不相同。很不巧,nodgd今天去忙别的事情去了,就只好让这些粉丝们明天再来。同时nodgd提出了一个要求,每个人都要记住自己前面与多少个比自己高的人,以便于明天恢复到今天的顺序。
但是,粉丝们或多或少都是有些失望的,失望使她们晕头转向、神魂颠倒,已经分不清楚哪一边是“前面”了,于是她们可能是记住了前面比自己高的人的个数,也可能是记住了后面比自己高的人的个数,而且他们不知道自己记住的是哪一个方向。
nodgd觉得,即使这样明天也能恢复出一个排队顺序,使得任意一个人的两个方向中至少有一个方向上的比他高的人数和他记住的数字相同。可惜n比较大,显然需要写个程序来解决,nodgd很忙,写程序这种事情就交给你了。
从小到大考虑每个人,对于每个人贪心地考虑位置
用线段树维护,支持求排名和单点修改