摘要: 题目大意就是说帮你给一些(n个)乱序的数,让你求冒泡排序需要交换数的次数(na[j]的数对)的个数。而我们再回顾一下归并排序的过程:假设回溯到某一步,后面的两部分已经排好序(就是说当前需要归并的两个部分都是分别有序的),假设这两个序列为序列a1:2 3 5 9 序列a2:1 4 6 8此时我们的目的就是要将a1和a2合并为一个序列。由于在没排序前a2序列一定全部都是在a1序列之后的,当我们比较a2的1与a1的2时,发现1 2 #include 3 #include 4 #define mem(a) memset(a,0,sizeof(a)) 5 #define MIN(a , b) ((a.. 阅读全文
posted @ 2013-08-10 19:51 再见~雨泉 阅读(6121) 评论(0) 推荐(2) 编辑
摘要: 此题的大意思说有一串珠子,每个珠子都有自己的欣赏值value,现在给你一串珠子每个的欣赏值,并给出一些询问,查询某个区间内部总欣赏值是多少,但是有一个约定就是如果这个区间内部有两个珠子的欣赏值是一样的,那么他们就视为一个。其实也就是求某个区间内部不同的数的和。这里学到了一个比较好的方法,那就是离线操作。根据我的理解,离线操作就是为了解决在询问中所遇到的矛盾的,它在本题上的实现就是先将查询排序,比如按照每个查询的右端点的升序排序,这样的话每次查询一个区间的时候,我们就把它的右端点到上一个查询的右端点之间且在之前已经出现过了相同价值的点删除掉,这样的话就可以保证对后面的查询不会有影响。具体实现就是 阅读全文
posted @ 2013-08-10 11:38 再见~雨泉 阅读(1183) 评论(0) 推荐(0) 编辑