摘要: C - Toll Management IV 我要气死了!下次我不自己看输入输出我是狗!对于树边的$a_i$,考虑非树边对他的贡献,从小到大将非树边$(u,v)$排序,他能贡献的是(u->lca)和(v->lca),缩树或者是树链剖分都可以。对于非树边的$b_i$,倍增求最大即可。 #include 阅读全文
posted @ 2019-08-18 17:36 唯我心 阅读(141) 评论(0) 推荐(0) 编辑
摘要: L - Olympiad Training $FWT$。首先,观察到$n$很小,我们可以想办法求出每个子集的答案,但是$m$很大,直接枚举子集的方法肯定行不通。不妨考虑对每个$topic$单独考虑贡献,设当前考虑的是第$j$个$topic$,然后枚举最大值,设$a_{ij}$为最大值,其他的人我们只 阅读全文
posted @ 2019-08-16 21:16 唯我心 阅读(132) 评论(0) 推荐(0) 编辑
摘要: A - You're in the Army Now 贪心。我们直接将这些人按分数从大到小排序,然后按照这个顺序让他们选择,最后按照要求输出即可。但是输出的排序方式不是字典序,而是字母序,这里要注意。 1 #include<cstdio> 2 #include<algorithm> 3 #inclu 阅读全文
posted @ 2019-08-07 10:33 唯我心 阅读(176) 评论(0) 推荐(0) 编辑
摘要: B - Mysterious LCM $FWT$。我们设$X=\prod_{i=1}^{cnt}p_i^{c_i}$,显然,$cnt$不会很大,然后,我们对$a$数组进行一定的处理,只保留$X$的因子,如果都不是$X$的因子或者他们的$lcm$不是$X$,那么就无解,否者的话,这个问题就变成了,我们 阅读全文
posted @ 2019-07-30 18:00 唯我心 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 1001 - 深海里的大菠萝 显然这么小的数据范围我们瞎暴力就行了。然后就能得出来凸包上合法的点对。然后我贪心wa了,发现了反例,感觉是dp,不会dp,卒 其实dp很简单,我们在普通的区间dp上枚举断点更新完答案之后再看区间首尾合不合法即可。 1 #include <bits/stdc++.h> 2 阅读全文
posted @ 2019-07-30 00:23 唯我心 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 1001 - Blank $dp$。给的限制条件是一些区间内出现的数字种类数,其实比较容易联想到一个经典的题,就是一个序列以及很多组询问,每个询问查询一个区间内不同种类的数字个数,这个题的一个做法是将询问按右端点升序排序,然后扫描线,用线段树维护每个数字出现的最晚位置。这个题由于数字种类本身很少,只 阅读全文
posted @ 2019-07-28 21:57 唯我心 阅读(228) 评论(0) 推荐(0) 编辑
摘要: A - Art 签到题。暴力枚举累计答案即可。 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 int a[5]; 5 int main() { 6 for(int i=0;i<5;i++) scanf("%d",a+i 阅读全文
posted @ 2019-07-28 19:43 唯我心 阅读(386) 评论(0) 推荐(1) 编辑
摘要: D - Dicy Numbers 积性函数、组合数。其实如果数据组数比较少的话,我们很容易yy到一个矩阵快速幂的做法,复杂度为$O(div(N)^3logM) $。数据组数这么多,$M$又这么大,那我们可以猜想下一定含有什么规律,打个表就可以发现,如果固定$M$,$S(N,M)$是关于$N$的积性函 阅读全文
posted @ 2019-07-23 19:23 唯我心 阅读(225) 评论(0) 推荐(0) 编辑