07 2017 档案
摘要:题目链接:http://poj.org/problem?id=3169 AC思路: spfa算法。 设各牛的位置为x[ ]。 对于感情好的牛,即第2到ML+1行:A B D, 有x[B] - x[A] <=D.而对于感情不好的牛,即第ML+2到ML+MD+1行: A B D, 则有x[B] - x[
阅读全文
摘要:题目链接:http://poj.org/problem?id=1062 解题思路: 枚举区间+Dijkstra 一开始理解错了题意,WA了好久。后来参考题解才AC了。 把每一样物品看成一个点,由物品A换到物品B看成从A指向B的边,这样一来就把问题转换成最短路问题了,具体实现看代码吧。。。关键是枚举区
阅读全文
摘要:题目链接:https://vjudge.net/problem/POJ-1850 AC思路: 可以把一个字符串S(设其长度为len) 所对应的数字看成排在其前面的所有字符串的个数加一。 对于S,排在其前面的字符串可以分成两类: 1、长度小于len 的所有字符串; 2、长度等于len 并且排在S前面的
阅读全文
摘要:题目链接:https://vjudge.net/problem/POJ-3252 知识点:组合数的一个递推式:C(i,j)=C(i-1,j-1)+C(i-1,j) (易证) 解题思路: 要求有多少个round number小于或等于某一个数S (其二进制位数为t),我们分三类进行: 1、看看S本身是
阅读全文
摘要:题目链接:https://vjudge.net/problem/POJ-1733 解题思路:并查集+离散化 AC代码: 1 #include <iostream> 2 #include <cstdio> 3 #include <vector> 4 #include <algorithm> 5 #in
阅读全文
摘要:题目链接:https://vjudge.net/problem/POJ-1984 解题思路:并查集+离线操作。 用dx[ ]和dy[ ]两个数组存储某点相对于该点所在集合的源头的方位,因此不难推知dx[ ]和dy[ ]要初始化为0。当把一个点依附到另一个点之上时所用的技巧值得细细体会。而finds(
阅读全文
摘要:题目链接:https://vjudge.net/problem/POJ-1860 解题思路:每种货币就是一个点,而兑换点其实就是边,由此组成图,求的是“最长路”。利用Bellman-Ford算法判断是否有正环。 AC代码:
阅读全文
摘要:题目链接:https://vjudge.net/problem/HDU-1024 解题思路:自己完全没有思路,于是去看了kuangbin大神的题解,看了半天才大概理解了,自己写了一版,然后发现跟题解几乎一毛一样。。。这一题得详详细细地写一篇题解,好好地思考总结一下。 用num[]数组保存数据,n为数
阅读全文
摘要:题目链接:https://vjudge.net/problem/POJ-3268 解题思路: 各牛从 X 回家的最短路很容易求,用 Dijkstra 求 X 到各点的单源最短路即可。难点在于求各牛从家到 X 点的最短路,因为路是单向的,所以往返的最短路未必相等。在这点有一个很巧妙的解
阅读全文
摘要:题目链接:https://vjudge.net/problem/HDU-3308 解题思路:以len[ ]保存区间内的最长单调递增区间长度,以llen[ ]保存区间内从第一个元素开始的最长单调递增区间长度,以rlen[ ]保存区间内以最后一个元素为结尾的最长单调递增区间长度,在此基础上建立线段树。【
阅读全文
摘要:题目链接:https://vjudge.net/problem/POJ-2991 知识准备: 1、向量旋转公式:向量(x,y)逆时针旋转角度A,则旋转后的向量为(x*cos A-y*sin A, x*sin A+y*cos A). 详见:https://www.zybang.com/question
阅读全文
摘要:题目链接:https://vjudge.net/problem/POJ-3225解题思路:这道题要是不看题解以本渣新现在的实力确实是做不出来。 以区间为基础建立线段树。 当X=‘U', 将区间T内的线段上的数字都置为1;当X='I', 将区间T外面的数字置为0;当X=‘D‘,将区间T内的数字置为0;
阅读全文
摘要:题目链接:https://vjudge.net/problem/POJ-1436 解题思路:基于y轴建立线段树。 如图是根据样例画出的图。下面都以题目样例为例。 但是,如果仅仅以给出的y1, y2为边界的话会出现线段的最右点被当成一小段线段的问题,样例中的x=4的线段和x=1的线段会被判定“不可见”
阅读全文