摘要:        
http://community.topcoder.com/stat?c=problem_statement&pm=11473&rd=14543简单的概率题。那道题想了想就出来了。每一轮中所有硬币都有相同的概率变化成另一面。public class CoinReversing{ public double expectedHeads(int N, int[] a) { double heads = N; double tails = 0; for (int i = 0; i < a.length; i++) {...    阅读全文
posted @ 2013-10-02 23:40
阿牧遥
阅读(173)
评论(0)
推荐(0)
        
            
        
        
摘要:        
http://community.topcoder.com/stat?c=problem_statement&pm=4471&rd=10711这题果然是道简单题,图+DP。拿道题便觉得可以用邻接表表示,然后想要找所有的,是不是要BFS,DFS搜索/遍历?又觉得到过的节点又能回去不好算。忽然间想到每个节点都来自旁边的节点,这样就有阶段了,马上出来状态转移方程,DP得解。public class UnsealTheSafe{ public long countPasswords(int N) { int[][] G = new int[10][]; G[0]...    阅读全文
posted @ 2013-10-02 23:16
阿牧遥
阅读(437)
评论(0)
推荐(0)
        
            
        
        
摘要:        
今天遇到一个错误,叫Output Limit Exceeded。我还特地试了一下,当ArrayList里面添加超过9147个Interval后,就会有这个错误。所以这说明我的算法有误,没能merge对Interval,导致大数据测试时爆了。 (--)--(-)--( )--(--)-( ) ( )     阅读全文
posted @ 2013-10-02 22:49
阿牧遥
阅读(843)
评论(0)
推荐(0)
        
            
        
        
摘要:        
一开始不明白为什么有这么一道几乎完全一样的,但把I的改一下超时了,所以要优化一下。经搜索,发现可以这样优化:使用col[i]表示第i行Q所在的列,那么,判断斜线是否满足就可以用abs(k-i)== abs(col[k]-j),注意这里k要小于i,因为后面的行没有放Q,而默认初始化时0列放Q,就会错误。public class Solution { private int ans; private boolean[] visited; private int[] col; public int totalNQueens(int n) { ans = 0; ...    阅读全文
posted @ 2013-10-02 19:09
阿牧遥
阅读(186)
评论(0)
推荐(0)
        
            
        
        
摘要:        
N皇后,回溯法。然后想想怎么写呢?一开始想两个循环,但那就成了完全遍历,回溯法是可以剪枝一部分的。先想什么作为阶段,可以选第i行的Q做为回溯的阶段,选好某行后向选下一行的,用递归。public class Solution { private ArrayList ans = new ArrayList(); public ArrayList solveNQueens(int n) { ans.clear(); int[][] board = new int[n][n]; sub(board, 0); return ans; ...    阅读全文
posted @ 2013-10-02 18:11
阿牧遥
阅读(211)
评论(0)
推荐(0)
        
 
                    
                
 浙公网安备 33010602011771号
浙公网安备 33010602011771号