随笔分类 - 数据结构
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4334题目大意:输入5行,每行有n个数字,让你从这5行中每行抽取一个数让这5个数的和我0。如果存在输出Yes,否则输出No解题思路:用O(n^2)的时间求出前两行所有sum的值存入hash表中,注意存的时候存它的相反数,下面再解释。然后再用O(n^3)的时间枚举后三行所有的sum值,现在只需要判断hash表中是否有它对应的数,因为上面我们存的是相反数,这就是我们上面为什么存相反数的原因了。如果找到了,直接跳出循环。还有一点要注意的是,hash表不能赋初值,hash表最好开到它所有数据十倍左右,藐视我
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1892题目大意:有很多方格,每个方格对应的坐标为(I,J),刚开始时每个格子里有1本书,然后让你统计一片区域有多少本书,还可以增加书和减少,移动书。解题思路:和一维树状数组没撒子区别。一维扩展到二维而已。需要注意的两点是:1.x,y坐标从0开始,所以存储更新的时候坐标分别加1进行更新。因为0坐标会进入死循环。 2.区间求和的时候bit数组里面存的是它整个左下角的和,所以还要进行操作(即下面的find函数)让它表示的此位置的数目。 1 #include <iostream> 2...
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4000题目大意:给出n个数,求(x<z<y)的次数 。(x,y,z一次先后出现)解题思路:题目数据量很大,暴力肯定不行的。设现在出现的位置为x,后面比它大的数有s个。s个选两个(y,z)有s*(s-1)/2种。此时yz无序。然后按题目要求x<z<y,所以还要把x<y<z除掉。 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include &
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1541题目大意: 开始输入一个n(表示有n颗星星)。接下来n行,每行输入一个x,y,代表星星的坐标,注意y是递增输入。求各阶段星星的等级(阶段分为0~n-1)有多少,星星等级数计算方法为本星星左下角的有的星星个数。 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <cstring> 5 using namespace std; 6 7 const i
阅读全文

浙公网安备 33010602011771号