摘要:        
题目大概是抢劫银行,每家银行都有一个收益和一个被抓的概率,求在被抓概率小于P的条件下能获得的最大收益。 dp[i][j]表示抢劫前i家银行收益为j被抓的最小概率 dp[0][0]=0 dp[i][j]=min(dp[i-1][j],dp[i-1][j-m[i]]+(1-dp[i-1][j-m[i]]    阅读全文
posted @ 2016-02-01 22:51
WABoss
阅读(236)
评论(0)
推荐(0)
        
            
        
        
摘要:        
题目问一个数字字符串的不重复全排列有几个能被d整除。 dp[S][m]表示用字符集合S构成的%d为m的数字字符串个数 dp[0][0]=0 我为人人转移,dp[S+{x}][(m*10+str[x]-'0')%d]+=dp[S][m](x∉S) 最后的结果再除以各字符出现次数的阶乘就是答案了,即dp    阅读全文
posted @ 2016-02-01 22:45
WABoss
阅读(213)
评论(0)
推荐(0)
        
            
        
        
摘要:        
题目是在n*n的棋盘上放k个车使其不互相攻击的方案数。 首先可以明确的是n*n最多只能合法地放n个车,即每一行都指派一个列去放车。 dp[i][j]表示棋盘前i行总共放了j个车的方案数 dp[0][0]=1 转移就是从第i-1行转移到第i行,对于第i行要嘛放上一个车要嘛不放,放的话有n-j-1种方法    阅读全文
posted @ 2016-02-01 20:43
WABoss
阅读(242)
评论(0)
推荐(0)
        
            
        
        
摘要:        
题目问一个合法字符串的字典序是第几个,合法的字符串是指里面的字符严格递增。 先判断合不合法,然后用类似康托展开的过程去求。大概过程就是用组合数算出某长度某前缀有几个,累加起来。 真难一遍写对。。 1 #include<cstdio> 2 #include<cstring> 3 using names    阅读全文
posted @ 2016-02-01 15:59
WABoss
阅读(215)
评论(0)
推荐(0)
        
            
        
        
摘要:        
题目问区间有多少个数字的二进制0的个数大于等于1的个数。 用数学方法求出0到n区间的合法个数,然后用类似数位DP的统计思想。 我大概是这么求的,确定前缀的0和1,然后后面就是若干个0和若干个1的不重复全排列数。。 写得挺痛苦的。。另外A[i][j]表示i个0和j个1的不重复全排列数,即A[i][j]    阅读全文
posted @ 2016-02-01 11:38
WABoss
阅读(218)
评论(0)
推荐(0)
        

 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号