摘要: 额,自己的代码比较水,用普通的方法做的,内存开得太大了View Code #include"stdio.h"#define maxn 11000000__int64 q[maxn];int n;void bfs(){ int i,j; __int64 x; q[0]=1; i=0;j=1; while(i<j) { x=q[i]; if(x%n==0) { printf("%I64d\n",x); break; } x*=10; q[j++]=x; q[j++]=x+1; i++; }}int main(){ while(scanf("% 阅读全文
posted @ 2011-08-03 21:03 枕边梦 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 这题还真是诡异,明明思路很清晰,BFS也很熟练 的敲出来了,可就是改了半天,原来问题在这里,“Harry从来不在楼梯上停留”,这里提示的很明显了,他除了不再楼梯上停留,其他地方是可以停留的,当然,也就只有在遇到楼梯,又暂时过不去时,才有必要在原地停留,郁闷呀,疏忽了这里,wa了好几次……hdu1180 代码#include <iostream>#include <queue>using namespace std;struct Node{ int x, y, time; Node(int _x=0,int _y=0,int _time=0):x(_x),y(_y),ti 阅读全文
posted @ 2011-08-03 11:57 枕边梦 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 我的思路:用俩个数组分别记录出现过的节点的入度和出度,这样只有一个字母的入度比出度大1,一个字母的出度比入度大1,或者是所有有字母的出度和入度都一样,他就是欧拉路但这样还差了一个联通性的判断 于是我用了一个辅助数组 f[] 用并查集的方式判断是否连通代码:#include<iostream>#include<string>using namespace std;int f[30],c[30],r[30];char s[1005];int find(int x) { if(x==f[x]) return f[x]; f[x]=find(f[x]); return f[x] 阅读全文
posted @ 2011-08-03 09:27 枕边梦 阅读(192) 评论(0) 推荐(0) 编辑