POJ
MatrixYg
暂无
展开
-
POJ2443_状压的简单使用
1.题目链接。题意就是首先给你n个集合,询问m次,每次输入a,b.判断是否存在一个集合同时含有a,b.这个题就别想着暴力了,我们使用bitset状压一下,自己手动的模拟一下就知道原理了。代码如下:#include<iostream>#include<algorithm>#include<bitset>using namespace std;cons...原创 2019-01-02 22:24:47 · 202 阅读 · 0 评论 -
【POJ 3169】Layout
1.题目链接。题目大意:有n头牛,他们排成一排,但是两头牛之间的距离需要满足一些约束条件,求一下在同时满足这些约束条件的情况下,第一头牛到第n头牛距离的最大值。2.其实这个题目转化一下就是给了一堆不等式组:c1<=x1-x0<=c2,c3<=x2-x1<=c4......然后在这种条件下,求xn-x1得最大值。这是一个差分约束系统,解决这种问题就是转化为最短路问题(或者...原创 2019-07-12 14:51:50 · 115 阅读 · 0 评论 -
【POJ 3764】The xor-longest Path
1.题目链接。题意:给一颗树,带有边权,求一下树上路径异或和最大值。2.其实和之前BZOJ那道题有着异曲同工之妙,只需要的dfs一下,在dfs的过程中记一下当前节点到根节点的路径上的异或值,然后把这个值插到01字典树上,完事之后每次在字典树上查询最值即可,有人可能会觉得,有的点会重复计算,这样会导致出现的不是一条路径,而是两条或者多条路径交叉,其实这种情况时不存在的,因为只要一个数被计算两次,...原创 2019-07-12 13:34:57 · 186 阅读 · 0 评论 -
【POJ 2631】Roads in the North
1.题目链接。求树的直径裸题,树的直径定义为树上距离最远的两个点。至于求法,bfs,dfs,树DP都可以。简单说一下如何bfs,因为我觉得这个最好实现。(但是据说没办法处理负边权)。其实bfs很简答,就是先随机找一个点,然后找出距离这个点最远的点,再从这个点bfs找出距离这个点最远的点,就是直径。为什么??我举个例子,在一张图像中,是一个人,你想知道这个人的身高,那么你可以现在图上任选一个点,找到...原创 2019-06-16 14:54:11 · 203 阅读 · 0 评论 -
【POJ 3660】Cow Contest
1.题目链接。n头牛比赛,他们两两比赛,给出M场比赛的结果,每场结果两个数据A,B代表A可以赢B。问从这M场结果中能够确定几头牛的最终总体排名。2.这个关系显然是具有传递性的:因为A>B,B>C就可以推出A>C.这个性质叫做关系的传递性,我们可以对这个图求一个传递闭包,在求解的过程中,给每个点加上入度和出度。入度代表这头牛能够打败的牛的数量,出度代表能够打败它的数量,显然,让...原创 2019-06-05 17:06:10 · 175 阅读 · 0 评论 -
【POJ 3061】Subsequence
1.题目链接。给定一个序列,求这个序列的一个连续的子序列的和大于等于s,给出这个子序列的最小的长度。2.尺取法的裸题了,或者叫做双指针扫描。我们采用两个指针i,j.初始都初始化在0,然后让j增加到第一次大于等于s,这个时候j暂时不变,i开始增加,每增加一次记录一下答案,直到第一次不满足答案。然后j继续增加,如此以直到序列的末尾。这样一遍就能解决这个问题。#include<iostr...原创 2019-05-06 16:40:06 · 176 阅读 · 0 评论 -
【POJ 2528】线段树求解矩形覆盖
1.题目链接。给定一些海报,可能相互重叠,告诉你每个海报的宽度(高度都一样的)和先后叠放顺序,问没有被完全盖住的有多少张?海报最多10000张,但是墙有10000000块瓷砖长,海报不会落在瓷砖中间。如果直接建树,就算不TLE,也会MLE。即单位区间长度太多。其实10000张海报,有20000个点,最多有19999个区间。对各个区间编号,就是离散化。然后建数。其实浮点数也是一样离散化的。2....原创 2019-04-29 21:08:40 · 372 阅读 · 0 评论 -
【POJ 3264】RMQ裸题
1.题目链接。题目大意:给定一个数组,和q组询问,魅族询问两个数字,l,r。输出l和r之间最大值和最小值之差。2.行吧,RMQ裸题(不懂什么叫做RMQ的同学可以自行百度)RMQ只是一种操作,最大值最小值询问,实现方式一般都是基于ST实现的。当然也有其他的实现。#include<stdio.h>#include<iostream>#include<math...原创 2019-04-27 22:44:51 · 129 阅读 · 0 评论 -
【POJ2926】最大曼哈顿距离
1.题目链接。题目大意:给定n个点,每个点是一个五维的坐标,求这些点中最大的曼哈顿距离。2.显然直接暴力n方枚举是不行的。采用二进制枚举。怎么二进制枚举是一个很重要的问题。我们首先看一个很简单的例子:(1,2,3),(4,5,6).对于这两个元组,实际的距离应该是:abs(1-4)+abs(2-5)+abs(3-6).其实我们也可以这样写:如果我们把绝对值去掉,并且整理一下:(4+5+6)...原创 2019-04-10 22:24:03 · 3655 阅读 · 0 评论 -
【POJ2392】带有限制的多重背包
1.题目链接。题目大意:给你一堆Bolcks,每种Bolcks有三种属性:数量,高度,以及最高能放置的高度。问你用这些Bolcks能够组合堆起来最高的高度是多少。这个如果没有第三个条件,我们直接多重背包即可。第三个条件是什么意思呢?它就是在说,这些砖块所能放置的高度是有区间限制的。在这种情况下,求组合起来的最大值。2.首先我们贪心的选择,肯定是先选高度限制小的,就是说那些适合放在比较低的高度的...原创 2019-03-27 17:13:22 · 546 阅读 · 0 评论 -
【POJ1651】矩阵链乘
1.题目链接。矩阵链乘最优次数。区间DP。第一层枚举数量,第层枚举起点,第三层枚举中间位置。#include<iostream>#include<cmath>#include<cstring>#include<stdio.h>#include<cstdio>#include<algorithm>using n...原创 2019-03-21 15:55:11 · 153 阅读 · 0 评论 -
【POJ3070】矩阵快速幂裸题
1.题目链接。说这个题之前想说一下刚才切的一个水题,就是HDU1205.这个题其实很简单,就是相同的东西不能连续的放在一起。emmm,那么找一下最大的那个数量mmax,他会提供mmax-1个空位,算一下剩下的东西能不能把这些空位填满即可。那么再来看这个题目,很经典的fib问题,就是矩阵快速幂,不能再裸了。转移矩阵都给了。那行吧,就直接上代码了。(PS:注意把头文件该一下,POJ不支持万能头)...原创 2019-02-24 15:04:53 · 229 阅读 · 0 评论 -
基于ST的RMQ的实现
1.RMQ:Range Minimum/Maximum Query。区间最值的询问。是一种基于数组上的操作,比如对于数组a,询问在区间(l,r)里面a的最大值。2.RMQ问题有很多解决办法,比如直接暴力,线段树/树状数组,ST等。在这里面ST(sparse table:也被说成跳表)。在区间不做修改的时候是一种很好的解决办法,平均时间复杂度是O(nlogn),而且比较轻便,比线段树这些数据结构...原创 2019-02-05 11:17:28 · 341 阅读 · 0 评论 -
【POJ 3159】Candies
1.题目链接。题目大意:分糖果,其中需要满足约束条件,a要比b多c个,问在满足这样一组条件的情况下,第一个人于最后一个人最多相差多少个糖果。又是典型的差分约束系统,这里有点坑,队列实现的SPFA会超时,改成栈实现的就AC了(T了之后百思不得其解,不知为何,看了聚聚的Blog之后发现栈实现的SPFA可以过,就试了试,发现还真的可以)。#include<stdio.h>#inclu...原创 2019-07-12 15:14:07 · 144 阅读 · 0 评论