上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 23 下一页
摘要: Lucas定理:公式:C(n,m)%p=C(n/p,m/p)*C(n%p,m%p)%p 适用范围:n和m很大(1e18数量级),mod很小(1e6数量级) 对于上式:C(n%p,m%p)可直接用逆元求组合数方法求... 阅读全文
posted @ 2019-02-22 17:33 月光下の魔术师 阅读(13) 评论(0) 推荐(0)
摘要: 最长公共子序列(LCS) dp[i][j] = x表示第一个字符串前i个位置和第二个字符串前j个位置的最长公共子序列长度为x if(s1[i]==s2[j]) dp[i][j]= dp[i-1][j-1]+1... 阅读全文
posted @ 2019-02-22 17:21 月光下の魔术师 阅读(9) 评论(0) 推荐(0)
摘要: UVA116题解:参考刘汝佳的代码。每次从最后一列开始往前推。dp[i][j]表示从(i,j)到最后一列的整数和最小值。因为每次只能直行,右上,右下。所以dp[i][j] = max(dp[i][j+1],dp[... 阅读全文
posted @ 2019-02-22 17:15 月光下の魔术师 阅读(11) 评论(0) 推荐(0)
摘要: 最长上升子序列方法一:dp[i]表示为以i结尾的最长长度,那么if(a[j]#include #include #include using namespace std;int const N = 1000 + ... 阅读全文
posted @ 2019-02-22 17:05 月光下の魔术师 阅读(123) 评论(0) 推荐(0)
摘要: UVA11806题意:总共有k个啦啦队队员,站在n*m的格子里,每条边至少有一个人,问有几种方法。一个角落可以同时属于两条边。题解:利用容斥原理和状态压缩。0001,0010,0100,1000分别表示上下左右没... 阅读全文
posted @ 2019-02-22 12:33 月光下の魔术师 阅读(21) 评论(0) 推荐(0)
摘要: HDU1839题意:每条边都有容量和时间把矿物从1运到n,并且不超过规定的时间T。且路线的容量要最大。这一条路线的容量为容量最小边的容量题解:把每一条边的容量进行排序,然后按二分容量,枚举容量最小的边。走容量≥l... 阅读全文
posted @ 2019-02-18 13:01 月光下の魔术师 阅读(6) 评论(0) 推荐(0)
摘要: POJ1062题解: 如果a可以代替b,那么就连一条从a到b的边,权值为用b代替a,a需要的价格。 再加一个点n+1,n+1连接所有点,权值为旅行家直接花钱的价格 最后求的便是从n+1到1的最短路,并且路... 阅读全文
posted @ 2019-02-18 10:50 月光下の魔术师 阅读(4) 评论(0) 推荐(0)
摘要: CF446C题解:这真是一道好题。参考了下面大佬的博客,总结很棒。https://blog.csdn.net/icefox_zhx/article/details/79423177废话不多说,上我自己写的代码。还... 阅读全文
posted @ 2019-02-17 21:27 月光下の魔术师 阅读(7) 评论(0) 推荐(0)
摘要: HDU6341题解:参考了大佬的代码。其实还是比较好理解。矩阵的旋转操作,自己摸索,还是比较好想。 剪枝:每次搜索到一个块,判断和前面的块是否冲突。代码:#include using namespace std;... 阅读全文
posted @ 2019-02-17 19:00 月光下の魔术师 阅读(4) 评论(0) 推荐(0)
摘要: 题解:这一题思路很清晰,就是回溯+判重。但是难点在于判重。旋转、平移、翻转该怎么统一呢?参考了大佬的代码,终于豁然开朗。首先判重想到set,这里要用的双set,代码里有说明。 旋转操作,每次旋转90度,就是(x,... 阅读全文
posted @ 2019-02-17 18:54 月光下の魔术师 阅读(14) 评论(0) 推荐(0)
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 23 下一页