hdu 3874【Necklace】
摘要:看了别人的线段树的题解才知道思路的,然后用树状数组写出来解决方案是:将询问的区间先存下来,然后按right边界排序 然后将排序后的询问按从左到右的顺序解决,从起始元素开始到right,依次插入到树状数组中去,如果之前有相同的数已经插入过(用hash判断即可),就从树状数组中(从先前那个相同的数的位置开始)删除加的那个数(即在树状数组中插入那个数的负值),然后再插入当前的这个数(从当前的数的这个位置) 然后就询问,将结果存在ans数组里面提示:我用g++编译的,那个__int64_t要改成__int64后提交,后面的那个输出(打印结果的地方)要改成"%I64d"输出才行。。。
阅读全文
posted @
2013-03-24 13:14
Shirlies
阅读(414)
推荐(0) 编辑
hdu 3450
摘要:吐吐槽吧:本来思路完全对了,但是那个二分查找搞错了,我还以为一个就可以了,结果查找上界和下界分别要一个查找函数(WA时就看了一下别人的代码,发现别人都是用两个查找函数的,模仿别人写的查找函数),自己得好好揣摩揣摩。。。还有就是最后的结果可能是负数。。。因为get_sum的值是小于9901的,而N的值可大于9901代码如下: 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 5 const int mod = 9901; 6 const int maxn = 100000 + 1
阅读全文
posted @
2012-04-30 16:55
Shirlies
阅读(309)
推荐(0) 编辑
hdu 1166【树状数组】
摘要:一道简单的树状数组,但是存在坑爹的问题。。。是我自己的问题。。。。。。~~~~(>_<)~~~~首先说一下输出,输出案例,是在输入那些阵营的人数之后在输出(再次表示不满,acm就一定要有案例输出吗,这个问题输出错了竟然判wa,害人不浅,我根本就没有想到这里会出错,浪费精力。。。~~~~(>_<)~~~~ )第二,我判别了一下人数删除时是否符合要删除的数量时就错了。。。。。。有问题吗?难道你要别人减去的人比本来的人数还要多。。。。。。你很喜欢负债吗?(~ o ~)~zZView Code 1 #include <cstdio> 2 #include <c
阅读全文
posted @
2012-03-25 11:28
Shirlies
阅读(363)
推荐(0) 编辑
hdu 1892【二维树状数组】
摘要:O(∩_∩)O哈哈~二维树状数组被我搞出来了,太开心了,第一道二维树状数组,(~ o ~)~zZ虽然中途还是出问题了,就是S询问的时候我没有考虑坐标的大小问题,还是搜了别人的代码才知道的,看来自己考虑问题不周到,~~~~(>_<)~~~~View Code 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 5 int book[1005][1005]; 6 int size = 1002; 7 void insert(int x,int y,int num) 8 {
阅读全文
posted @
2012-03-23 22:06
Shirlies
阅读(290)
推荐(0) 编辑