acm
Rotile
这个作者很懒,什么都没留下…
展开
-
poj 1019
模拟实现:/*288k 0ms*/#include #include using namespace std;/*模拟算法*/int Getlen(int a);int Getvalue(int a,int k);int main(){ int t; cin>>t; while(t--) { int a; cin>>a;原创 2013-05-23 21:36:25 · 608 阅读 · 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 · 1144 阅读 · 0 评论 -
poj 1094 Sorting It All Out (拓扑排序)
只是利用拓扑排序来计算!每加一个表达式就计算出他的拓扑排序: 1,不存在拓扑排序,就是表明这些表达式存在矛盾 2,如果存在唯一的拓扑排序,就可以输出结果 3,如果不存在唯一的排序,即存在入度相同的点,此时表示不能确定排序关系或者存在结果矛盾(所以在不能确定排序的时候,还要判断是不是存在环,从而确定是不是存在拓扑排序)#include //#include原创 2013-06-29 15:47:33 · 985 阅读 · 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 · 1040 阅读 · 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 · 1067 阅读 · 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 · 923 阅读 · 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 · 945 阅读 · 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 · 1061 阅读 · 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 · 1207 阅读 · 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 · 2403 阅读 · 0 评论 -
poj 1088 滑雪(贪心算法)
思想: (贪心算法 ,看到题目是中文才做的)先对数组中的数据进行排序,从最小的数据计算 当前的顶点的可以滑行的最大值=max(周围可达的顶点的可以滑行的最大值)+1这样计算最后产生的路径肯定是最大的 (看discuss中,有动态规划和dfs实现的代码,回头看看)#include #include using namespace std;#define MAX 10005/*48原创 2013-06-26 23:21:26 · 1577 阅读 · 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 · 1109 阅读 · 0 评论 -
poj 1064 Parencodings(模拟题)
到这个时间,虽然不是很晚,但是挺累的,白天是在实训,晚上要去准备考研!回来的时候把这个题目给写了,现在得赶紧去睡觉了,明天还要早起打卡,唉!算法的具体思想明天在实验室的时候找个时间来写!#include #include using namespace std;#define MAX 100 //整个的括号的长度不会超过50 /*284K 0MS*/ int main(){原创 2013-06-26 00:02:26 · 1458 阅读 · 0 评论 -
poj 1018
/*poj 1018*/#include //#include #include #include using namespace std;#define SIZE 103#define mmax(a,b) (a>b)?a:btypedef struct _node{ int _b; double _p;}node;int cmp(const void原创 2013-05-23 21:39:29 · 610 阅读 · 0 评论 -
poj 1020
/*276k 32ms*/#include //#include using namespace std;#define SIZE 11#define COL 50//var//fstream fin;int a[SIZE];int b[COL]; //ÿһÁÐ¸ß¶È int s,n;//functionbool dfs(int t);int main()原创 2013-05-25 12:27:27 · 662 阅读 · 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 · 781 阅读 · 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 · 807 阅读 · 0 评论 -
poj 2965 枚举加dfs
/*刚做完poj1753 顺便把这一题个ac了,回头补上bfs的代码和位运算的代码,一开始实验结果总是不能通过,主要是函数flip的a[x][y]被翻转两次,记得1753那一题出现这样的错误,下次要记住!*//*----------------------------------------这一题跟1753相同,可以位运算 也可以直接枚举问题的描述,把当前的输入的程序转化成全open状态 2原创 2013-06-06 23:38:23 · 775 阅读 · 0 评论 -
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 · 825 阅读 · 2 评论 -
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 · 1377 阅读 · 7 评论 -
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 · 1048 阅读 · 0 评论 -
poj 2586 Y2K Accounting Bug(贪心算法,水题一枚)
#include using namespace std;/*248K 32MS*/int main(){ int s,d; while(cin>>s>>d) { int count=0; for(int i=5;i>0;i--) { if(s*i<(5-i)*d) {原创 2013-06-25 15:54:25 · 1085 阅读 · 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 · 997 阅读 · 0 评论