
hdu
文章平均质量分 77
sujian19900703
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu 1217 Arbitrage
思路:floyd算法 #include #include using namespace std; double map[50][50]; string ar[50],s,e; int n; int search(string a){ int i; for(i=0;in;i++) if(a==ar[i])原创 2012-11-07 13:04:41 · 311 阅读 · 0 评论 -
hdu 1220 Cube
先求每一层的个数,然后求不在同一层的pairs: #include int n; int get(int x){//求同一层的pairs int i,j; int Count=0; int t=x*x; for(i=0;i Count+=t-3; j=0; t--; for(j=1;j { Count+=t-3; t--; } Count+=t-原创 2012-11-07 13:04:44 · 159 阅读 · 0 评论 -
hdu 1225 Football Score
简单的排序: 此代码是用vector和map做的,用tries应该还快一些 #include #include #include #include #include #include using namespace std; struct team{ char name[100]; int score; int kicked; int lost; }ar[2000]; int n,now原创 2012-11-07 13:04:46 · 208 阅读 · 0 评论 -
hdu 1277 全文检索
描述见 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1277 刚开始的想法是KMP算法,因为字符串匹配差不多这个已经是很多的了。。。。但是看着题目中说的关键字最多有10000个,每个字符长度最大60,原文最多有10000个。那么按照KMP算法的时间复杂度,最差的情况下时间复杂度是O(10000*(60+10000))。可想而知,超时那原创 2012-11-07 13:05:49 · 322 阅读 · 0 评论 -
hdu 1710 Binary Tree Traversals
本题的考点是告诉你二叉树的前序遍历和中序遍历,求后序遍历。我的思路是:因为前序遍历是先遍历祖先在遍历儿子,所以第一个(前序遍历)点一定是根节点。后边依次加入前序遍历中的点,沿着根往下建立,如果待加入的节点的值出现的顺序(中序遍历)在本节点的前面,那么这个点在本节点的左边,否者在右边,知道节点为空,加入节点。后面以此类推,就建立了一棵二叉树。接着后序遍历就可以了…… 代码如下: #include原创 2012-11-07 13:05:36 · 200 阅读 · 0 评论 -
hdu 1216 Assistance Required
简单的模拟,用数组更简洁: #include #define Max 40005 int n,num[3000]; struct point{ int x; int next; }ar[Max]; int x; int D(){ int sum=0,t,k,h; h=x; t=ar[x].next; k=ar[x].x; x=ar[x].next; while(t!=-1原创 2012-11-07 13:04:39 · 219 阅读 · 0 评论 -
hdu 1755 A Number Puzzle
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1755 刚开始看到这个题的时候,看到这个8,于是想到的是8!很小才4万多,不过加上询问次数,就很不乐观了。。。。这个题有点水,可以用暴力过,这个题没有极限数据。。。也就是复杂度为O(8!*2000)。如果我们这么想的话,那么题目中给出K的范围就没有实际意义了(有时候我就喜欢看数据范围,原创 2012-11-07 20:50:08 · 621 阅读 · 0 评论