摘要: 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2838 题目大意: 就是求将之前的排列变成一个递增的排列,每交换两个数的代价为两个数的和,求变成递增的排列所需的最小代价为多少。 其实就是求出逆序对的花费(每对逆序对的花费是这个逆序对的和) 解题思路: 阅读全文
posted @ 2018-04-26 22:22 _努力努力再努力x 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3584 题目大意: 给定一个N*N*N多维数据集A,其元素是0或是1。A[i,j,k]表示集合中第 i 行,第 j 列与第 k 层的值。 首先由A[i,j,k] = 0(1 <= i,j,k <= N) 阅读全文
posted @ 2018-04-26 22:00 _努力努力再努力x 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2642 题目大意: B x y:将星星x y点亮 D x y:将星星x y熄灭 Q x1 x2 y1 y2:询问该区域内有多少亮的星 解题思路: 二维树状数组模拟即可 注意: 1、下标+1 2、同一位置 阅读全文
posted @ 2018-04-26 21:51 _努力努力再努力x 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1892 题目大意: 题目大意:有很多方格,每个方格对应的坐标为(I,J),刚开始时每个格子里有1本书,然后让你统计一片区域有多少本书,还可以增加书和减少,移动书。 解题思路: 直接二维数组数组模拟 注意 阅读全文
posted @ 2018-04-26 21:24 _努力努力再努力x 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2852 题目大意: 题意: 给出三种操作, 0 在容器中插入一个数。 1 在容器中删除一个数。 2 求出容器中大于a的第k大元素。 解题思路: 用树状数组维护每个值,插入数字是add(x, 1),删除时 阅读全文
posted @ 2018-04-26 21:17 _努力努力再努力x 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3015 题目大意: 有一些树,这些树的高度和位置给出。现在高度和位置都按从小到大排序,对应一个新的rank,任意两棵树的值为min(高度的rank) * abs(位置差的绝对值)。问所有任意两棵树的值的 阅读全文
posted @ 2018-04-26 21:13 _努力努力再努力x 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 题目链接: https://vjudge.net/problem/POJ-1990 题目大意: 一群牛参加完牛的节日后都有了不同程度的耳聋,第i头牛听见别人的讲话,别人的音量必须大于v[i],当两头牛i,j交流的时候,交流的最小声音为max{v[i],v[j]}*他们之间的距离。现在有n头牛,求他们 阅读全文
posted @ 2018-04-26 21:09 _努力努力再努力x 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 题目链接: https://vjudge.net/problem/POJ-2513 题目大意: 给一些木棍,两端都有颜色,只有两根对应的端点颜色相同才能相接,问能不能把它们接成一根木棍 解题思路: 题意不难,典型的无向图判断是否存在欧拉通路或回路的问题。 1、欧拉通路或回路的判定条件是图联通,并且度 阅读全文
posted @ 2018-04-26 13:06 _努力努力再努力x 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1251 题目大意: Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). 解题思路: 阅读全文
posted @ 2018-04-26 11:55 _努力努力再努力x 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1247 题目大意: 给出一些单词,以EOF结束,看其中哪一个单词可以由其他两个单词组成,将其输出 解题思路: 将所有单词存入字典树中,每个单词拆成两部分查询是不是字典树中的单词。 此处是查询是不是单词, 阅读全文
posted @ 2018-04-26 11:52 _努力努力再努力x 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 原理详见:https://www.cnblogs.com/TheRoadToTheGold/p/6290732.html 模板一: 输入字符串,查询是不是单词或者前缀 查询单词的时候,在插入时在最后一个节点的地方标记为单词,查询时返回最后节点是不是单词标记 统计前缀出现的次数: 由于字典树中字母是边 阅读全文
posted @ 2018-04-26 11:46 _努力努力再努力x 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 题目链接: https://vjudge.net/problem/POJ-2503 题目大意: 就像查找一本字典,根据输入的条目和要查询的单词,给出查询结果(每个单词长度不超过10) 解题思路: map容器可以直接过,不过为了练习hash,写了个hash也可以过 阅读全文
posted @ 2018-04-26 10:02 _努力努力再努力x 阅读(167) 评论(0) 推荐(0) 编辑
摘要: const int mod = 9973;//一般为靠近总数的素数 struct Hashtable { int x;//hash存的值 Hashtable * next; Hashtable() { next = 0; } }; Hashtable * Hash[mod]; void Hash_Insert(int x)//存x { ... 阅读全文
posted @ 2018-04-26 09:24 _努力努力再努力x 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 题目链接: https://vjudge.net/problem/POJ-2002 题目大意: 有一堆平面散点集,任取四个点,求能组成正方形的不同组合方式有多少。 相同的四个点,不同顺序构成的正方形视为同一正方形。 解题思路: 直接四个点四个点地枚举肯定超时的,不可取。 普遍的做法是:先枚举两个点( 阅读全文
posted @ 2018-04-26 09:17 _努力努力再努力x 阅读(247) 评论(0) 推荐(0) 编辑