
poj
文章平均质量分 72
PrimeG
算法学习ing
展开
-
poj3009 Curling 2.0 dfs
题意:扔石头,在不碰到墙壁和终点的时候石头直线上下左右移动,石头碰到墙壁可以停止继续向其他方向扔,被砸到的墙壁会碎掉变没,直到到达终点或者扔出屏幕为止(不能向旁边就是墙壁的方向扔),最多扔10次,超过10次或者扔出屏幕就算失败,输出-1,成功的话输出扔的次数dfs搜索,先走一步判断有没有越界、有没有撞墙、有没有到终点,如果都没有就循环直到撞到墙壁,或者越界,或者到终点,撞到墙壁就把墙壁原创 2017-03-11 21:54:01 · 374 阅读 · 0 评论 -
POJ 1733 Parity game hash离散化+带权并查集
由于数据范围过大,所以需要进行hash离散处理,然后就是建立并查集,ranks[x]表示节点x到根节点奇偶性,然后每次更新一次权值就好了,输出第一次错的位置。#include#include#include#include#include#include#include#include#include#include#include#include#include#i原创 2017-04-27 22:49:42 · 347 阅读 · 0 评论 -
POJ 1456 Supermarket 贪心+优先队列
可以从截止日期最大的一天开始循环,优先队列来维护队列中的利益最大值,把截止日期等于当天的加入到队列中,每个日期在队列中有成员时都要选其中的最大值即可。#include#include#include#include#include#include#include#include#include#include#include#include#include#inclu原创 2017-04-27 15:40:17 · 388 阅读 · 0 评论 -
POJ 1182 食物链
可以建立3*n的并查集,x,x+n,x+2*n分别代表一个食物圈。即若x和y属于一个类别的情况就是x和y连接,(x+n)和(y+n)连接,(x+2*n)和(y+2*n)连接;如果x吃y,那么x和(y+n)连接,(x+n)和(y+2*n)连接,(x+2*n)和y连接。依次连接即可#include#include#include#include#include#include#incl原创 2017-04-26 13:06:49 · 379 阅读 · 0 评论 -
POJ1611 The Suspects 并查集
没什么好说的,建立n的并查集,把每个group的人都连起来,最后遍历一遍即可。#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define INF 0x3f3f3f3f#define in原创 2017-04-25 19:51:44 · 309 阅读 · 0 评论 -
poj2236 Wireless Network 简单并查集
题意:有若干台坏的电脑,每个电脑有一个坐标位置,并且在修好后可以与和其距离小于等于d的电脑联系,两台电脑间也可以通过其他电脑间接联系,输入‘O’(此为字母O,刚开始看成数字‘0’,改了好久才发现)后再输入数字即为修复该电脑,输入‘S’后再输入两个数字即为测试该两台电脑是否可以进行联系。建立2*N并查集,当修复了某一台电脑后用新的结构体记录,编号设为x,并对之前修复过的电脑循环操作,某一原创 2017-03-15 15:03:00 · 426 阅读 · 0 评论 -
POJ 2912 Rochambeau 并查集+枚举
和食物链那题很像,只要把裁判枚举一遍即可,当前枚举的裁判不参与矛盾判断,没有矛盾的组数为0时,即Inpossible,大于1时就是Can not determine,等于1时是可以确定裁判的,裁判即没有出现矛盾的那一组枚举的人,判断轮数即所有枚举情况中的出现矛盾的最大轮数。#include#include#include#include#include#include#includ原创 2017-04-28 17:30:06 · 350 阅读 · 0 评论 -
POJ 3468 A Simple Problem with Integers 线段树(成段更新)
基本是裸的线段树,维护区间元素和,设一个lazy数组来保存更新数据,区段更新即可。#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define INF 0x3f3f3f3f#def原创 2017-04-11 23:18:20 · 259 阅读 · 0 评论 -
poj1703 Find them, Catch them 基础并查集问题
题意:有龙和蛇两类动物,给出若干信息,信息包括若干个两个编号的动物不是一类的,当输入‘A’时,要输出该两个编号的关系信息。建立2*N并查集,对于‘D’的时候,要把两个编号a和(b+N)连接,b和(a+N)连接,对于每次访问‘A’,当两个编号a,b满足a与b连接的时候为一个类型,a与(b+N)连接为不同类型,都不连接是无法确定。#include#include#inclu原创 2017-03-15 16:19:41 · 324 阅读 · 0 评论 -
poj2010 Moo University - Financial Aid 优先队列
题意:给C只小牛办学校,但是学校只能收N(N为奇数)个小牛,每个小牛有一个考试分数和他所需的费用,小牛的费用由学校来提供,但是学校只有总共F资金,现在想要使得收的N只小牛中的分数排在中间的最大化,并输出这种情况的这个中间值,如果无法满足收N个小牛就输出-1。先把小牛用分数排序,后循环选择小牛,用优先队列算出每个小牛左边n/2个最小费用的和,在从右面用优先队列算出相应小牛的右边n/2个最原创 2017-03-15 10:38:58 · 388 阅读 · 0 评论 -
poj3614 Sunscreen贪心+优先队列(怕晒的奶牛)
题意:每个奶牛有个防晒系数(spf)范围,有若干个防晒露可以分别将spf降到某个值,但是每个防晒露都有次数限制,输出最多可以保护几个奶牛。先通过每个奶牛的minspf进行从小到大排序,并将防晒露的spf值从小到大排序,用优先队列对奶牛的maxspf维护,顶层为最小值,对于每个防晒露的spf值,取minspf小于等于这个值的放进优先队列,再从队列中取值直到该防晒露用完,依次循环,最后输出原创 2017-03-15 14:47:37 · 419 阅读 · 0 评论 -
poj3669 Meteor Shower bfs
题意:一个地图,会在特定时间时坐标(xi,yi)受到破坏,其周围上下左右也会被破坏,被破坏的地点无法通过,一次可以走一步,问走到安全地点的最少用时,如果无安全地点就输出-1。先对地图所有点赋值INF,再通过输入破坏数据把当前的地图每个点赋值为最早破坏时间,再从起点开始bfs,每次移动都要时间+1,遇到越界或者当前地点破坏时间小于等于当前时间就continue,遇到当前地点值为INF就算原创 2017-03-15 14:26:45 · 328 阅读 · 0 评论 -
poj1979 水题简单dfs
题意:画一个表格,'.'表示可走的路,'@'表示出发点,'#'表示不能走的路,输出可走的范围,简单dfs深搜。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;char m[21][21];int dx[原创 2017-03-11 21:05:17 · 550 阅读 · 0 评论 -
POJ 2492 A Bug's Life 简单并查集
直接建立2*n的并查集,如果x和y没有连着就把(x+n)和y连起来,x和(y+n)连起来,反之就是有错误,一定记住要把数据输完,wa了好久发现这个问题。。。#include#include#include#include#include#include#include#include#include#include#include#include#include#in原创 2017-04-27 23:39:06 · 353 阅读 · 0 评论