C++
Rotile
这个作者很懒,什么都没留下…
展开
-
c++中delete和delete[]的区别
一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论。做个备份,以免丢失。 C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。 关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2)转载 2013-05-25 17:47:31 · 589 阅读 · 0 评论 -
简单拓扑排序的实现
/*拓扑排序的实现*/ #include #include using namespace std;#define MAX 100int main(){ int map[MAX][MAX]; int d[MAX]; int c[MAX]; int n,m; while(cin>>n>>m) { if(m==0&&n==0原创 2013-06-27 16:07:26 · 872 阅读 · 0 评论 -
poj 1094 Sorting It All Out(图论)
http://poj.org/problem?id=1094这一题,看了个大牛的解题报告,思路变得非常的清晰:1,先利用floyd_warshall算法求出图的传递闭包2,再判断是不是存在唯一的拓扑排序,利用出度和入度是不是相加为n-13,利用拓扑排序求出当前的图形的唯一的拓扑排序一开始我的思路跟上述的差不多,但是没有利用floyd_warshall算法求出传递闭包原创 2013-06-29 13:35:11 · 1100 阅读 · 0 评论 -
poj 1094 Sorting It All Out (拓扑排序)
只是利用拓扑排序来计算!每加一个表达式就计算出他的拓扑排序: 1,不存在拓扑排序,就是表明这些表达式存在矛盾 2,如果存在唯一的拓扑排序,就可以输出结果 3,如果不存在唯一的排序,即存在入度相同的点,此时表示不能确定排序关系或者存在结果矛盾(所以在不能确定排序的时候,还要判断是不是存在环,从而确定是不是存在拓扑排序)#include //#include原创 2013-06-29 15:47:33 · 958 阅读 · 0 评论 -
poj 题目分类
初期:一.基本算法:(1)枚举. (poj1753,poj2965)(2)贪心(poj1328,poj2109,poj2586)(3)递归和分治法.(4)递推.(5)构造法.(poj3295)(6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:(1)图的深度优先遍历和广度优先遍历.(2)最短路径算法(d转载 2013-06-30 18:23:06 · 1009 阅读 · 0 评论 -
poj 1065 Wooden Sticks
思想很容易想到,证明是看了别的解题报告:利用到偏序定理:贪心算法实现#include #include using namespace std;/*328K 16MS*/typedef struct _pair{ int l; int w;}Pair;int cmp(const void *a,const void *b){ Pair原创 2013-07-01 08:41:38 · 1024 阅读 · 0 评论 -
poj 1118 Lining Up(水题)
再思考一下好的方法,水过,数据太弱! 本来不想传的!#include using namespace std;#define MAX 702 /*284K 422MS*/typedef struct _point{ int x; int y;}point;point p[MAX];bool judge(point a,point b,point c){原创 2013-07-01 13:43:00 · 900 阅读 · 0 评论 -
骑士问题
/*骑士问题*/#include #include //#include #include using namespace std;#define MAX 12typedef struct _point{ int x; int y; int dep;}point;int map[MAX][MAX];int p[][2]={{原创 2013-07-03 13:36:44 · 1244 阅读 · 0 评论 -
会场安排问题
/*会场安排问题*/#include #include using namespace std;typedef struct _point{ int time; bool flag; //0代表开始时间,1代表结束时间 }point;int cmp(const void *a,const void *b){ point *a1=(poin原创 2013-07-03 14:00:54 · 909 阅读 · 0 评论 -
poj 1789 Truck History(kruskal算法实现)
怎么我的算法时间和空间都这么就,别人的kruskal还是比较快的! 去学习一下!/*kruskal算法*/#include //#include #include using namespace std;#define MAX 2001#define min(a,b) (a-b<0?a:b)/*45612K 1563MS*/typedef struct _node{原创 2013-07-04 08:49:58 · 1024 阅读 · 0 评论 -
poj 1789 Truck History(prim算法)
未优化版本/*prim算法实现*/ #include //#include using namespace std;#define MAX 2001#define INF 0xffff/*15988K 500MS*///varint n;char a[MAX][10];int sum;//代表生成树的长度int m[MAX][MAX];//fstream fin;/原创 2013-07-03 16:31:31 · 920 阅读 · 0 评论 -
poj 2485 (kruskal算法)
/*kruskal算法*/#include //#include #include using namespace std;/*708K 922MS*/typedef struct _edge{ int x,y; int w;}edge;int n;int num;//fstream fin;void kruskal(edge *e,in原创 2013-07-05 09:07:16 · 955 阅读 · 0 评论 -
pro 2485 Highways(prim算法)
#include //#include using namespace std;#define MAXN 501#define INF 0x3fffff/*Accepted 676K 750MS*///varint n;int num;int a[MAXN][MAXN];//fstream fin;//functionvoid prim(int u);int main(原创 2013-07-04 17:42:03 · 1183 阅读 · 0 评论 -
poj 1088 滑雪(贪心算法)
思想: (贪心算法 ,看到题目是中文才做的)先对数组中的数据进行排序,从最小的数据计算 当前的顶点的可以滑行的最大值=max(周围可达的顶点的可以滑行的最大值)+1这样计算最后产生的路径肯定是最大的 (看discuss中,有动态规划和dfs实现的代码,回头看看)#include #include using namespace std;#define MAX 10005/*48原创 2013-06-26 23:21:26 · 1529 阅读 · 0 评论 -
poj 1064 Parencodings(模拟题)
到这个时间,虽然不是很晚,但是挺累的,白天是在实训,晚上要去准备考研!回来的时候把这个题目给写了,现在得赶紧去睡觉了,明天还要早起打卡,唉!算法的具体思想明天在实验室的时候找个时间来写!#include #include using namespace std;#define MAX 100 //整个的括号的长度不会超过50 /*284K 0MS*/ int main(){原创 2013-06-26 00:02:26 · 1430 阅读 · 0 评论 -
poj 1573 Robot Motion(模拟题)
这一题还是模拟题,在oj出现错误,一直到现在才发现,是条件的判定顺序是错误的,应该判断是不是越界,再判定是不是访问过。~~~~~传上来有乱码,这是原始代码 http://my.csdn.net/enigma_hao/code/detail/54876,有注释的,但跟跟正确代码有区别的,注释可以参考#include #define MAX 13using namespace std;/原创 2013-06-26 18:19:23 · 1086 阅读 · 0 评论 -
poj 1021
/*2316K 0MS*/#include //#include #include using namespace std;#define SIZE 100typedef struct _point{ int _x; int _y;}point;queue q;int w,h,n;//fstream fin;bool map[SIZE][SIZE];原创 2013-05-28 17:34:42 · 752 阅读 · 0 评论 -
Bellman_Ford算法求最短路径
/*bellman_ford算法*/#include #include using namespace std;#define SIZE 100#define INL 1000000int graph[SIZE][SIZE];int n;int t[SIZE];int d[SIZE];fstream fin;bool bellman_ford(int s);int m原创 2013-05-29 23:43:27 · 1450 阅读 · 0 评论 -
数组实现最小堆
/*×îС¶ÑµÄʵÏÖ*/#include using namespace std;//functionvoid init(int *a,int length);int add(int *a,int length,int x);int del(int *a,int length,int &x);void swap(int &a,int &b);int main(){原创 2013-05-31 12:10:55 · 1188 阅读 · 0 评论 -
Dijkstra 算法求非负权图的最短路径
/**//*Dijkstra*/#include #include using namespace std;#define MAXN 1000000fstream fin;void dijkstra(int **a,int n,int *d);int main(){ fin.open("1008.txt",ios::in); int **a; int原创 2013-06-08 12:32:33 · 834 阅读 · 0 评论 -
poj 1023
#include using namespace std;#define SIZE 100int main(){ int t; cin>>t; char a[SIZE]; while(t--) { int n; cin>>n; cin>>a; long long num;原创 2013-05-31 22:02:46 · 764 阅读 · 0 评论 -
prim算法求最小生成树
/*Prim*/#include #include using namespace std;#define MAXN 1000000fstream fin;//functionvoid prim(int **a,int n);int main(){ fin.open("1009.txt",ios::in); int n,m; fin>>n>>m;原创 2013-06-10 12:04:31 · 741 阅读 · 0 评论 -
Kruskal算法求最小生成树
/*Kruskal*/#include #include #include using namespace std;typedef struct _edge{ int u; int v; int weight;}edge;//varfstream fin;//functionvoid Kruskal(edge *e,int m,int n);in原创 2013-06-10 22:42:39 · 1063 阅读 · 1 评论 -
poj 1753 枚举加dfs
又是一年期末时,虽然写代码的时间又变少了,但是还是要每天认真的写/*位运算和bfs实现*/#include #include using namespace std;//varint turn[16]={0xC800,0xE400,0x7200,0x3100,0x8C80,0x4E40,0x2720,0x1310,0x08C8,0x04E4,0x0272,0x0131,0x008C,0x原创 2013-06-06 22:31:32 · 800 阅读 · 2 评论 -
poj 2965 枚举加dfs
/*刚做完poj1753 顺便把这一题个ac了,回头补上bfs的代码和位运算的代码,一开始实验结果总是不能通过,主要是函数flip的a[x][y]被翻转两次,记得1753那一题出现这样的错误,下次要记住!*//*----------------------------------------这一题跟1753相同,可以位运算 也可以直接枚举问题的描述,把当前的输入的程序转化成全open状态 2原创 2013-06-06 23:38:23 · 754 阅读 · 0 评论 -
hdoj 1106排序
/*题目还是比较的水吧,但是花的时间还是比较的多,心不够静*/#include #include #define MAX 1001using namespace std;/*15MS 296K*/typedef struct _str{ char *str; int len;}str;int cmp(const void *a,const void *b){原创 2013-06-22 16:22:51 · 1320 阅读 · 7 评论 -
poj 1328 Radar Installation(贪心算法)
这一题我提交了不下10遍,我的ac率!错误最后发现在case 后面的情况数下!没有仔细比较结果啊!/*贪心算法*/#include //#include #include #include #define MAX 1010using namespace std;typedef struct _point{ int x; int y;}poin原创 2013-06-23 16:23:36 · 1082 阅读 · 0 评论 -
hdoj 1258 SUM IT UP
程序的思想是:输入数据是,先使用快排对其从大到小进行排序,然后记录相同数据的个数,比如4 3 3 2 2 1 1,最后的数据变成4 3 2 1 ,并且同时数据的个数f[]变成1 2 2 2然后就是遍历,相同的数据如果不能得到最后的结果,下一次就不会遍历。//剪枝有这几个首先:从大到小排序,剪枝1再者:如果当前的sum比要遍历的数据小,则跳过这个数据利用一个vector来记录结果#include原创 2013-06-22 20:29:30 · 1023 阅读 · 0 评论 -
cin 和scanf,scanf比cin快很多
//#include #include //#include //using namespace std;#define MAXN 501#define INF 0x3fffff/*Accepted 676K 750MS*//*528K 157MS*///varint n;int num;int a[MAXN][MAXN];//fstream fin;//functio原创 2013-07-05 08:28:41 · 2358 阅读 · 0 评论