POJ
whosemario
这个作者很懒,什么都没留下…
展开
-
poj 3017
<br />#include<iostream>using namespace std;#define MAXN 100003#define INF ((1LL)<<60)long long dp[MAXN];int f[MAXN];int b[MAXN];long long sum[MAXN];struct SegTree{ int left[MAXN*4],right[MAXN*4]; long long _min[MAXN*4];原创 2011-05-17 10:49:00 · 1361 阅读 · 0 评论 -
poj 2991
<br />线段树,几何知识很重要啊,左子树会对右子树产生影响<br />#include<iostream>#include<cmath>using namespace std;#define DEBUG_ENABLE 1#define eps 1e-8#define MAXN 10005const double PI = (acos(-1.0));int sum[MAXN];int len[MAXN];struct point{ double x,y;原创 2011-04-13 16:31:00 · 989 阅读 · 0 评论 -
poj 2886
<br />线段树解决约瑟夫环问题,一开始要处理一下反质数<br />#include<iostream>using namespace std;#define MAXN 500002struct Person{ char name[12]; int step;}person[MAXN];int rprime[]={1,2,4,6,12,24,36,48,60,120,180,240,360,720,840,1260,1680,2520,5040,7560原创 2011-04-14 15:29:00 · 910 阅读 · 0 评论 -
pku 3145
<br />做的我吐血的题啊,吃饭时突然想到有个小地方错了,改了以后就AC<br />#include<iostream>using namespace std;#define MAXN 500005int rank[MAXN];int vec[40005];struct SegmentTree{ int left[MAXN*4],right[MAXN*4]; char exist[MAXN*4]; char unexist[MAXN*4]原创 2011-04-20 17:43:00 · 525 阅读 · 0 评论 -
poj 2464
<br />很有意思的题目,貌似用树状树状解更合适,但是还是用线段树代替了<br />#include<iostream>#include<vector>#include<algorithm>using namespace std;#define MAXN 200002int ind_x[MAXN];int ind_y[MAXN];int sum_x[MAXN];int sum_y[MAXN];struct point { int x,y;}p[MAXN];原创 2011-04-23 21:56:00 · 1279 阅读 · 2 评论 -
poj 2018
<br />#include<iostream>using namespace std;#define MAXN 100005int sum[MAXN];int f[MAXN];long long xmult(int i,int j,int k){ return (long long)(i-j)*(sum[k]-sum[j])-(long long)(k-j)*(sum[i]-sum[j]);}int queue[MAXN];int back;void run原创 2011-04-29 18:59:00 · 1281 阅读 · 0 评论 -
POJ2057
题目的关键是达到某个节点的时候,以怎样的顺序去遍历它的子树呢?我们假设某个节点有两个子树A和B,我们定义Pa是Snail的Home位于A子树中的叶节点上的概率,Pb是Snail的Home位于B子树中的叶节点上的概率;Sa是Home位于A子树上所要走的路程,Fa是Home不在A子树上所要走的路程,Sb和Fb同理。假设先走A树再走B树,所走的步数为:Sa*Pa+(Fa+Sb)*Pb;如果是先走B树原创 2012-12-08 16:29:48 · 1335 阅读 · 0 评论 -
树形DP——POJ1947 and POJ2486
本文针对POJ上的2057、1947、2486、3140四道题目,谈一下个人对树形DP的理解,上面4题无法覆盖树形DP的所有形式,但也有一定的针对性,值得去做一做,思考一下:树形DP中常常用到“背包思想”,1947和2486就是利用了“背包思想”,状态想好了,最后就是在填“背包”,某个节点的“背包”是用他们的子树的状态进行填充的。POJ1947:状态dp[i][p]表示以节点i为根原创 2012-12-23 23:07:32 · 1709 阅读 · 0 评论