很明显的区间K覆盖模型,用费用流求解.只是这题N可达1e5,需要将点离散化. 建模方式步骤: 1.对权值为w的区间[u,v],加边id(u) id(v+1),容量为1,费用为 w; 2.对所有相邻的点加边id(i) id(i+1),容量为正无穷,费用为0; 3.建立源点汇点,由源点s向最左侧的点加边 ...
分类:
其他好文 时间:
2018-09-15 19:19:05
阅读次数:
317
输入 每个测试点(输入文件)有且仅有一组测试数据。 每组测试数据的第1行为一个整数N,意义如前文所述。 每组测试数据的第2行为N个整数,分别描述每种商品的重量,其中第i个整数表示标号为i的商品的重量Pi。 每组测试数据的第3行为一个整数Q,表示小Hi进行的操作数。 每组测试数据的第N+4~N+Q+3 ...
分类:
其他好文 时间:
2018-09-11 21:10:46
阅读次数:
170
不会区间覆盖,我真的菜! 这道题的第一个数字比较容易判断,从所有的沿海城市开始爆搜一遍,如果能全部搜到就1,否则0。 问题在于第二问。 一个可以证明的结论:当这个问题已经有解,每一个点向下面的提供水的范围是一个区间,不可能中间断了。 这个显然:如果中间断了的话,这个点就肯定无法到达,属于无解。 爆搜 ...
分类:
其他好文 时间:
2018-09-05 15:07:09
阅读次数:
155
和hdu5023一样不过询问不同。 #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <iostream> #define lson l,mid,rt<<1 #define rson ...
分类:
其他好文 时间:
2018-09-02 20:11:35
阅读次数:
145
题意: 在一个从0开始的连续区间上 放置几个小区间,使得这些小区间覆盖整个大区间,不同长度的小区间有不同的花费,其中有m个点,小区间的左端点不能放在这些点上 解析: 显然如果0是这m点中的一个 则无解 然后就是标记上连续不能放的点 然后遍历每一个小区间 从0开始放 求花费最小值即可 · 注意最大值的 ...
分类:
其他好文 时间:
2018-08-27 22:31:34
阅读次数:
257
题意:一个N*M的矩形,每个点初始都是白色的,有Q次操作,每次操作将以(x,y)为圆心,r为半径的区域涂成黑点。求最后剩余白色点数。 分析:对每行,将Q次操作在该行的涂色视作一段区间,那么该行最后的白色点数即列数-区间覆盖的总长度。这就转化成了扫描线的问题。 ...
分类:
其他好文 时间:
2018-08-19 12:58:56
阅读次数:
165
题目大意:给你一个数组,数组是经过q次区间覆盖后的结果,第i次覆盖是把区间内的值赋值为i,其中有若干个地方数值未知(就是0),让你判断这个数组是否可以经过覆盖后得到的,如果可以,输出任意一种可行数组。 思路:不合法的情况只有2种。1:两个相同的数字中间出现了比它小的数字,比如: 6 5 6 就不合法 ...
分类:
其他好文 时间:
2018-08-18 19:49:42
阅读次数:
165
题解: 一道比较简单的题目 想着想着就把题目记错了。。想成了可以把某段区间覆盖为其中一个数 其实是比较简单的 每个点的贡献一定是一个区间(就跟zjoi2018那题一样) 然后问题就变成了给你n个区间让你选择然后覆盖整个序列,其中使用>1的不能超过k 转移时比较简单的 ...
分类:
其他好文 时间:
2018-07-28 23:27:51
阅读次数:
147
题意:给定参数$k$,维护一个字符串,支持区间覆盖字符和查询,查询是查询区间中有多少个长度$\leq k$的子串是回文串,其中$k\leq50$ $k$很小,考虑从这里入手,我们先用manacher预处理出以每个位置开头有多少个回文串,用线段树存起来 查询$[l,r]$时$[l,r-k+1]$这段可 ...
分类:
其他好文 时间:
2018-07-22 20:49:37
阅读次数:
172
Help with Intervals 题意: 问经过若干次上述操作后,所得到的区间是什么? 分析: 我们一个一个操作来分析:(用0和1表示是否包含区间,-1表示该区间内既有包含又有不包含) U:把区间[l,r]覆盖成1 I:把[-∞,l)(r,∞]覆盖成0 D:把区间[l,r]覆盖成0 C:把[- ...
分类:
其他好文 时间:
2018-07-21 20:35:07
阅读次数:
156