上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 24 下一页
摘要: 431C - k-Tree 思路:dp. dp[i][j][s] 如果s为1,表示第i层长度为j且至少包含一段>=d的距离的路径数 如果s为0,表示第i层长度为j且不包含一段>=d的距离的路径数 状态转移看代码 代码: 阅读全文
posted @ 2018-01-19 16:12 Wisdom+.+ 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 913C - Party Lemonade 思路:对于第i个话费cost[i],取min(cost[i],2*cost[i-1]),从前往后更新,这样就可以保证第n个的话费的性价比最高,那么从最高位开始贪心,取最优解。 代码: 阅读全文
posted @ 2018-01-19 15:34 Wisdom+.+ 阅读(534) 评论(0) 推荐(0) 编辑
摘要: 913D - Too Easy Problems 思路:二分check k 代码: 阅读全文
posted @ 2018-01-19 15:29 Wisdom+.+ 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 279B - Books 思路:尺取法求和小于等于t最长的一段的长度。 代码: 阅读全文
posted @ 2018-01-17 19:21 Wisdom+.+ 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 710E - Generate a String 思路:dp。 dp[i]表示产生长度为i的串的最少花费。 边界:dp[1]=x。 如果i是偶数,dp[i]只需要由dp[i-1]或者dp[i/2]转移过来,因为如果是由dp[i+1]转移过来,那么dp[i+1]要对答案产生贡献肯定是由dp[i+2]转 阅读全文
posted @ 2018-01-17 13:23 Wisdom+.+ 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 909C - Python Indentation 思路:dp。 http://www.cnblogs.com/Leohh/p/8135525.html 可以参考一下这个博客,我的dp是反过来的,这样就可以边转移边求前缀和,不需要用树状数组优化。 代码: 阅读全文
posted @ 2017-12-28 17:25 Wisdom+.+ 阅读(961) 评论(0) 推荐(0) 编辑
摘要: X表示一个排列在所有的全排列中排第几个(从0开始)。 X=a[0]*(n-1)!+a[1]*(n-2)!+...+a[i]*(i-1)!+...+a[n-1]*0! ,其中a[i]为在当前未出现的元素中是排在第几个(从0开始)(或者说后面元素值比当前元素值小的个数),求X的过程就是康托展开。 逆康托 阅读全文
posted @ 2017-12-25 19:02 Wisdom+.+ 阅读(1425) 评论(0) 推荐(0) 编辑
摘要: Codeforces 899F - Letters Removing 思路:考虑一下怎么找到输入的l和r在原来串中的位置,我们想到用前缀和来找,一开始所有位置都为1,删掉后为0,那么前缀和为l的位置就是l的位置,前缀和为r的位置就是r的位置。 那么用树状数组来维护一下前缀和,再用二分查找来找到位置就 阅读全文
posted @ 2017-12-22 15:17 Wisdom+.+ 阅读(384) 评论(0) 推荐(0) 编辑
摘要: D - GCD of Polynomials 逆推,根据(i-2)次多项f(i-2)式和(i-1)次多项式f(i-1)推出i次多项式f(i) f(i)=f(i-1)*x+f(i-2) 样例已经给出0次和1次的了 注意系数绝对值大于1对2取模 代码: 阅读全文
posted @ 2017-12-21 17:20 Wisdom+.+ 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 899E - Segments Removal 思路:priority_queue+pair 代码: 阅读全文
posted @ 2017-12-21 11:33 Wisdom+.+ 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 898F - Restoring the Expression 思路:字符串hash,base是10,事实证明对2e64取模会T(也许ull很费时),对1e9+7取模。 代码: 阅读全文
posted @ 2017-12-20 17:29 Wisdom+.+ 阅读(688) 评论(0) 推荐(0) 编辑
摘要: 概述: 主要用于字符串的匹配。 定义hash函数: H(c)=(c1bm-1 +c2bm-2 +...+cmb0)mod h 对于字符串c中l-r区间的hash值: H(l,r)=H(1,r)-H(1,l-1)*br-l+1 如果hash值很大,对h取模,一般地,用unsigned long lon 阅读全文
posted @ 2017-12-18 16:39 Wisdom+.+ 阅读(678) 评论(0) 推荐(0) 编辑
摘要: 很简单的一个排序,先通过递归划分区间到最小(因为一个元素具有单调性),然后再合并两个单调区间为一个单调区间,具体看代码 模板: 例题1:POJ - 1804 代码: #include<iostream> #include<cstdio> #include<cstring> #include<cmat 阅读全文
posted @ 2017-12-08 15:44 Wisdom+.+ 阅读(213) 评论(0) 推荐(0) 编辑
摘要: D - Ithea Plays With Chtholly 思路:考虑每个位置最多被替换c/2次 那么折半考虑,如果小于c/2,从左往右替换,大于c/2总右往左替换,只有小于这个数(从左往右)或者大于这个数(从右往左)才会被替换,所以每个位置最多被替换c/2次。 代码: 阅读全文
posted @ 2017-12-05 12:47 Wisdom+.+ 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 101628A - Arthur's Language 思路:dp,状态转移见代码。 代码: 阅读全文
posted @ 2017-12-03 14:52 Wisdom+.+ 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 珂朵莉的数列 思路: 树状数组+高精度 离散化不知道哪里写错了,一直wa,最后用二分写的离散化 哪位路过大神可以帮我看看原来的那个离散化错在哪里啊 通过代码: 错误代码: 阅读全文
posted @ 2017-12-02 21:52 Wisdom+.+ 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 树的直径: 利用了树的直径的一个性质:距某个点最远的叶子节点一定是树的某一条直径的端点。 先从任意一顶点a出发,bfs找到离它最远的一个叶子顶点b,然后再从b出发bfs找到离b最远的顶点c,那么b和c之间的距离就是树的直径。 用dfs也可以。 模板: poj 2631 Roads in the No 阅读全文
posted @ 2017-11-29 14:54 Wisdom+.+ 阅读(937) 评论(0) 推荐(2) 编辑
摘要: 895C - Square Subsets 思路:状压dp。 每个数最大到70,1到70有19个质数,给这19个质数标号,与状态中的每一位对应。 状压:一个数含有这个质因子奇数个,那么他状态的这一位是1,一个数含有这个这个质因子偶数个,那么状态的这一位是0。 那么如果一个数是平方数,那么这个数的状态 阅读全文
posted @ 2017-11-28 15:53 Wisdom+.+ 阅读(839) 评论(0) 推荐(0) 编辑
摘要: 思路: 很简单的一个状态压缩,比赛时没想出来。 最多只有2^10个状态,n^2暴力一下也就1e6。 代码: 阅读全文
posted @ 2017-11-25 18:47 Wisdom+.+ 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 思路: 先n^3预处理出每个点能到达的(1010串)最上面的行下标。 然后再n^3暴力一下,对于每个点,往左走看能走到哪,边走边更新面积。 代码: 阅读全文
posted @ 2017-11-25 18:43 Wisdom+.+ 阅读(366) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 24 下一页