原:<div class="article_title"> <span class="ico ico_type_Original"></span> <h1> <span class="link_title"><a target=_blank href="http://blog.csdn.net/byondocean/article/details/6871881"…
N皇后问题是一个经典的问题,在一个N*N的棋盘上放置N个皇后,每行一个并使其不能互相攻击(同一行.同一列.同一斜线上的皇后都会自动攻击). 一. 求解N皇后问题是算法中回溯法应用的一个经典案例 回溯算法也叫试探法,它是一种系统地搜索问题的解的方法.回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试. 在现实中,有很多问题往往需要我们把其所有可能穷举出来,然后从中找出满足某种要求的可能或最优的情况,从而得到整个问题的解.回溯算法就是解决这种问题的"通用算法",有…
转:http://zzproc.iteye.com/blog/1328591 在阅读本文之前,根据自己的经验和理解,大家可以先思考并选择一下Java函数的参数传递方式:  A. 是按值传递的?  B. 按引用传递的?  C. 部分按值部分按引用?  此处暂不宣布正确答案,我们通过一个简单的例子让大家自己找答案:  1. 先定义一个类型Value public static class Value { private String value = "value"; public Stri…
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <vector> using namespace std; struct node { int f, s; }; vector<node>imap[40005]; int deep[40005]; int dis[40005]; int fa[40005]; int ff…
#include <iostream> #include<cstring> #include<cstdio> #include<cmath> #include<climits> using namespace std; int g[505][505]; int dx[505],dy[505]; bool vx[505], vy[505]; int dis[505]; int n, x, y; int res, minn; bool find(in…
#include <cstdio> #include <iostream> #include <cstring> #include<queue> using namespace std; const int INF = 0x3fffffff; int g[1005][1005]; bool vis[1005]; int m; int Edmond_Karp(int s,int t) { int pre[1005]; int flow[1005]; memse…
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; struct node{ int l, r, s; }num[800005]; int n, m, key; void build(int l,int r,int k) { num[k].l = l; num[k].r = r; num[k].s = 0; if(l == r) { num[k].s = 1; ret…
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 常见的内部排序算法有:插入排序.希尔排序.选择排序.冒泡排序.归并排序.快速排序.堆排序.基数排序等. 本文将依次介绍上述八大排序算法. 算法一:插入排序 插入排序示意图 插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入. 算法步骤: 1)将第一待排序序列第一…
原文网址:http://www.cnblogs.com/pengyingh/articles/2407267.html 1.概述 许多初学者对C/C 语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误.本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧. 2.void的含义 void的字面意思是"无类型",void * 则为"无类型指针",void * 可以指向任何类型的数据. void几乎只有"…
原文网址:http://www.cnblogs.com/zxl2431/archive/2011/03/25/1995285.html 讲的很清楚,备份记录. (一) 用函数指针变量调用函数 可以用指针变量指向整形变量.字符串.数组.结构体.也可以指向一个函数.一个函数在编译时被分配一个入口地址.这个入口地址就称为函数指针.可以用一个指针变量指向函数,然后通过该指针变量调用此函数.用简单的数值比较为例: #include <stdio.h> int main() { int max(int,i…