摘要: 这题真TM的趣味。 可以说我的动手能力还是不行,想到了算法却写不出来。以后说自己数论会GCD的时候只好虚了…… 我们首先这么想。 x与a0的最大公约数为a1,那么我们把x/=a1,a0/=a1之后,x和a0不会再有除了1之外的公约数。 证明:设x/a1=c,a0/a1=d. 若有gcd(c,d)=y 阅读全文
posted @ 2017-09-04 20:51 Konoset 阅读(444) 评论(3) 推荐(0) 编辑
摘要: 题目链接 从n的元素中选零个,选一个,选两个,选三个...选n个的方案数和,其实就是n个元素中取任意多个元素的方案数,那对于每一个元素,都有取或不取两种情况,所以方案数最终为2^n个。 阅读全文
posted @ 2017-09-04 17:43 Konoset 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 题目链接 此题使用DP。设f[i][j]表示数i用j个数表示,则对于所有的k<=sqrt(i),有 f[i][j]=∑f[i-k*k][j-1] 但是这样会有重复情况。所以先枚举k,再枚举i和j。 代码如下 阅读全文
posted @ 2017-09-04 09:39 Konoset 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 题目链接 数据范围这么小,难度又这么大,一般就是状态压缩DP了。 对输入进行处理,二进制表示每一行的草地状况。如111表示这一行草地肥沃,压缩成7. 所以f[i][j]表示第i行状态为j时的方案数 状态j指的是一个二进制集合,有牛在吃草的位置是1,不再吃草的位置是0 f[i][j]=Sum(f[i- 阅读全文
posted @ 2017-09-02 19:05 Konoset 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 题目链接 老天……终于碰上一个除了模板之外的LCA题了 这道题用Tarjan来LCA。树上两个点的路径是唯一的,所以钦定一个根,两点间的路径就是两点到根的路径减去双倍的公共祖先到根的路径。大概很好理解。 阅读全文
posted @ 2017-09-02 18:55 Konoset 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 题目链接 此题使用BFS记录最短路的条数。思路如下:因为是无权无向图,所以只要被BFS到就是最短路径。因此可以记录该点的最短路和最短路的条数:如果点y还没被访问过,则记录dis[y],同时令ans[y]=ans[x]. 如果点y已经被访问过且当前为最短路径,则ans[y]+=ans[x] 阅读全文
posted @ 2017-09-02 18:54 Konoset 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 题目链接在这里 这题和虫食算比较类似。做完这道题可以去做虫食算。都是搜索一类的题。 这样 我们分析题目可以发现进制只可能是字母的个数,也就是n-1。为什么? 因为题目要求完整的加法表才算数。如果进制低于n-1,字母就多了;如果进制高,字母就不够,凑不出一个完整的加法表。所以这题第二问比第一问简单很多 阅读全文
posted @ 2017-09-02 18:52 Konoset 阅读(415) 评论(1) 推荐(0) 编辑
摘要: 按照国际惯例先发题目链接‍ woc从4月就开始做这sb题。最开始30分升到65分不管了,直到最近几天升到85分,再到今天AC。激动的心情自然是那些一遍就A或者一小时以内就A的神犇难以想象的。 下面说说主要几个分段。 # 35分 按题意用堆模拟。每次暴力修改蚯蚓长度,于是get皮肤:TLE蓝。 # 6 阅读全文
posted @ 2017-09-02 18:51 Konoset 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 题没什么好说的,因为是模板题。求值我用的是dfs。 不能直接在原图上dfs,因为原图上有环的话会发生一些滑稽的事情。所以我们要用Tarjan缩点。因为此题点权全为正,所以如果在图上走一个环当然可以全走一遍,结果当然是更优的。于是可以把环当成一个点来dfs,把它们的点权都加起来当成一个大点。 然后就是 阅读全文
posted @ 2017-09-02 18:50 Konoset 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 题目链接 此题是并查集。考虑到水位不断上涨,所以将时间倒转。先统计最后一天的联通块个数,每一天浮出水面的块进行计算。复杂度O(玄学)。 代码如下 阅读全文
posted @ 2017-09-02 18:49 Konoset 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 照例良心题目链接 此题使用f[i][j]表示前i束花放进前j个花瓶的时候的最大值。转移方程如下 f[i][j]=max(f[i][j-1],f[i-1][j-1]+que[i][j]) 其中que[i][j]表示第i束花放进第j个花瓶里的情况。有这个转移方程的原因是,每一束花在每一个花瓶里的情况只有 阅读全文
posted @ 2017-09-02 18:49 Konoset 阅读(232) 评论(0) 推荐(1) 编辑
摘要: YEAH!我也是一个AC主席树模板的人了! 其实是个半吊子 我将尽量详细的讲出我的想法。 主席树太难,我们先搞普通线段树好了 普通线段树怎么做?我的想法是查询K次最小值,每次查完把查的数改成INF,查完再改回来。。。 MDZZ 于是就有了主席树。 先不考虑主席树,我们来考虑一个奇特的线段树。 一般的 阅读全文
posted @ 2017-09-02 18:48 Konoset 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 题目链接在此 此题一开始写了个深搜,过了30%的数据,也就是n<=10的那一段。。。。 然后看了题解发现这是个二分图的判断。 我们先举例子找到不能放进一个栈里的规律。设有数列【2,3,1,4】 容易模拟得到这个数列单栈是搞不出来的。为什么搞不出来呢? 如果输入的序列是单调递减的,自然一个栈可以搞定。 阅读全文
posted @ 2017-09-02 18:47 Konoset 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 我发现现在没了题解我做普及提高+的题也做不了 更不要说这些提高+难度的‍题 此题是一个二维DP。暴力是三重循环ijk,k枚举在i位置上的点击次数。即 for(int i=1;i<=n;++i) for(int j=1;j<=m;++j) for(int k=1;j-k*up[i]>0;k++) f[ 阅读全文
posted @ 2017-09-02 18:46 Konoset 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 题目链接在此 其实我看到这道题一点想法都没有 设f[i][j][k]表示用2i秒能不能从j走到k。如果可以,那j到k就可以一秒走到,它们的路径长度就是1。方程为f[i][j][k]=f[i-1][j][l]&&f[i-1][l][k]。 最后在图上跑一遍Floyd。复杂度O(n3)。 代码如下 阅读全文
posted @ 2017-09-02 18:45 Konoset 阅读(148) 评论(1) 推荐(1) 编辑