摘要:
floyd大约是n^3的效率,32msView Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;#define maxl 35#define maxn 205#define maxm 300int m, n, l;int member[maxl];int dist[maxn][maxn];int wall[maxm][maxm];int map[maxm][maxn];void floyd(){ for 阅读全文
posted @ 2011-07-25 15:08
undefined2024
阅读(189)
评论(0)
推荐(0)
摘要:
简单题View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;#define maxn 10int f[maxn];void input(){ for (int i = 1; i < 9; i++) scanf("%d", &f[i]);}void print(){ char ch[2]; ch[0] = '+'; ch[1] = '-' 阅读全文
posted @ 2011-07-25 13:55
undefined2024
阅读(207)
评论(0)
推荐(0)
摘要:
题意:把时间转换为公制,给普通的出年月日时分秒,然后从2000/1/1开始是公制的时间起始点,每天有10小时,每小时有100分,每分有100秒计算,问给出的普通的时间点,在公制中对应的时间点的公制表示是多少。分析:难点在于给出年月日,统计过了多少天。本题以2000年为起点恰为闰年。我们可以先将2000年刨除,从2001年开始,2001年是一个崭新的400年的开头,所以就恰好符合除法规律,例如2008年是2001年开始的第8年,8/4=2,2001~2008出现过2个闰年,2009年,9/4=2,出现过两个闰年。所以从2001年起(包括2001年)到n年(包括n年),所包含的闰年数可以直接通过除 阅读全文
posted @ 2011-07-25 12:50
undefined2024
阅读(376)
评论(0)
推荐(0)
摘要:
题意:给定一些单词,如果一个单词的尾字母与另一个的首字母相同则可以连接。问是否可以每个单词用一次,将所有单词连接,可以则输出字典序最小的序列。分析:把每个字母作为一个结点。每个单词作为一条边。这样就可以把问题转化为欧拉路径。现判断欧拉路径是否存在。若存在则找到欧拉路径,找的方法是,先找到出度>入度(无欧拉回路)的结点,从起点开始,dfs(v,e),v是当前结点,e是到v的边。用vis数组记录某条边是否被访问过,从v开始继续搜索未访问过的边。每层dfs结束时把该层的边入栈。dfs整个结束后,把边依次出栈,得到的就是欧拉路径。void dfs(int v, int e){ vis[e] = 阅读全文
posted @ 2011-07-25 10:30
undefined2024
阅读(1290)
评论(0)
推荐(3)