上一页 1 2 3 4 5 6 7 ··· 16 下一页
摘要: 分析 这题场上前缀和都想出来了,然后就没有然后了。。。哭惹.jpg 前缀和相减能够得到任意一段连续区间的和,然后他们取余$K$看余数是否为0就能得到。这是朴素的遍历算法。那么反过来说,如果两个前缀和都对$K$余$p$,那么他们相减一定能够被K整除。 我们就这么统计就可以了,然后一个简单的求和即可。想 阅读全文
posted @ 2019-01-14 00:43 ISoLT 阅读(471) 评论(0) 推荐(0) 编辑
摘要: 分析 好久不刷题真的思维僵化,要考虑到这样一个结论:如果递增的三个数$x_i,x_{i+1},x_{i+2}$不符合题意,那么最大的两边之差一定大于等于第一条边,那么任何比第一条边小的都不能成立。这样一来,递增排序,然后线性找就可以了。 代码 阅读全文
posted @ 2019-01-14 00:31 ISoLT 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 分析 注意到要求的是最大的连通分量,那么我们可以先打素数表(唯一分解定理),然后对每个要求的数,将他们同分解出的质因子相连(维护一个并查集),然后求出最大的联通分量即可。 这里使用了筛法求素数。初始化内存时利用了一个hack。 代码 go var isPrime[100005] bool var p 阅读全文
posted @ 2018-12-02 21:01 ISoLT 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 分析 代码 阅读全文
posted @ 2018-12-02 20:58 ISoLT 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 题意与分析 题意:给出$n$个字符串,可以反转任意串,反转每个串都有其对应的花费$c_i$。经过操作后是否能满足字符串$\forall i \in [1,n] \text{且} i \in R_+, str[i]\ge str[i 1]$,若能输出最小花费,否则输出 1。 分析:经过各种字符串dp血 阅读全文
posted @ 2018-12-01 13:08 ISoLT 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 题意与分析(Codeforces 431C) 题意是这样的:给出K Tree——一个无限增长的树,它的每个结点都恰有$K$个孩子,每个节点到它$K$个孩子的$K$条边的权重各为$1,2,...,K$,问现有多少条路径,使从根节点出发到某个结点所经过的边权重之和恰为n,且经过的边至少有一条权重不小于$ 阅读全文
posted @ 2018-12-01 11:03 ISoLT 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 题意(Codeforces 455A) 给你$n$个数,你每次可以选择删除去一个数$x$获得$x$分,但是所有为$x+1$和$x 1$的数都得删去。问最大获得分数。 分析 这是一条经典dp。阶段是很自然的:我从左往右依次选择到每种数(先预处理在桶内),然后两个决策:拿,还是不拿(拿一定拿光)。拿,那 阅读全文
posted @ 2018-11-30 20:45 ISoLT 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 分析 贪心思想。注意更新每次判断的最长不同子串的左区间的时候,它是必须单调增的(有时候会在这里翻车)。 代码 关掉流同步能有效提高速度。 改进的时间变化:24ms 20ms 8ms 阅读全文
posted @ 2018-11-29 16:25 ISoLT 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 题意与分析 题意直接给出来了:给定一个数,返回数组中和为该数(下为$x$)的两个数的下标。 这里有一个显然的$O(n)$的实现:建立一个hash表,每次读入数(记作$p$)的时候查询hash表中有没有$x p$,如果有,分别输出其下标;否则将$p$插入hash表。 Ruby 相关语法 函数(方法)定 阅读全文
posted @ 2018-11-29 09:57 ISoLT 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 题意与分析 题意是这样的:给一个字符串,字符串中只包含数字和运算符’ ’。现在问字符串是不是一个合法的逆波兰式(后缀表达式)。已知逆波兰式的空格消除,也就是说123可以看成123也可以看成1和23。如果不是,问至少进行几个交换(任意字符间的交换)或者插入操作能使它成为一个合法的逆波兰式。 我这辈子看 阅读全文
posted @ 2018-11-22 01:45 ISoLT 阅读(136) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 16 下一页