上一页 1 2 3 4 5 6 ··· 10 下一页
摘要: 题目链接:http://poj.org/problem?id=1200这道题使用了hash,hash早都听说了一直没怎么用过。View Code 1 #include <stdio.h> 2 #include <stdlib.h> 3 #define M 20000000 4 int hash[M]; 5 char str[1600001]; 6 int word_map[256],hash_add=0; 7 int n=0,nc=0; 8 9 int strhash(char * key)10 {11 int i,h=0;12 for (i=0;i<n;i++) 阅读全文
posted @ 2012-05-06 15:43 我们一直在努力 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=12这道题自己没写网上找的代码,不过思路很清晰的主要思想就是先转化成直线上的线段覆盖问题,就是求用最少的线段数把整个区域都覆盖了,最终求的是所用的线段数,不能覆盖的输出0;题目给出了点的坐标和半径,只用带入即可求出线段的左右边界,这题需要注意的一点就是利用贪心思想选取线段的时候,按左坐标由小到大排序,对于下面几种情况的处理View Code 1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h& 阅读全文
posted @ 2012-05-03 21:49 我们一直在努力 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 二分图最大匹配的König定理及其证明本文将是这一系列里最短的一篇,因为我只打算把König定理证了,其它的废话一概没有。以下五个问题我可能会在以后的文章里说,如果你现在很想知道的话,网上去找找答案:1. 什么是二分图;2. 什么是二分图的匹配;3. 什么是匈牙利算法;(http://www.matrix67.com/blog/article.asp?id=41)4. König定理证到了有什么用;5. 为什么o上面有两个点。König定理是一个二分图中很重要的定理,它的意思是,一个二分图中的最大匹配数等于这个图中的最小点覆盖数。如果你还不知道什么是最小 阅读全文
posted @ 2012-04-28 10:54 我们一直在努力 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=239简单的二分匹配,不过这道题很怪,矩阵就是tle,临界表200多,很无语。以前做个,没过现在看看以前还是没学好,有几处明显错误!ACView Code 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 int n[505],m[505]; 6 int vist[505]; 7 int head[505]; 8 struct 阅读全文
posted @ 2012-04-28 09:30 我们一直在努力 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 题目翻译链接:http://www.nocow.cn/index.php/Translate:URAL/1094题意一直自己没理解。View Code 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 int i; 6 int now; 7 char a[100]; 8 char s[10010]; 9 10 int main ()11 {12 for (i=0;i<80;i++)13 a[i]=' ';14 c 阅读全文
posted @ 2012-04-27 17:08 我们一直在努力 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 要求 N^N的最高位数字设 M = N^Nlog10(M) = N * log10(N)M = 10^(N * log10(N))求的是最高位10^T 当T是整数时他的第一个digit总是1,所以它就应该由小数部分决定.因此,把N * log10(N))的小数部分取出来就可以了设 R = N * log10(N)那么,R的小数部分为 R - (int) (R)这样结果就是 10^(R - (int)R) ,即 (int) pow(10.0,R-(int)R);用int可能会越界,要用__int64View Code 1 #include <cstdio> 2 #include &l 阅读全文
posted @ 2012-04-27 16:21 我们一直在努力 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=120也就是求添加多少条边可以构成强连通,有向图。方法是有trajan之后缩点,看新构成的图出度或者入度为零,大的即为要加的边。有主意图本身就连通是这是加的变为0,而不是1.View Code 1 #include <iostream> 2 #include <cstring> 3 #include <cstdio> 4 #include <stack> 5 using namespace std; 6 const int MAX=105; 阅读全文
posted @ 2012-04-26 17:38 我们一直在努力 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 题意就是求最短路,唯一不同之处就是,中间有一条路可以之花费一半的代价。解题方法就是两次求最短路(起点到各点,终点到各点),之后枚举每条边。每条边有两个端点,所以有两种可能。View Code 1 #include <iostream> 2 #include <cstring> 3 #include <cstdio> 4 using namespace std; 5 const int MAX=1005; 6 const int INF=12345674; 7 int N,n; 8 int sdist[MAX],vist[MAX],tdist[MAX]; 9 阅读全文
posted @ 2012-04-25 17:30 我们一直在努力 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2680在有向图中求多点到一个点的距离的最小值,思路反向建图+dijstraView Code 1 #include <iostream> 2 #include <cstring> 3 #include <cstdio> 4 using namespace std; 5 const int INF=12345678; 6 const int MAX=1005; 7 struct ss { 8 int y,value,next; 9 }edge[20*MAX];10 阅读全文
posted @ 2012-04-17 16:58 我们一直在努力 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3339题意大意就是说:有n个电站,每个电站都有一定的电量,电站之间有一定的距离,我们要从0点出发去占据一些电站,使得占据的电站电量之和不小于总电量的一半,求达到要求所要走的最短距离。若是可能的话,输出间隔,不然输出不成能。我们知道电站都是连通的,只要0点与任何一个电站连通,我们就可以占据所有电站,若是0点不与任何一个电站相连,就是不成能实现,也就是说0点到任何一个电站的间隔都是无穷。我们从0点开端派出一些坦克去占据一些电站,坦克到每个电站都有必然间隔,而占据每个电站之后可以获得必然电量,间隔就相当于 阅读全文
posted @ 2012-04-17 15:06 我们一直在努力 阅读(284) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 10 下一页