- 博客(5)
- 收藏
- 关注
原创 一些简要题解
1、USACO Dec 07 Best Cow Line, Gold 直接贪心,比较两个字符串大小可以用Hash或者后缀数组。 2、USACO Open 08 Cow Neighborhoods 我写了个最小曼哈顿生成树……求出生成森林以后扫一遍就行了。 3、USACO Open 09 tower 贪心的DP,让下面尽量宽,而且可以证明这样肯定能取到最优解。(我不会证,做的时
2015-01-23 11:12:14 811
原创 POI 18
1.Tree Rotations 从下至上贪心选择是否交换两棵子树,需要维护两棵子树交换以及不交换的逆序对数。 可以使用平衡树的启发式合并和线段树合并。 2.Lightning Conductor 把式子改写成f[i]=f[j]+w[i,j],注意到w满足四边形不等式(要用double,因为sqrt取整以后不满足四边形不等式),应用决策单调性的优化方式,正反做两遍即可。 3.Temper
2015-01-13 21:27:40 2224
原创 BZOJ1513 [POI2006]Tet-Tetris 3D 二维线段树
需要区间修改的二维线段树。 使用标记永久化。 我代码是抄的,跟网上别人代码一样。 #include #include #include #include using namespace std; const int MAXN=1030; int D,S,n; int d,s,w,x,y; int ql,qr,qu,qd,ans; struct Seg_X { int p[MAXN<<1
2015-01-07 17:30:03 1284
原创 BZOJ3230 相似子串
这个题思路应该算是比较简单的…… 先扫一遍height,算出前i个后缀中含有的不同子串个数,然后在这个和中二分,找到一个排名对应的子串。 然后就是最长公共前缀和最长公共后缀……用两个后缀数组即可完成所有操作。 但是我有两个之前写错了的地方: 1、没有开long long 2、注意算LCP的时候,要算RMQ(rank[p]+1,rank[q]),但如果rank[p],rank[q]大小关系
2015-01-03 23:47:14 1275
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人