上一页 1 2 3 4 5 6 7 ··· 14 下一页
摘要: 题目: 分析: 先不考虑天数的限制,直接对每一个人建一颗trie。 对于每一个人来说,他的x的贡献来源于trie树上所有在他右边的点(都比他大)。 将每一个子树所有的叶子结点记为f,x^2=(f1+f2+……fx)^2 将右式拆开看:f i *f i + f i * f j *2(枚举i,j统计贡献 阅读全文
posted @ 2019-11-01 21:12 rua-rua-rua 阅读(158) 评论(0) 推荐(0) 编辑
摘要: P4819 [中山市选]杀人游戏 分析: 这种题先从简单情况分析:如果是一条链:1->2->3->4直接查入度为0的即可:因为知道1,就知道2,如果2是杀手,结束。 否则去查证2(因为已知2不是杀手 所以这一步是不需要花费被杀的风险的!!) 以此类推。最后的答案就是1-(1/n)*ans一条链只需要 阅读全文
posted @ 2019-11-01 18:44 rua-rua-rua 阅读(240) 评论(0) 推荐(0) 编辑
摘要: P4042 [AHOI2014/JSOI2014]骑士游戏 分析:spfa好题很明显的转移是:f[u]=min(法术,sigma(f[v]))显然要将一个怪兽产生另一个的关系连边 但是问题在于f有后效性,当前的f[u]更新了,可能还会对之前会产生u的其它点有影响而spfa就可以解决这个问题。将转移式 阅读全文
posted @ 2019-11-01 16:49 rua-rua-rua 阅读(126) 评论(0) 推荐(0) 编辑
摘要: T1: 原题:P2467 [SDOI2010]地精部落 分析: 定义f[i][0/1]为递推到第i位,是奇数项大于两边还是偶数项大于两边。 但是发现,上面两种情况是等价的,只需要求出一种即可,然后将答案*2。 假设已经放了i-1个合法的高度,现在将第i个高度放入。 在i-1个高度中有i个位置是可以插 阅读全文
posted @ 2019-10-28 20:52 rua-rua-rua 阅读(139) 评论(0) 推荐(0) 编辑
摘要: T1: 分析: 画图模拟,发现折叠后的长度会变成折叠位置左右两部分取max,难点在于:折叠后找不到对应的点在哪个位置。 因为n很大,但其实很多位置都是用不到的,所以处理m个操作。 一次操作后,可能会影响到后面的所有操作的位置,于是将操作离线,一次操作后将后面所有将要用到的操作位置都更新。 怎么更新? 阅读全文
posted @ 2019-10-24 22:09 rua-rua-rua 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 题目: 分析: 如果直接做最小生成树,会出现以下不合法情况: 1.白边选多了。说明白边的权值太小了,我们可以通过加大白边的权值来似的选少一点白边。 2.白边选少了。与上面同理。 我们不知道白边的取值在多少合适,但明显具有单调性(白边权值越大,选的条数一定会减少),所以可以用二分来确定白边的取值。 二 阅读全文
posted @ 2019-10-22 17:51 rua-rua-rua 阅读(157) 评论(0) 推荐(0) 编辑
摘要: T1:入阵曲 n,m<=400,k<=1e6 分析:考虑只有一行的情况: 将这一行求前缀和后,一段区间的和x=sum[r]-sum[l-1],如果x%k==0,那么sum[r]%k - sum[l-1]%k == 0 转化一下,也就是说:sum[r]与sum[l-1]在模k的意义下相等。 所以对于一 阅读全文
posted @ 2019-10-22 17:44 rua-rua-rua 阅读(167) 评论(0) 推荐(0) 编辑
摘要: T1: 一只青蛙失去了荷叶的保护。 它十分迷茫,于是决定改变自己的基因,让自己成为一个受庇护的不会老去的物种。众所周知,青蛙的基因是一段有遗传效应 DNA 片段,我们认为这个片段仅由“A”,“ T”,“C”,“ G”组成,为了方便,我们只需考虑DNA的一条链。 这只青蛙十分有经验,它知道这条链长度为 阅读全文
posted @ 2019-10-21 11:44 rua-rua-rua 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 巴什博奕: 只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 结论:若n%(m+1)!=0则先手必败,否则先手必胜。(证明) 简单证明:若有一方面临着m+1的局面,那么那一方必败,所以对方都想让互相陷入m+1的局面。 若n%(m+1)!=0,那么先手就可 阅读全文
posted @ 2019-10-18 10:21 rua-rua-rua 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 线性筛: 所有积性函数都能使用线性筛,线性筛保证每个数只会被它的最小质因子给筛掉,所以时间是线性的。 线性筛质数: void init(int n) { for(ri i=2;i<=n;++i){ if(!pri[i]) su[++cnt]=i; for(ri j=1;j<=cnt && su[j] 阅读全文
posted @ 2019-10-16 19:41 rua-rua-rua 阅读(224) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 14 下一页