3159专题

poj 3159 (spfa差分约束最短路) poj 1201

poj 3159: 题意: 每次给出b比a多不多于c个糖果,求n最多比1多多少个糖果。 解析: 差分约束。 这个博客讲差分约束讲的比较好: http://www.cnblogs.com/void/archive/2011/08/26/2153928.html 套个spfa。 代码: #include <iostream>#include <cstdio>#i

Leetcode 3159. Find Occurrences of an Element in an Array

Leetcode 3159. Find Occurrences of an Element in an Array 1. 解题思路2. 代码实现 题目链接:3159. Find Occurrences of an Element in an Array 1. 解题思路 这一题的话我们只需要首先统计一下array当中目标元素x出现在第几次的位置,构造一个hash table,然后对于每一个qu

poj 3159 Candies(查分约束+堆栈优化的spfa最短路模板)

题目链接:点击打开链接 Description During the kindergarten days, flymouse was the monitor of his class. Occasionally the head-teacher brought the kids of flymouse’s class a large bag of candies and had fly

POJ - 3159 Candies 单源最短路模板题

题目链接 POJ-3159 题意 分糖,n个小朋友,m个关系,AB间关系的意思是A的糖果最多比B少w个,w为关系的权。求1号和n号最多能差多少糖果。 解法 裸的单源最短路,数据量大跑不了floyd,dij和spfa都是随便跑。 代码 #include<iostream>#include<cstring>#include<queue> #include<cstdio>#def

#网络流,费用流#洛谷 3159 JZOJ 2765 交换棋子

题目 给出一个黑白棋盘的起始状态,每个棋子可以向相邻或对角相邻的棋子交换,但是有限定的交换次数,问最少交换多少次到达目标状态 分析 一开始的思路就是跑费用流, 但是单纯的建图貌似不对,因为如果直接拆点会中间点交换两次,那么可以把次数取一半,对于原先是黑棋子而最后是白棋子向源点连边,原白后黑向汇点连边 代码 #include <cstdio>#include <cstrin

poj-3159,SPFA+堆栈

题目连接 分析:本题是通过最短路径来求差分约束问题。关于差分约束问题,为什么可以用最短路来求解。可以到网上找。 求最短路径,这题因为点比较多,所以用spfa写方便些。不过用列队会溢出,用循环列队会超时,所以这题可以用栈来实现。即节省空间,又可省时间。 代码:(弱弱地参考别人代码) #include<cstdio>#include<cstring>#include<stack>#d

POJ 3159 Candies (差分约束)

http://poj.org/problem?id=3159 题意:幼儿园有 n n n个小朋友,设第iii个小朋友得到的糖果数为 v[i] v [ i ] v[i],有 m m m个约束条件,表示BBB得到的糖果数不能多于 A A A得到的糖果数CCC个,即 v[B]−v[A]<=C v [ B ] − v [ A ] <= C v[B]-v[A]<=C,求第 1 1 1个小朋友与