上一页 1 ··· 7 8 9 10 11 12 13 14 下一页
摘要: http://poj.org/problem?id=1469题目是说有几门课程和几个学生,让你求的学生和课程之间的最大匹配数是否和所给的课程数目相等。如果相等输出“YES” 否则,输出“NO“下面这就是一个二分图 二分图模型二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。 简而言之,就是顶点集V可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属于这两个互不相交的子集。给定一个二分图 阅读全文
posted @ 2012-03-07 17:26 AC_Girl 阅读(193) 评论(0) 推荐(0) 编辑
摘要: http://acm.sdut.edu.cn/web/showproblem.php?pid=2098&cid=1088意思就不用说了,都是汉语,都能看的懂。真是纠结了好几天,本来是A了的,可是后台数据一完善后,我的程序真是毛病百出了。重写这道题目!!!下面说一下判断字符串不合法的情况由于是好几天才A掉的,所以中间思路可能有些乱1. 从字符串第一个不是空格的地方开始,到字符串最后不为空格的地方。如果中间有空格出现,则是非法的2.如果字符串里没有“.”,也没有"e",也没有"E",则是非法的,如果有任何一个,则其个数不能超过1个,并且“e”和“E” 阅读全文
posted @ 2012-03-07 16:43 AC_Girl 阅读(368) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2488题目是说有一个骑士,在一个地图里以“日”字型走,看是否存在一条路径能使得他把每一个格子都走完,并且每个格子只走一次。如果存在这样的路径就按字典序输出这样的路径,如果不存在就输出impossible。其中地图中 列是用A—Z表示,行用数字表示提醒一下,深搜的时候一定要按字典序的形式进行搜索,否则输出的路线就不是字典序了。本来是一道很水的题,就是因为没有注意搜的方向,错了好几次 1 #include<stdio.h> 2 #include<string.h> 3 #include<iostream> 4 阅读全文
posted @ 2012-03-06 20:32 AC_Girl 阅读(209) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1018这个题目好像还是在11年暑假看的呢,一直想用那个大整数乘法把N!求出,然后再用一个strlen函数求出位数,可是一直比较懒,都不愿意写,今天看书的时候,发现书上的讲解太牛了,虽然我不是很懂,还是拿来和大家分享一下吧。思路1. 这道题可以采用蛮力法,根据定义,直接求解。所谓N!位数,就是lg(N!)+1(不是很懂),根据数学公式: N ! = 1*2*3……N <==> lg(N!)=lg(2)+lg(3)+……+lg(n);所以呢 代码如下 1 #include<stdio.h> 阅读全文
posted @ 2012-03-05 21:44 AC_Girl 阅读(160) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2513题目的意思是说给一些木棒,每个木棒的头尾是不同的颜色,如果两个木棒首尾颜色相同就可以相接,问是否可以让所有的木棒都连起来。我是用的并查集和trie树和欧拉回路来判断的。建立trie树的过程中捎带合并集合,用并查集判断是否只有一个环,如果不是,则直接输出“Imb“然后再根据欧拉回路的条件判断,欧拉回路的条件:度为奇数的点的个数不能超过两个。 1 #include<stdio.h> 2 #include<string.h> 3 #include<iostream> 4 using namespace s 阅读全文
posted @ 2012-03-05 20:45 AC_Girl 阅读(185) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2418虽然给的训练题目是说trie树类的题目,我是按字符串处理来做的。题目的意思:先给出一下树木,然后统计这些树木的出现频率输出的时候是按字典序输出的,保留4位小数 1 #include<stdio.h> 2 #include<algorithm> 3 #include<string.h> 4 #include<iostream> 5 using namespace std; 6 #define N 1000001 7 struct node 8 { 9 char str[40];10 }a[ 阅读全文
posted @ 2012-03-05 20:24 AC_Girl 阅读(170) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3080 题目就是让找一个公共的最长子串(连续的)一看就想起了用KMP算法,但是本来就不太懂,更别说用了,还是搜了一下解题报告,套用了KMP的模板 1 #include<stdio.h> 2 #include<string.h> 3 #include<iostream> 4 using namespace std; 5 #define N 200 6 char str[20][N]; 7 8 9 /*套用的KMP的模板,在模板串里求子串*/10 int kmp(char s[],char t[])11 {1 阅读全文
posted @ 2012-03-05 20:17 AC_Girl 阅读(160) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1035题目很简单,就是给一连串的字符串作为标准字符串,然后是输入以些变动的字符串,这个变动的字符串是这样定义的:1.可能是随意的删掉了一个字符2.可能是随意的加上了一个字符3.与标准字符串相比,随意的替换掉了一个字符。由于上面的定义都是说的一个,所以题目也就很简单了,只要罗列三种情况就可以,len1(母串)和len2(子串),1.len1==len2, 2. len1-len2==1 3. len2-len1==1;虽然这样说简单,但是我写的时候也不觉得简单,主要是我对处理字符串不会,老是少考虑情况。好像写的代码也很复杂 1 #inclu. 阅读全文
posted @ 2012-03-05 20:11 AC_Girl 阅读(185) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3278题目输入n和m,n代表人的位置,m代表牛的位置,牛是不动的,而人动的规则是可以前进一步,后退一步,也可以直接在现在的位置上乘2(乘2算是一步),问你进过多少步可以最快的把牛抓到。直接用bfs,调用库函数的队列就可以了 1 #include<stdio.h> 2 #include<iostream> 3 #include<string.h> 4 #include<queue> 5 #define N 500000 6 using namespace std; 7 int move[2]={ 阅读全文
posted @ 2012-03-05 20:00 AC_Girl 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 就是一个递推的题目,但是由于数据比较大,所以用到了大整数。递推方程F(n)=F(n-1)+2*F(n-2); 1 #include<cstdio> 2 #include<string.h> 3 #include<iostream> 4 using namespace std; 5 #define N 10000 6 int b[N],c[N],t[N]; 7 int re[260][N]; 8 struct node 9 {10 int len;11 int re[N];12 }a[260];13 void ca()14 {15 int i,j;16 a[0 阅读全文
posted @ 2012-03-05 19:55 AC_Girl 阅读(200) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 下一页