上一页 1 2 3 4 5 6 ··· 19 下一页
摘要: 题意:不好复制,直接上链接http://acm.hdu.edu.cn/showproblem.php?pid=5667 思路: 观察递推式我们可以发现,所有的f_if​i​​都是aa的幂次,所以我们可以对f_if​i​​取一个以aa为底的loglog,即g_i=log_a\ f_ig​i​​=log 阅读全文
posted @ 2016-05-07 23:19 Howe_Young 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 题意:给你A,B,让求A^B所有的因子和模上9901 思路:A可以拆成素因子的乘积: A = p1^x1 * p2^x2 *...* pn^xn 那么A^B = p1^(B*x1) * p2^(B*x2) *...* pn^(B*xn) 那么A^B所有的素因子和就是 (p1^0 + p1^1 + p 阅读全文
posted @ 2016-05-06 23:46 Howe_Young 阅读(686) 评论(0) 推荐(0) 编辑
摘要: 题意:给定n个菜,每个菜都有一个价值,给定k个规则,每个规则描述吃菜的顺序:i j w,按照先吃i接着吃j,可以多增加w的价值。问如果吃m个菜,最大价值是多大。其中n<=18 思路:一看n这么小,除了暴力之外就得想想状态压缩dp了。因为每种菜正好两种状态(吃过与没吃过),正好可以使用二进制来表示每种 阅读全文
posted @ 2016-05-06 14:41 Howe_Young 阅读(497) 评论(0) 推荐(0) 编辑
摘要: 题意: 有两种变换: 1. 改变此数二进制的某一位(1变成0 或者 0变成1) 2. 让它与给出的n个数当中的任意一个做异或运算 给你两个数s, t,求从s到t最少要经过几步变换,一共m组查询思路: 仔细观察会发现其实只与(s^t)有关,那么设x = s^t,那么x就是s和t二进制之间的差别(仔细想 阅读全文
posted @ 2016-03-08 21:00 Howe_Young 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 这两个题目都是二分图的判定,用dfs染色比较容易写。算法流程:选取一个没有染色的点,然后将这个点染色,那么跟他相连的所有点一定是不同颜色的,所以,如果存在已经染过颜色的,如果和这个颜色相同的话,就说明不是二分图,否则,继续从这个点往下染。hihocoder#include #include #inc... 阅读全文
posted @ 2016-01-07 20:37 Howe_Young 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 可以用三维dp来保存状态,dp[i][j][k]表示在前i个字符变换了j步之后方向为k(k = 1 or k = 0)的最优解,也就是离原点的最大距离。这里规定0方向为正方向,1位负方向,表示的是当前这个人朝哪个方向。这两个方向是对立的。所以就可以递推一个关系式,分第i个字符为'F'or'T'时如果... 阅读全文
posted @ 2015-12-30 20:36 Howe_Young 阅读(602) 评论(1) 推荐(0) 编辑
摘要: 之前求过LIS和LCS,这次求两者的综合问题。那么就需要用到这两个问题的思想。首先,用dp[i][j]表示str1和str2分别以i和j结尾的LCIS,那么对于str1[i] == str2[j]的时候,就要在1~j-1之间找到最优解,就是满足条件dp当中最大的一个,这个就是LIS的思想。如果不等的... 阅读全文
posted @ 2015-12-28 15:05 Howe_Young 阅读(995) 评论(0) 推荐(0) 编辑
摘要: 以下内容摘自acdreamer求欧拉函数值long long Euler(long long n){ long long ans = n; for (long long i = 2; i * i 1) ans = ans - ans / n; return ans;... 阅读全文
posted @ 2015-12-12 21:41 Howe_Young 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 题意:给一个排列的每个前缀区间的逆序对数,让还原 原序列。思路:考虑逆序对的意思,对于k = f[i] - f[i -1],就表示在第i个位置前面有k个比当前位置大的数,那么也就是:除了i后面的数字之外,它是在剩下的数字当中第k+1大的。知道这个之后,可以用树状数组来帮助找出剩下的数中第k大的数,刚... 阅读全文
posted @ 2015-12-10 16:16 Howe_Young 阅读(624) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个n,让求一个M,它是n个倍数并且在k进制之下 M的不同的数字最少。思路:这里用到一个结论就是任意两个数可以组成任何数的倍数。知道这个之后就可以用搜索来做了。还有一个问题就是最多找n+1个数,因为由鸽巢原理,这n+1个数当中模上n一定有一个一同的。所以他们一减就是答案。如果找到直接是它的... 阅读全文
posted @ 2015-11-09 19:48 Howe_Young 阅读(393) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 19 下一页