编程
iteye_4555
这个作者很懒,什么都没留下…
展开
-
单变量实现多重循环扩展
[code="java"]int n = 9;for(int i=n-1;i>=0;i--) for(int j=n-1;j>=0;j--) if(i==j) System.out.println(i);[/code]等价于[code="java"]int n = 9;int x = n*n;while(x--!=0) if(x/n==x%n) Sy...原创 2010-11-15 16:29:50 · 116 阅读 · 0 评论 -
Tetris
考虑洞和平移的情况[code="java"]void Tetris(currentBlock,Area,n) //两次自动下降间可平移n For i=0 To 3 //穷举所有旋转方向,得到各种旋转方式下的积木块形状 rotatedBlock = GetRotatedBlock(currentBlock,i) //计算横坐标可以移动的位置...原创 2012-06-13 12:04:40 · 126 阅读 · 0 评论 -
连连看,转载自:薛笛
[align=center][img]http://dl.iteye.com/upload/attachment/0069/4864/85302039-c84a-3258-a456-987c3804e247.png[/img]图1 广度优先路径搜索[/align]书中给出的解法利用了广度优先搜索算法,本质上是一种建立搜索树然后剪枝的策略。具体过程如图 1所示:目标是要找到从左上角的圆形图形...原创 2012-06-13 10:32:53 · 94 阅读 · 0 评论 -
24Point
[code="java"]import java.util.HashSet;public class Game24Point { private static int n = 4; private static int size = (int) Math.pow(2, n); private static HashSet[] S = new HashSet[size]; p...原创 2012-06-13 00:17:02 · 191 阅读 · 0 评论 -
NIM(3), Java
[code="java"]public class NIM { public static void main(String[] args) { System.out.println(nim(8, 6)); } public static Result nim(int m, int n) { if (m == n || m ...原创 2012-06-12 14:10:46 · 88 阅读 · 0 评论 -
NIM(3), python
[code="python"]false_table = dict()true_table = dict()def possible_next_moves(m,n): for i in range(0,m): yield(i,n) for i in range(0,n): if mn: m,n...原创 2012-06-12 10:06:06 · 100 阅读 · 0 评论 -
NIM(3),转载自:假寐之海
[color=red]有一堆个数为n的石子,游戏双方轮流取石子,满足: 1)先手不能在第一次把所有的石子取完; 2)之后每次可以取的石子数介于1到对手刚取的石子数的2倍之间(包含1和对手刚取的石子数的2倍)。 约定取走最后一个石子的人为赢家,求必败态。[/color] 这个和之前的Wythoff’s Game 和取石子游戏 有一个很大的不同点,就是游戏规则的动态化。之前的规则中...原创 2012-06-11 16:32:56 · 76 阅读 · 0 评论 -
NIM(2)
问题:如果每次可以挑选任意K堆,并从中任意取石头,又该如何找到必胜策略呢?解:设石头总数为N,(1)N为k的偶数倍(N=2mk),或者N为k的奇数倍+余数(N=2mk+k+n),其中0...原创 2012-06-10 21:56:13 · 77 阅读 · 0 评论 -
NIM(1),转载自:雁过无痕
只有一堆n个石子,两个人轮流取石子,规定每次至少取1个,最多取m个。最后取光者得胜。1.n = m+1时,先手显然必败。2.n = (m+1)x+y时,先手先取y个,若对手取k个则先手再拿走m+1-k个。3.总能保证n能被(m+1)整除,所以最终先手必胜。当y为0时,后手必胜。可采用数学归纳法进行形式化证明[color=red]NIM游戏的“必胜策略”可以概括为:找出最终获...原创 2012-06-08 15:23:44 · 101 阅读 · 0 评论 -
活动安排
[code="java"]import java.util.ArrayList;import java.util.List;import java.util.Random;public class ActivitiesArrangement { private static int activityNum = 7; private static int tota...原创 2012-06-08 13:59:41 · 81 阅读 · 0 评论 -
电梯调度
[code="java"]public class Elevator { private static int totalFloorNum = 10; private static int totalStopNum = 4; private static int[] person = new int[totalFloorNum]; private stati...原创 2012-06-07 17:35:05 · 110 阅读 · 0 评论 -
一摞烙饼
[color=red]1.有一些服务员会把上面的一摞饼子放在自己头顶上(放心,他们都戴着洁白的帽子),然后再处理其他饼子,在这个条件下,我们的算法能有什么改进?[/color][code="java"]int[] cakeArray;CPrefixSorting sorting; for(int i=0;i m_nMaxReverseCount)E 代码m_nMaxSwap =...原创 2012-06-05 13:19:27 · 169 阅读 · 0 评论 -
协程Coroutine和Kilim
协程避免了操作系统切换线程的工作,用任务代替了线程参考附件文档原创 2013-06-17 23:00:04 · 101 阅读 · 0 评论 -
关于活动安排问题
我所遇到的活动安排问题分为两类一、[color=green]求最大相容子集合问题[/color],采用贪心算法,证明很简单二、[color=green]求最小的相容子集合数目的问题[/color]对于第二种问题,可以转换为图的最小着色数问题,但是由于该问题的特殊性(各个活动的时间安排都是一维的)[color=red]解法1、[/color]将各个活动按照开始时间从小到大排列,遍历每...原创 2010-12-01 15:47:56 · 176 阅读 · 0 评论 -
关于电梯调度算法的扩展题目
问题:在一个高楼里面,电梯只在某一个楼层停,这个政策还是不太人性化。如果电梯会在k个楼层停呢?解答:以k=2为例电梯在2个楼层停,设为楼层A和楼层B(A...原创 2010-12-01 14:26:35 · 211 阅读 · 0 评论 -
关于饮料供应问题的贪心算法
个人感觉饮料供应问题是符合贪心选择性的[table]|Volume|TotalCount|Happiness||2^0 |TC0_0 |H0_0 ||2^0 |TC0_1 |H0_1 ||... |... |... ||2^0 |TC0_n0 |H0_n0 ||2^1 |TC1_0 ...原创 2010-11-19 15:41:00 · 499 阅读 · 0 评论 -
关于快速找出故障机器的扩展题目
题目:如果所有的机器都有3个备份,也就是说同一ID的机器有3太,而且同时又有3太机器死机,还能用上面解法四的思路解决么?如果有N个备份,而且同时又有N台机器死机,是否还能解决?[color=red]解法一:[/color]如果所有的机器都有3个备份,那么就需要构造3个非线性相关的方程来求解即可。这3个方程可以是一次方和的形式、二次方和的形式、三次方和的形式。这是可以求解的。例如x+...原创 2010-11-18 19:09:12 · 103 阅读 · 0 评论 -
Oracle官方教程之Fork/Join,转载自:并发编程网
fork/join框架是ExecutorService接口的一种具体实现,目的是为了帮助你更好地利用多处理器带来的好处。它是为那些能够被递归地拆解成子任务的工作类型量身设计的。其目的在于能够使用所有可用的运算能力来提升你的应用的性能。类似于ExecutorService接口的其他实现,fork/join框架会将任务分发给线程池中的工作线程。fork/join框架的独特之处在与它使用工作窃取...原创 2014-08-06 10:26:33 · 128 阅读 · 0 评论