随笔分类 -  cf

摘要:294D - Shaass and Painter Robot 思路: 可以用数学归纳法证明一个结论:整个棋盘黑白相间当且仅当边缘黑白相间。 分奇偶讨论又可得出边缘黑色格个数为n+m-2 这样就可以暴力模拟。 数组开不下保存边缘块有没有被访问,可以用map。 代码: 阅读全文
posted @ 2018-01-25 10:55 Wisdom+.+ 阅读(258) 评论(0) 推荐(0)
摘要:448E - Divisors 思路: dfs。注意如果是1,直接返回,因为1的因子还是1。 因为x因子的因子还是x的因子,所以可以事先处理好x因子的因子在x因子中的位置。 不用这个方法也可以,用map映射vector保存因子的因子。 代码1: 代码2: 阅读全文
posted @ 2018-01-24 21:06 Wisdom+.+ 阅读(286) 评论(0) 推荐(0)
摘要:916C - Jamie and Interesting Graph 思路:构造。 对于1到n最短路且素数,那么1到n之间连2 对于最小生成树,找一个稍微大点的素数(比1e5大)构造一个和为这个素数的最小生成树 剩下的边都连1e9 代码: 阅读全文
posted @ 2018-01-20 14:01 Wisdom+.+ 阅读(421) 评论(0) 推荐(0)
摘要:思路: 先取出二进制的每一位,判断总个数是不是小于等于k,如果大于k则不能构成。 通过观察可以发现,每一位的一个可以转换成下一位的两个,因为要使最大位尽可能小,所以如果最大位的所有的个数都可以转换成下一位那么就全部转换过去,如果不能就一个也不要转换,不然会导致字典序损失。 然后从最小的位开始转换,每 阅读全文
posted @ 2018-01-20 13:51 Wisdom+.+ 阅读(397) 评论(0) 推荐(0)
摘要:474D - Flowers 思路:dp. dp[i]表示长度为i的方案数 显然,当i<k时,dp[i]=1 当i>=k时,dp[i]可以由dp[i-1]加上一朵红花转移过来,由dp[i-k]加上k朵白花转移过来,所以dp[i]=dp[i-1]+dp[i-k] 代码: 阅读全文
posted @ 2018-01-19 16:48 Wisdom+.+ 阅读(278) 评论(0) 推荐(0)
摘要: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+.+ 阅读(258) 评论(0) 推荐(0)
摘要:913D - Too Easy Problems 思路:二分check k 代码: 阅读全文
posted @ 2018-01-19 15:29 Wisdom+.+ 阅读(308) 评论(0) 推荐(0)
摘要:279B - Books 思路:尺取法求和小于等于t最长的一段的长度。 代码: 阅读全文
posted @ 2018-01-17 19:21 Wisdom+.+ 阅读(296) 评论(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+.+ 阅读(208) 评论(0) 推荐(0)
摘要:909C - Python Indentation 思路:dp。 http://www.cnblogs.com/Leohh/p/8135525.html 可以参考一下这个博客,我的dp是反过来的,这样就可以边转移边求前缀和,不需要用树状数组优化。 代码: 阅读全文
posted @ 2017-12-28 17:25 Wisdom+.+ 阅读(977) 评论(0) 推荐(0)
摘要:Codeforces 899F - Letters Removing 思路:考虑一下怎么找到输入的l和r在原来串中的位置,我们想到用前缀和来找,一开始所有位置都为1,删掉后为0,那么前缀和为l的位置就是l的位置,前缀和为r的位置就是r的位置。 那么用树状数组来维护一下前缀和,再用二分查找来找到位置就 阅读全文
posted @ 2017-12-22 15:17 Wisdom+.+ 阅读(402) 评论(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+.+ 阅读(348) 评论(0) 推荐(0)
摘要:899E - Segments Removal 思路:priority_queue+pair 代码: 阅读全文
posted @ 2017-12-21 11:33 Wisdom+.+ 阅读(448) 评论(0) 推荐(0)
摘要:898F - Restoring the Expression 思路:字符串hash,base是10,事实证明对2e64取模会T(也许ull很费时),对1e9+7取模。 代码: 阅读全文
posted @ 2017-12-20 17:29 Wisdom+.+ 阅读(703) 评论(0) 推荐(0)
摘要:D - Ithea Plays With Chtholly 思路:考虑每个位置最多被替换c/2次 那么折半考虑,如果小于c/2,从左往右替换,大于c/2总右往左替换,只有小于这个数(从左往右)或者大于这个数(从右往左)才会被替换,所以每个位置最多被替换c/2次。 代码: 阅读全文
posted @ 2017-12-05 12:47 Wisdom+.+ 阅读(317) 评论(0) 推荐(0)
摘要:101628A - Arthur's Language 思路:dp,状态转移见代码。 代码: 阅读全文
posted @ 2017-12-03 14:52 Wisdom+.+ 阅读(325) 评论(0) 推荐(0)
摘要:895C - Square Subsets 思路:状压dp。 每个数最大到70,1到70有19个质数,给这19个质数标号,与状态中的每一位对应。 状压:一个数含有这个质因子奇数个,那么他状态的这一位是1,一个数含有这个这个质因子偶数个,那么状态的这一位是0。 那么如果一个数是平方数,那么这个数的状态 阅读全文
posted @ 2017-11-28 15:53 Wisdom+.+ 阅读(863) 评论(0) 推荐(0)
摘要:893E - Counting Arrays 思路:质因子分解。 对于每个质因子,假设它有k个,那么求把它分配到y个数上的方案数。 相当于把k个小球分配到y个盒子里的方案数。 这个问题可以用隔板法(插空法)解决,要把一段分成y段,需要y-1个隔板,那么有y-1+k个位置,选y-1个位置为隔板,剩下的 阅读全文
posted @ 2017-11-24 21:33 Wisdom+.+ 阅读(633) 评论(0) 推荐(0)
摘要:894B - Ralph And His Magic Field 思路: 当k为1时,如果n和m奇偶性不同,那么没有答案。 可以证明,在其他情况下有答案,且答案为2^(n-1)*(m-1),因为前n-1行和m-1列确定后,最后一列和最后一行可以确定,且确定的最后一格不矛盾。 可以采用在全为1的格子中 阅读全文
posted @ 2017-11-21 14:17 Wisdom+.+ 阅读(447) 评论(4) 推荐(0)
摘要:888E - Maximum Subsequence 思路:折半枚举。 代码: 阅读全文
posted @ 2017-11-10 15:03 Wisdom+.+ 阅读(390) 评论(0) 推荐(0)