
4001-4250
Mmh2000
这个作者很懒,什么都没留下…
展开
-
4144: [AMPPZ2014]Petrol
题目链接题目大意:给定一个n个点、m条边的带权无向图,其中有s个点是加油站。 每辆车都有一个油量上限b,即每次行走距离不能超过b,但在加油站可以补满。 q次询问,每次给出x,y,b,表示出发点是x,终点是y,油量上限为b,且保证x点和y点都是加油站,请回答能否从x走到y题解:每个点到它最近的加油站是最优的,以所有加油站为起点跑最短路,求出每个点到最近的加油站的距离 若一条边连接的两个点的最近加原创 2017-09-14 08:38:23 · 630 阅读 · 0 评论 -
4006: [JLOI2015]管道连接
题目链接题目大意:有一些关键点,每个点有一个颜色,使任意同色的关键点两两联通,求最小代价题解:首先斯坦纳树一下,然后再对不同颜色状压一次我的收获:2333#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <queue>using namespace std;#define I原创 2018-01-31 18:36:38 · 287 阅读 · 0 评论 -
4173: 数学
题目链接题目大意:设S(n,m)为满足 m mod k+ n mod k≥k \geq k的所有整数k组成的集合 求φ(n)\varphi(n) * φ(m)\varphi(m) *∑k∈S(n,m)φ(k)\sum_{k\in S(n,m)}\varphi(k) mod 998244353题解:前面的phi可以直接算,就是求后面那个sum 丢链接跑……我的收获:Orz#include <cst原创 2018-02-05 11:29:50 · 558 阅读 · 0 评论 -
4182: Shopping
题目链接题目大意:一棵树,每个点是一个物品,有个数,价格,收益,要求买的物品集合必须是一个连通块,求最大收益题解:枚举一个点作为根必选,然后变成了树形依赖多重背包对于树形依赖01背包,可以在dfs序上dp f[i][j]=max(f[i+1][j−v[i]]+w[i],f[i+sz[i]][j])f[i][j] = max(f[i + 1][j - v[i]] + w[i], f[i + sz[i原创 2018-02-09 16:24:26 · 269 阅读 · 0 评论 -
4146: [AMPPZ2014]Divisors
题目链接题目大意:给定一个序列a[1],a[2],…,a[n]。求满足i!=j且a[i]|a[j]的二元组(i,j)的个数题解:类似1607,暴力筛 调和级数复杂度看上去不科学(实际也不科学),但是由于Bzoj算总时间就可以过了我的收获:23333#include <cstdio>#include <iostream>using namespace std;#define N 2000010i原创 2018-01-29 15:49:29 · 304 阅读 · 0 评论 -
4145: [AMPPZ2014]The Prices
题目链接题目大意:你要购买m种物品各一件,一共有n家商店,你到第i家商店的路费为d[i],在第i家商店购买第j种物品的费用为c[i][j], 求最小总费用。题解:状压dp f[i][j]为前i个商店,购买物品的状态为j的最小费用,01背包转移我的收获:2333#include <bits/stdc++.h> using namespace std;const int INF=1e9;int原创 2018-02-06 20:16:42 · 243 阅读 · 0 评论 -
4027: [HEOI2015]兔子与樱花
题目链接题目大意:一棵树,每个点有cic_i,保证全局参数m满足son(i)+ci≤mson(i) + c_i \leq m,其中son(i)表示i的儿子的个数,删除一个点后它的c和儿子由父亲继承,求最多删除点的个数题解:直觉贪心删掉一个结点的代价是c[i]+son[i]-1很容易得到两个显然的结论: 1. 从下往上删最优 2. 每个节点先删代价最小的儿子最优直接排序做就可以了……我的收获:23原创 2018-02-27 11:28:53 · 233 阅读 · 0 评论 -
4025: 二分图
题目链接题目大意:神犇有一个n个节点的图。因为神犇是神犇,所以在T时间内一些边会出现后消失。神犇要求出每一时间段内这个图是否是二分图。这么简单的问题神犇当然会做了,于是他想考考你题解:联通且不含奇环,带权并查集+分治 ORZ Candy? 路径压缩的优化是均摊的,均摊在分治这种树形结构上使用是无效的我的收获:orz#include <bits/stdc++.h&g...原创 2018-02-13 22:25:24 · 271 阅读 · 0 评论 -
4198: [Noi2015]荷马史诗
题目链接题目大意:一篇文章有n个单词,其中第i个单词的出现次数为w[i]。你要用k进制串s[i]替换第i种单词。要求:对于任意i!=j,都有s[i]不是s[j]的前缀。 要使替换后的文章总长度最小。 求这个最小总长度。 在这个前提下,要使s[i]的最大长度最短,求这个最短的长度题解:k叉哈夫曼树 取最小的k个合并即可 发现只有当(n-1)%(k-1)=0的时候才能恰好合并,所以要添加k-原创 2018-02-13 22:36:41 · 363 阅读 · 0 评论 -
4011: [HNOI2015]落忆枫音
题目链接题目大意:给定一张有向无环图,现在要求加入一条边,求加入后以1为根的树形图个数 题解:Orz我的收获:从相似问题出发……#include <bits/stdc++.h>using namespace std;#define ll long longconst int N=100001;const int P=1e9+7;int n,m,X,Y;int in[N],d[N];ll in原创 2018-02-22 20:42:29 · 247 阅读 · 0 评论 -
4037: [HAOI2015]数字串拆分
13原创 2018-03-20 22:20:15 · 358 阅读 · 0 评论 -
4034: [HAOI2015]树上操作
题目链接题目大意:一棵点权树,支持点修改,子树修改,查询根路径前缀和题解:很久以前写过,不知道为什么WA了,现在又重构了一下就过了……我的收获:模板题#include #include #include #include using namespace std;#define N 100005#define INF 0x3f3f3f3ftypedef long原创 2018-01-14 15:30:28 · 248 阅读 · 0 评论 -
4033: [HAOI2015]树上染色
题目链接题目大意:有一棵点数为N的树,树边有边权。给你一个在0~N之内的正整数K,你要在这棵树中选择K个点,将其染成黑色,并将其他的N-K个点染成白色。将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间距离的和的收益。问收益最大值是多少题解:f[i][j]表示以i为根的子树染了j个黑点对答案的最大贡献Orz出题人 Orz题解考虑计算子树内的点与子树外的点组合所产生的权值 统计所有边对答案原创 2017-10-24 20:53:57 · 334 阅读 · 0 评论 -
4195: [Noi2015]程序自动分析
题目链接题目大意:给定n个点和m条限制条件(a=b or a≠b),判断是否矛盾题解:离散化后并查集判断。具体实现时扫描两遍,第一遍维护所有a=b,第二遍检查冲突#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int M=1000005;原创 2017-01-25 22:04:14 · 377 阅读 · 0 评论 -
4240: 有趣的家庭菜园
题目链接题目大意:把一个序列移成一个前一段单调不降,后一段单调不升的序列最少要交换相邻元素多少次 题解:我YY了逆序对,枚举+lis,拆成两半逆序对+顺序对……脑洞能力++ 首先求出答案序列,用标号序列的第ii个元素表示答案序列中第ii个元素在原始序列中的下标,对于样例:原始序列2 8 4 5 3 6 ,答案序列2 4 5 8 6 3 ,标号序列1 3 4 2 6 5,标号序列的逆序对数3即为答案原创 2017-07-05 21:26:39 · 427 阅读 · 0 评论 -
4152: [AMPPZ2014]The Captain
题目链接题目大意:平面上的n个点,(x1,y1)到(x2,y2)的费用为min(|x1-x2|,|y1-y2|),求从1号点走到n号点的最小费用题解:首先,忽视min,直接建两条边即可。考虑到从x1->x2的路径,直达一定比绕过另一个点短(从式子很容易看出来),于是按x/y排两次序,相邻的连边即可我的收获:这个似乎是常见的套路……#include <cstdio> #include <cstri原创 2017-07-15 21:19:05 · 337 阅读 · 0 评论 -
4247: 挂饰
题目链接题目大意:容量可以为负的01背包题解:每个挂钩体积改为1−ai,然后大力背包题解:每个挂钩体积改为1-a_i,然后大力背包 体积为正的逆序枚举,为负的顺序枚举……根据01背包原理YY一下就知道了我的收获:方便的负数下标重载技巧#include <iostream>#include <cstring>#include <cstdio>#include <climits>#includ原创 2017-08-25 10:50:33 · 440 阅读 · 0 评论 -
4242: 水壶
题目链接题目大意:矩阵,有建筑物,原野,墙壁,走原野需要1单位水,建筑物可以补满水,多次询问两个建筑物间需要携带的水壶大小题解:平面图上的最小生成树,然后就是货车运输了Orz题解我的收获:#include<iostream>#include<cstdio>#include<cstring>#define N 2005#define M 200005using namespace std;原创 2017-08-25 10:58:23 · 452 阅读 · 0 评论 -
4038: 医疗援助/4856: [Jsoi2016]病毒感染
题目链接题目大意:医疗团队来到n个村庄,n个村庄依次标号为1,2,…n。第i个村庄有ai个感染者。从1出发,每天可以去相邻村庄/治愈所在村庄,如果第i个村庄没有被治疗,那么每天这个村庄会死去ai个人,医疗团队在经过村庄i时,可能选择不治疗这个村庄而前往下一个村庄i+1,但是下次返回需要治疗之前所有未治疗的村庄,求最小死亡人数题目大意:医疗团队来到n个村庄,n个村庄依次标号为1,2,…n。第i个村庄有原创 2017-08-21 19:15:41 · 762 阅读 · 0 评论 -
4052: [Cerc2013]Magical GCD/4488: [Jsoi2015]最大公约数
题目链接题目大意:给定一个序列,求一个连续子序列,使得序列长度∗gcd最大题目大意:给定一个序列,求一个连续子序列,使得序列长度* gcd 最大 题解:丧病的模拟赛题……固定一个右端点,当左端点向左移动时,[l,r]的gcd单调不增,且每次减小一定为之前的因数,这样gcd不同的位置是log级别的,这样就可以大力暴力了固定一个右端点,当左端点向左移动时,[l,r]的gcd单调不增,且每次减小一原创 2017-08-19 15:31:02 · 672 阅读 · 0 评论 -
4159: [Neerc2009]Business Center
题目链接题目大意:M部电梯,开始都在0层,第i部电梯每次可以上u_i层楼,或下d_i层楼,求第i部电梯这样上下n次后,这个电梯最低能停在哪层(最终要在1层或以上)。并取最小值输出。题解:二分乱搞……据说有数学解法,然而并不会#include <iostream>#include <cstdio>using namespace std;#define INF 0x3f3f3f3fint n,m原创 2017-03-05 08:08:36 · 551 阅读 · 0 评论 -
4010: [HNOI2015]菜肴制作
题目链接题目大意:拓扑排序,要求靠前的出现的尽量早,以此类推 注意不是字典序最小,例如<3,1>、<4,1>,答案为 3,4,1,2 而字典序最小的拓扑排序为 2,3,4,1题解:建反图,按字典序从大到小拓扑排序,这样在排i时能在i之前排序的已经排完了,是最优的,这个和Noi2010 Plane 航空管制是一样的我的收获:这样的情况建反图似乎是套路……#include <iostream>#i原创 2017-09-08 14:31:54 · 275 阅读 · 0 评论 -
4196: [Noi2015]软件包管理器
题目链接题目大意:给出一个n个点的有根树,和m次操作; 初始时树上所有结点权值均为0; 1.将根到x结点的所有结点权值置为1,并输出这次修改了多少个元素; 2.将x结点的子树中所有结点权值置为0,并输出这次修改了多少个元素题解:剖剖剖我的收获:注意编号从0/1开始#include <iostream>#include <cstring>#include <cstdio>#include原创 2017-09-13 07:42:49 · 361 阅读 · 0 评论 -
4029: [HEOI2015]定价
1313原创 2018-03-20 22:20:22 · 328 阅读 · 0 评论