
一些常用技巧
guoshiyuan484
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu5714
先开始我是思考在每行的情况忽略了小明这个关键因素,这题的关键就是注意一个技巧将分散的变量集中在一个点上这是一个常用技巧。。 注意在离散化话一下。 #include #include #include using namespace std; int dir[2][40000],all[40000]; struct pos { int kind,addkind,p; }; int t,n原创 2017-11-08 18:48:49 · 247 阅读 · 0 评论 -
hdu5715
二分+trie优化 dp?...不存在的。。。就是用了下dp的思想 trie里存的是前缀和,(我会告诉你我先开始是一段一段存的然后很高兴的写了。。无比复杂。。以为自己写了个很棒的新式trie。。结果别人就只用一个前缀就把我的所有功能完成 了,最搞笑的是我tm还给我写的trie加了个lazy优化。。。。。然后调试半天没弄出来。。。弃疗。。网上搜题解。。发现只需要一个前缀和就好了 道理就是我们分原创 2017-11-12 16:38:01 · 323 阅读 · 0 评论 -
hdu5725
这题网上大多讲得很清楚就不说了。。。 http://blog.csdn.net/y1196645376/article/details/52187900//这个老哥讲得好 主要就是注意一下(long long)就好了,还有就是计数的关键是注意到我们可以把曼哈顿距离分拆成横和竖两个方向分别计算。 第一行的曼哈顿距离的贡献就是第二行,第三行,第四行,。。。哪些行的点到第一行的竖直距离是1 2 3原创 2017-12-11 10:20:01 · 305 阅读 · 0 评论 -
hdu5700
首先把每个区间的两点(不用分是左端还是右端我们只看位置,但是要打上标记是左端还是右端)都加入到数列中,然后对序列进行排序,然后分左端点和右端点进行求最值,具体方法是: 1.你要注意一个性质就是选出来的答案的区间左端至少有k个左端点。然后我们就是不断的移动: 举个栗子: 11 3 4 1 2 3 4 5 6 7 8 9 10 11 1 8 2 7 3 6 4 5 排序: 1 2原创 2017-11-26 20:45:56 · 322 阅读 · 0 评论 -
hdu5729思维~~~
相当棒的一道题,主要是注意一些性质: 1.所有小正方形的边长都相等那么很明显这是一个平行四边形。菱行 2.平行具有传递性,也就是说如果某两条边垂直,那么那些平行的边也相互垂直!!!这是此题关键 3.我们的目标是所有小正方形的边一直保持垂直。 4.如果你此前做过关于二分图的一些题的话(网格题一般都会有二分图~~~~)你就会发现此题就是求联通图的数目,直接dp就好了 >_ 写联通图dp的关原创 2017-12-16 21:49:05 · 312 阅读 · 0 评论 -
hdu5765高维前缀和
这题主要难点是高维前缀和,当然还有关于子图的联通性问题,其实是个很简单的dp,如果不太了解这方面的知识可以做hdu5713 现在就说一下高维前缀和: 首先我们想一个简单的二位前缀和,这个在字符串hash种很常见, 比如(0,0)~(1,1) 可以是 (0,0) (1,0) (0,1) (1,1) 所以dp[1][1]=value[0][0]+value[1][0]+value[0原创 2018-01-19 09:37:40 · 460 阅读 · 0 评论