摘要: //深度优先算法求数字的全排列#include <iostream>using namespace std;#define N 10//全部声明为全局变量,为了在递归过程中依然有效bool u[N];//u[i]标识数字i是否被使用过int ans[N];//ans排列的结果int n;void print(){ for (int i=0 ;i<n ;++i) cout<&... 阅读全文
posted @ 2010-04-15 13:35 北海小龙 阅读(374) 评论(0) 推荐(0) 编辑
摘要: //POJ 1195题 BFS骑士问题//利用广度优先搜索求得的路径是最短路径#include <iostream>#include <queue>using namespace std;#define maxl 300//node代表棋盘上的一个点typedef struct node{int x;int y;int d;//d代表这个点到起始点的距离};node s,e... 阅读全文
posted @ 2010-04-15 13:35 北海小龙 阅读(244) 评论(0) 推荐(0) 编辑
摘要: #include <iostream>#include <stdio.h>using namespace std;void Permutations(char *a,const int k,const int m){if(k==m){for(int i=0;i<=m;i++)cout<<a[i]<<" ";cout<<endl;}e... 阅读全文
posted @ 2010-04-15 13:33 北海小龙 阅读(208) 评论(0) 推荐(0) 编辑
摘要: //POJ 1062 昂贵的聘礼//思路:枚举、Dijkstra算法#include <iostream>using namespace std;typedef struct{int id;int price;}tidai;typedef struct{int price;int position;int tidai_num;//用于存贮每种货物的替代品tidai *tidais;}g... 阅读全文
posted @ 2010-03-24 22:27 北海小龙 阅读(502) 评论(0) 推荐(0) 编辑
摘要: 有时要在程序中设置一个大的整数表示正的无穷大,熟悉PASCAL的人都知道有两个经常用到的符号常量叫MAXINT和MAXLONGINT。C++中该怎么办呢?其实在头文件limits中有关于各种整型常量的取值范围和最大整型和最小整型的定义。例如, | signed | unsigned ----------------------------------------------------------... 阅读全文
posted @ 2010-03-20 17:30 北海小龙 阅读(2363) 评论(0) 推荐(0) 编辑
摘要: 1062*昂贵的聘礼枚举等级限制+dijkstra1087*APlugforUNIX2分匹配1094SortingItAllOutfloyd或拓扑1112*TeamThemUp!2分图染色+DP1125StockbrokerGrapevineFLOYD1135DominoEffect最短路1149*PIGS网络流1161*Wallsfloyd1201Intervals差分约束1236*Networ... 阅读全文
posted @ 2010-03-20 17:28 北海小龙 阅读(355) 评论(0) 推荐(0) 编辑
摘要: //HOJ 1163题目大意:给出一个数n,求n^n的数根,数根即各位数字之和,如果这个和不是一位数,继续求这个数的各位数字之和,直到为一位数为止。因为ab*ab=(10*a+b)*(10*a+b)=100*a*a+10*2*a*b+b*b=a*a+2*a*b+b*b=(a+b)*(a+b)abc*abc=(100*a+10*b+c)*(100*a+10*b+c) =10000*a*a+2000*... 阅读全文
posted @ 2010-03-16 21:59 北海小龙 阅读(199) 评论(0) 推荐(0) 编辑
摘要: //杭电1097//求a^b的个位数字//思路:(1)只计算个位数(2)计算过程中会出现周期#include <stdio.h>int main(){//此处使用__int64__int64 a,b;while(scanf("%I64d%I64d",&a,&b)!=EOF){__int64 data[10];//times为循环周期int times =0;if(a&g... 阅读全文
posted @ 2010-03-14 22:26 北海小龙 阅读(195) 评论(0) 推荐(0) 编辑
摘要: //HOJ 1058题//重点理解#include <stdio.h>int min(int a,int b,int c, int d);int i;int j;int k;int l;int main(){int data[5843];data[1]=1;i=j=k=l=1;for(int t=2;t<5843;t++){data[t]=min(2*data[i],3*data... 阅读全文
posted @ 2010-03-13 22:14 北海小龙 阅读(219) 评论(0) 推荐(0) 编辑
摘要: //求最大卡片数//注意精度问题,否则题目会出错#include <iostream>using namespace std;int main(){//使用double类型,如果使用float类型精度不够,会出错double data;cin>>data;while(data!=0.00 && data>=0.01 && data<... 阅读全文
posted @ 2010-03-13 22:13 北海小龙 阅读(140) 评论(0) 推荐(0) 编辑