上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 99 下一页

2012年7月14日

两道思维题

摘要: 1.幼儿园里有多少小朋友老师让幼儿园的小朋友排成一行,然后开始发水果。老师分发水果的方法是这样的:从左面第一个人开始,每隔 2 人发一个梨;从右边第一个人开始,每隔 4 人发一个苹果。如果分发后的结果有 10 个小朋友既得到了梨, 又得到了苹果, 那么这个幼儿园有多少个小朋友?分析:假设这一行为A1....Ap...AL....Aq..,Ap,AL, Aq为同时得梨子和苹果的人,并且他们中间没有再既得梨子又得苹果的人,那么任意两个既得梨子又得苹果的人的间距是多大呢?都拿了苹果小朋友的间距是3,都拿了梨子的小朋友间距为5,要使他们同时拿梨子和苹果,那么这个间距肯定是他们的最小公倍数, d = L 阅读全文

posted @ 2012-07-14 07:32 more think, more gains 阅读(313) 评论(0) 推荐(0) 编辑

2012年7月13日

两道面试题

摘要: 题目1:要求从N个元素中随机的抽取k个元素,其中N无法确定。很大,只能遍历一次。题目2:数组A【1...N], 创建一个新的数组,B【1...N], 时间复杂度O(N),使得B【i] = A[1] *...*A[N] / A[i],不能用除法题目1算法是蓄水池算法,奇妙。题目2算法是正向遍历一次,反向遍历一次View Code p[0] = 1;q[N+1] = 1;for( int i = 1; i <= N; i++) p[i] = p[i-1] * A[i];for( int i = N; i >= 1; i--) q[i] = q[i+1] * A[i];p[i] = A[ 阅读全文

posted @ 2012-07-13 17:57 more think, more gains 阅读(146) 评论(0) 推荐(0) 编辑

poj 1094 拓扑排序

摘要: 悲剧,这题错得好惨,首先这题题意就没仔细看清,误读题意。读懂题意后又悲剧了,当不确定时还要判断是否有回路。判断回路时又用了错误算法,思考不认真,当然知道可以用Floyd传递闭包判断就是没用。自以为题目不会那么麻烦,直接判断入度就可以了。自己得想法真的太二。怎么可以用判断入度就可以判断有无回路呢?正确算法:1.边输入边(A《B)就要边处理。先判断是否有冲突,然后判断是否不确定。确定冲突或答案后只要把后面得数据读进来就可以,不用处理。2.拓扑排序算法3.Floyd判断是否有回路View Code #include<stdio.h>#include<stdlib.h>#inc 阅读全文

posted @ 2012-07-13 11:54 more think, more gains 阅读(251) 评论(0) 推荐(0) 编辑

2012年7月12日

Bellman-ford

摘要: Bellman-ford 算法View Code #include <stdio.h>#include <string.h>#include <stdlib.h>#include <algorithm>using namespace std;int mp[210][210];int dis[210];int N, M;const int inf = 0x7f7f7f7f;void bellman_ford( ){ //初始话 for( int i = 1; i <= N; i++) { dis[i] = inf; } dis[1] = .. 阅读全文

posted @ 2012-07-12 21:58 more think, more gains 阅读(146) 评论(0) 推荐(0) 编辑

poj 3026

摘要: 算法:1.刚开始自己的算法是一次BFS,求出各点距离,建好图,但是提交上去一直WA,不解。2.修正算法枚举所有A与S点,AC。。View Code #include<stdio.h>#include<string.h>#include<stdlib.h>#include<algorithm>#include<queue>#include<iostream>using namespace std;struct node{ int a, b, num; bool operator < ( const node& 阅读全文

posted @ 2012-07-12 14:04 more think, more gains 阅读(147) 评论(0) 推荐(0) 编辑

上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 99 下一页

导航