- 浏览: 109471 次
- 性别:
- 来自: 广州
最新评论
-
xinhemei:
我试了试,发现gmail和163的不行。好像ajax请求失败了 ...
jQuery实现邮箱自动登录 -
酒鬼_yuan:
我正在找 谢谢了
关于yui的学习
package hard; import java.io.BufferedInputStream; import java.util.Scanner; /** * poj2299 * 利用归并排序求逆序对 * 如果是利用冒泡的话,超时!!! * @author NC */ public class Poj2299 { static long num = 0;//要long才能过啊。。。。 public static void main(String[] args) { Scanner scan = new Scanner(new BufferedInputStream(System.in)); while (scan.hasNext()) { int n = scan.nextInt(); if (n == 0) { break; } num = 0; int data[] = new int[n]; for (int i = 0; i < n; i++) { data[i] = scan.nextInt(); } mergeSort(data, 0, n - 1); System.out.println(num); } } static void mergeSort(int[] array, int left, int right) { if (left < right) { int center = (left + right) / 2; mergeSort(array, left, center); mergeSort(array, center + 1, right); Merge(array, left, center, right); } } static void Merge(int[] array, int left, int center, int right) { //[1,2,3,4] left=1,ceter=2,right=4 int[] temp = new int[right - left + 1];//存放被合并后的元素 int i = left; int j = center + 1; int k = 0; while (i <= center && j <= right) { if (array[i] > array[j]) { temp[k++] = array[j++]; /* array[i]后面的数字对于array[j]都是逆序的 */ num += center - i + 1; } else { temp[k++] = array[i++]; } } while (i <= center) { temp[k++] = array[i++]; } while (j <= right) { temp[k++] = array[j++]; } //把temp[]的元素复制回array[] for (i = left, k = 0; i <= right; i++, k++) { array[i] = temp[k]; } } }
#include <stdio.h> #include <stdlib.h> long long num ;//一样得用long long才能过 long data[500000]; long temp[500000]; void Merge(long array[], long left, long center, long right) { //[1,2,3,4] left=1,ceter=2,right=4 int i = left; int j = center + 1; int k = 0; while (i <= center && j <= right) { if (array[i] > array[j]) { temp[k++] = array[j++]; /* array[i]后面的数字对于array[j]都是逆序的 */ num += center - i + 1; } else { temp[k++] = array[i++]; } } while (i <= center) { temp[k++] = array[i++]; } while (j <= right) { temp[k++] = array[j++]; } //把temp[]的元素复制回array[] for (i = left, k = 0; i <= right; i++, k++) { array[i] = temp[k]; } } void mergeSort(long array[], long left, long right) { if (left < right) { long center = (left + right) / 2; mergeSort(array, left, center); mergeSort(array, center + 1, right); Merge(array, left, center, right); } } int main() { long n = 0, i; while (scanf("%ld", &n)) { if (n == 0) { break; } for (i = 0; i < n; i++) { scanf("%ld", &data[i]); } mergeSort(data,0, n-1); printf("%lld\n", num); num = 0; } return 1; }
发表评论
-
Poj3126
2010-05-29 22:07 1233import java.io.BufferedIn ... -
poj3125简单模拟
2010-05-25 11:44 1004import java.io.BufferedInputS ... -
还是水
2010-05-24 12:53 767import java.io.BufferedInputS ... -
Poj3085再水一下
2010-05-24 12:28 864import java.io.BufferedInputS ... -
Poj3673超水题
2010-05-24 12:12 867package easy; import java. ... -
Poj3278 广度优先搜索
2010-05-22 23:24 1330import java.io.BufferedInputS ... -
合唱队形
2010-05-09 21:45 2165#include <stdio.h> #incl ... -
动态规划经典问题 石子合并
2010-05-09 21:45 6102我们学校的oj的 #include & ... -
poj3199 高精
2010-05-09 21:44 967import java.io.BufferedInputS ... -
poj1002 郁闷的电话号码
2010-05-08 23:48 1280import java.io.BufferedInputS ... -
poj1298 无语。。。
2010-04-24 23:24 1018import java.io.BufferedInputStr ... -
poj1017 装箱问题 简单贪心
2010-04-18 16:56 2356import java.io.BufferedInpu ... -
poj1042 枚举+贪心算法
2010-04-18 00:45 1800import java.io.BufferedInputS ... -
zoj3197 Google Book 贪心算法
2010-04-15 23:54 1394#include <stdio.h> #defi ... -
Poj2453 an easy program
2010-04-09 00:19 870/* * To change this template, ... -
poj1723 数学问题
2010-04-02 15:31 1035package middle; import jav ... -
Poj2524 并查集
2010-03-18 15:22 864package middle; import jav ... -
Poj1308 并查集
2010-03-18 15:21 1708package middle; import jav ... -
poj1405 高精
2010-02-28 11:09 1375import java.io.BufferedInputS ... -
poj1979 深度遍历
2010-02-27 20:56 1296问题重述 问题描述: ...
相关推荐
描述中提到的"递归经典题目"意味着这个题目可能涉及到递归算法,递归是一种函数或过程调用自身的技术,常用于解决分治策略的问题,如树遍历、排序(如快速排序、归并排序)和求解数学问题(如斐波那契数列)等。...
3. **递归与分治策略**:递归算法是解决复杂问题的有效方式,如斐波那契数列、汉诺塔问题等;分治策略常用于解决矩阵乘法、大整数乘法等问题。 4. **动态规划**:用于解决最优化问题,如背包问题、最长公共子序列、...
这种策略在poj3295这类构造法题目中尤为适用,同时也常见于递归和动态规划中。 #### 模拟法 模拟法是对题目场景的直接模拟,适用于逻辑清晰、规则明确的问题,如poj1068和poj2632。虽然这种方法直观易懂,但在...
- 题目2109可能是一道涉及递归或分治策略的算法题。 总的来说,这些题目涵盖了ACM竞赛中的各种核心算法和编程技巧,通过解决这些问题,参赛者可以提高自己的编程能力和算法理解,为参与ACM/ICPC比赛做好充分准备。...
5. **递归与分治**:递归解决问题的技巧,分治策略的应用。 6. **动态规划优化**:记忆化搜索、状态压缩、滚动数组等。 7. **贪心算法**:如何在每一步选择最优解,解决背包问题、约瑟夫环等。 8. **模拟**:根据...
10. **递归与分治**:递归是许多高级算法的基础,而分治策略如快速排序、归并排序等则可以将大问题分解为小问题进行解决。 这份解题报告不仅适合初学者逐步提升编程技能,也对有一定经验的开发者复习和巩固基础算法...
- POJ 2182 - Fractal(利用递归和分治思想求解) - POJ 2264 - The Die Is Cast(哈希表应用) **相关知识点**: - 不同数据结构的特点及其应用场景 - 动态数组与静态数组的区别 - 栈和队列在实际问题中的应用案例...
可以用来实践枚举法,1456、1700和1716则适合贪心法的应用,而2299逆序数和1664递归问题可以加深对递归与分治法的理解。 总结来说,数据结构中的枚举法、贪心法和递归与分治法是解决不同种类问题的有效手段。枚举法...
6. **递归与分治策略**:许多数学问题可以通过递归函数来解决,例如斐波那契数列、汉诺塔等。分治策略则是将大问题分解为小问题求解,如快速排序和归并排序。 7. **动态规划**:在解决一些复杂问题时,动态规划是一...
10. **递归与分治**:递归是解决问题的一种自然方式,而分治则是将大问题划分为小问题,逐个解决后再合并结果,如归并排序、快速排序、大整数乘法等。 总的来说,POJ题目的解题过程不仅锻炼了编程能力,更深入地...
分治法则是在递归的基础上,将问题分割为两个或更多的子问题,独立解决后再合并结果。 - **示例题目**: - poj1164 - poj1941 - poj2282 - poj2299 - poj3232 - poj3233 - poj1064 - poj2255 - **应用场景**...
8. **递归与分治**:如快速幂运算、归并排序、分治法解约瑟夫问题等。 9. **贪心算法**:适用于部分最优解的问题,如霍夫曼编码、活动安排等。 10. **回溯法与剪枝**:用于解决约束满足问题,如八皇后问题、N皇后...
可以采用回溯法或深度优先搜索(DFS)策略,结合递归实现全排列的生成。 6. 题目1040《Tic Tac Toe》:此题是关于井字游戏的判断,考察博弈论和状态空间搜索。通过分析游戏状态并使用深度优先搜索或最小最大搜索...
递归和分治法是处理复杂问题的有效工具,例如 poj2586。递推和构造法也是常用技巧,poj3295 就是一个利用构造法的实例。模拟法则用于按照问题描述进行操作,如 poj1068、poj2632 等题目。 对于图算法,熟悉深度优先...
3. 递归与分治法:递归是函数调用自身的过程,而分治法将大问题分解为小问题求解,如poj3295中的应用。 4. 递推:通过已知的子问题状态推导出原问题的解,如斐波那契数列。 5. 构造法:直接构造问题的解决方案,如...
5. **其他**:位操作、编码解码、模拟、图论问题(最短路径、最小生成树、网络流等)、递归、分治策略等。 每道题目都可能综合运用到多个知识点,而AC代码则代表了解决这些问题的有效方法。通过研究这些代码,我们...
3. **递归和分治法**:将大问题分解为小问题,再通过递归调用来解决,如动态规划、快速排序等。 4. **递推**:通过已知的解推导出未知的解,常用于解决序列问题。 5. **构造法**:直接构造出满足条件的解,如POJ3295...
1557题可能涉及递归或分治策略;2488题可能需要理解并应用贪心算法;1321题可能是一道数学问题,需要良好的数学思维;2867题可能涉及到模拟或回溯法;3114题则可能需要解决复杂度较高的计算问题。 通过学习这些源...
- **示例题目**: poj2388, poj2299 #### 3. 字典树 - **内容**: 字典树是一种高效的数据结构,主要用于存储字符串集合。 - **示例题目**: poj2513 - **知识点**: - **字典树的特点**:节省空间;查询速度快;方便...
4. **递归与迭代**:递归和迭代是解决问题的两种常见方式,源码中会展示如何在不同问题上灵活运用这两种方法,如斐波那契数列、汉诺塔、八皇后问题等。 5. **字符串处理**:C和C++中的字符串操作也是重要的知识点,...