POJ
文章平均质量分 84
Willona_C
这个作者很懒,什么都没留下…
展开
-
poj2886 Who Gets the Most Candies?(反素数 + 线段树)
题意:n个孩子坐一圈,依次跳出圈子,跳出的孩子手中卡片上的数值v[i]表示他左手边(顺时针数)第v[i]个孩子跳出圈子。第p个跳出圈子的孩子得到的糖数等于p约数的个数,求问拿糖最多的孩子的名字和糖数。 这道题可以转化为求出1~n中约数个数最多的数p,并且求出第p个跳出圈子的孩子原本的位置。 因为敲这道题的关系,我发现了一个很神奇的东西,叫作“反素数”。以我的语文水平还不能完全清楚的表达反素数的原创 2015-07-27 16:22:20 · 445 阅读 · 0 评论 -
POJ2533 Longest Ordered Subsequence(最长递增子序列)
题意:长度为n的数列,求最长递增子序列的长度。 法一:动态规划,时间复杂度O(N²): dp[i]表示以第i个为结尾的数列的最长子序列长度,等于该数之前的最长子序列(该数大于子序列的最大数)的长度加一。 #include #include #include using namespace std; int a[1005],dp[1005]; int main() { in原创 2015-07-26 20:40:31 · 455 阅读 · 0 评论 -
poj2417 Discrete Logging(BSGS:Baby Step Giant Step)
题意:求L使B的L次幂与N对P同余。 题目很短,一开始以为是数学题,想着还要推公式,好麻烦。后来才发现有hint,但是并没有什么用,因为按公式敲完一定会超时。学长说用BSGS做,就找了一下模板,半知半解吧,没有完全搞懂,就当收集了一个新模板吧,感觉BSGS算法大多是都是解数学题,以后再做类似题的时候再做扩展。 #include #include #include #include #i原创 2015-08-05 23:34:37 · 708 阅读 · 0 评论 -
poj1273 Drainage Ditches(最大流)
题意:n条水管,m个结点,给出每条水管的最大流量,求从第一个结点流向最后一个结点,最多的水流量。 典型的最大流模板题,套用Dinic算法的模板。 #include #include #include #include #define maxn 205 using namespace std; int m, n, s, e, c; int maps[maxn][maxn], q[ma原创 2015-08-06 09:49:33 · 346 阅读 · 0 评论 -
poj1087 A Plug for UNIX(最大流)
题意:n个插座,m个电器,k个转换插头(a b 表示把插头为a的转换成b插头),求最少有多少个电器无法充电。 转换题意,就是求最多可以多少个电器同时充电,最后用总电器数减一下就可以了。 因为插头名和电器名都是字符串,为了方便记录其序号来建图,就用map来存储。自定一个源点和汇点,源点向电器建边,权值为1;各电器向对应插座建边,权值为1;插座向汇点建边,权值为1;对于转换插头a b,插座a向插座原创 2015-08-06 10:07:54 · 444 阅读 · 0 评论 -
poj1274 The Perfect Stall(二分图匹配 / 最大流)
题意:n头牛,m个位置,每头牛可以待在s个位置上,给每个牛分配一个位置,求问最多几头牛可以分配到位置。 这是二分图匹配的基础题,也可以用最大流来做,直接贴代码。。 二分图匹配: #include #include #include #include #define maxn 205 using namespace std; int maps[maxn][maxn], vis[ma原创 2015-08-06 10:24:37 · 570 阅读 · 0 评论 -
poj1459 Power Network(最大流)
题意:n个结点,nc个用电点,对应一个最大用电量;np个发电站,对应一个最大发电量;m条电缆,对应一个最大传输量。求最后所有用电点的最大可用电量之和。 最大流建图,定一个源点,源点向发电站建边,权值为发电站对应的发电量;电缆建边,权值为电缆对应的传输量;用电点向汇点建边,权值为用电点对应的最大用电量。 #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #define maxn 105 using na原创 2015-08-06 10:45:20 · 419 阅读 · 0 评论 -
poj3281 Dining(最大流)
题意:n头牛,f种食物,d种饮料,每头牛对应若干食物和饮料,要给每一头牛分配一种饮料喝一种食物,互不重复。求最多几头牛可以分配到。 建图,边的权值均为1。源点向食物建边,饮料向汇点建边,每个牛建两个结点,两个结点间建边,以限制每头牛只用一次,再食物向其中一个牛的结点建边,牛的另一个结点向饮料建边。建图完毕就是简单的最大流。 #include #include #include #incl原创 2015-08-06 11:02:09 · 438 阅读 · 0 评论 -
poj2828 Buy Tickets (线段树)
题意:插队买车票,求最后排队次序。 从后往前想数组中插入,输入的两个数a[i],v[i]分别表示插入v[i]的位置前还有a[i]个空位。 用线段树记录区间中的空位个数,每输入一次找到应在的位置,赋值并更新树。 函数名正常应该是update的,敲题的时候觉得是在查询v[i]在数组中的位置,就写了query......现在越看越怪异 #include #include #include原创 2015-07-27 15:04:36 · 383 阅读 · 0 评论 -
poj1009 Edge Detection
题意:图片分成一格一格的像素点,输入一张图的各个像素值,输出转化后图片的像素值。首先输入图片的宽度,即一行的像素点个数。图片像素的描述方式是run length ecoding(RLE),即一组数(V,L)表示连续L个点的像素值为V。将每个像素点的值与周围的像素点值分别求差,取绝对值的最大值,这个值就是输出图片中的对应点。 分析:因为像素点个数最多有10^9个,所以不可能将所有像素点存在原创 2016-03-12 22:59:59 · 453 阅读 · 0 评论