10 2020 档案

摘要:题目 实际上经转换得: 给了 n(n5×105) 条线段,求覆盖 [1..n] 需要的最少条数 分析 设 fi 表示覆盖了 [1..n] 时需要的最少的线段数 那么 O(n2) 的转移是这样的 #include<cstdio> # 阅读全文
posted @ 2020-10-31 11:45 leiyuanze 阅读(244) 评论(0) 推荐(0) 编辑
摘要:题目 在一片草原上有 N 个兔子窝,每个窝里住着一只兔子,有M条路径连接这些窝。更特殊地是,至多只有一个兔子窝有3条或更多的路径与它相连,其它的兔子窝只有1条或2条路径与其相连。换句话讲,这些兔子窝之前的路径构成一张 N 个点、M 条边的无向连通图,而度数大于2的点至多有1个 阅读全文
posted @ 2020-10-24 16:57 leiyuanze 阅读(131) 评论(0) 推荐(0) 编辑
摘要:题目 对于 50 的数据,1<=n<=1000,1<=p<=300 对于 100 的数据,1<=n<=50000,1<=p<=100000,1<=x<=n,0<=k<=1000 分析 树上子树加的操作让我们联想到线段树的区间加 然后我们就可以用 dfs 序把子树弄到序列里 阅读全文
posted @ 2020-10-24 11:59 leiyuanze 阅读(96) 评论(0) 推荐(0) 编辑
摘要:题目大意 有 N 个数 Ai ,他准备将他们依次插入一个双端队列(每次可以在头或尾插入一个元素),最后将 整个队列从尾到头看成一个序列,求出最长上升子序列的长度 。他想知道 , L 的最大值是多少。 分析 很简单,考虑一个数,构造有它的最长上升子序列 把比他小的放他前面,比 阅读全文
posted @ 2020-10-22 20:38 leiyuanze 阅读(170) 评论(0) 推荐(0) 编辑
摘要:题目大意 有一个长度为 N 的序列 A 。他希望从中选出不超过 K 个连续子段,满足它们两两不相交,求总和的最大值(可以一段也不选,答案为 0)。 分析 很容易想到 O(n2)dpf[i][j] 表示选到第 i 位,已选了 \ 阅读全文
posted @ 2020-10-22 20:30 leiyuanze 阅读(369) 评论(0) 推荐(0) 编辑
摘要:题目 分析 考虑 kruskal 的过程 我们选边从高位开始 当前位为 0 的放一边,为 1 的放另一边 将 0 的建一棵字典树, 1 的匹配 因为是异或,那就走相同值的位,算能匹配到的最小值的个数 和与方案数都可以在这里计算 Code #include<cstdio 阅读全文
posted @ 2020-10-22 10:59 leiyuanze 阅读(103) 评论(0) 推荐(0) 编辑
摘要:题目 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄做一些防火措施,保障自己、猫、奶牛的生命安全。 农夫约的农庄里有N+1 座建筑,排成了一排,编号为0~N。对于0 ⇐i < N,建筑i 有w[i]头奶牛居住,与建筑i+1 距离为d[i]。建筑N 已装有消防栓,现在,农夫 阅读全文
posted @ 2020-10-17 17:02 leiyuanze 阅读(138) 评论(0) 推荐(0) 编辑
摘要:题目 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里每座建筑都连上互联网,方便未来随时随地网购农药。 他的农庄很大,有N 座建筑,但地理位置偏僻,网络信号很差。 一座建筑有网,当且仅当满足以下至少一个条件: 1、给中国移动交宽带费,直接连网,花费为A。 2、向另外一座有 阅读全文
posted @ 2020-10-17 14:10 leiyuanze 阅读(94) 评论(0) 推荐(0) 编辑
摘要:题目 如题 分析 第一问很简单, dp 即可(得先排序) 第二问很经典,最小路径覆盖问题,最大流解决 nMaxflow Code #include<cstdio> #include<iostream> #include<algorithm> #include<queue> 阅读全文
posted @ 2020-10-17 14:07 leiyuanze 阅读(76) 评论(0) 推荐(0) 编辑
摘要:题目链接 Destroying 分析 又是变形了的最短路 我们可以考虑哪些道路必须被保留 然后枚举两个起点到终点重复的道路 考虑公合法用这些道路就可以了 Code #include<cstdio> #include<queue> #include<cstring> #include< 阅读全文
posted @ 2020-10-16 13:01 leiyuanze 阅读(78) 评论(0) 推荐(0) 编辑
摘要:题目 百度 分析 很容易想到二分答案 然后考虑判定 条件很多,奇奇怪怪 那就上网络流吧 边权 mid 两个城市连边 inf 源点与所有城市连边,边权为本城市有金矿量 城市与自己的仓库连边,边权为本城市仓库容量 仓库与汇点两边 inf Code #includ 阅读全文
posted @ 2020-10-15 13:38 leiyuanze 阅读(106) 评论(0) 推荐(0) 编辑
摘要:题目 网上大把 分析 显然不能简单直接最短路 城市被攻占的特点是:保护的城市都被攻占了 那么这个城市被攻占的最早时间必然是所有保护他的城市中最大的被攻占时间 于是我们可以 设 dis 表示军队走到城市 i 驻扎于城外的最短时间 f 表示所有保护他的城市中最大的被攻占时间 最短 阅读全文
posted @ 2020-10-15 11:06 leiyuanze 阅读(69) 评论(0) 推荐(0) 编辑
摘要:题目链接 Haywire 分析 模拟退火裸题,交了 4Code #include<cstdio> #include<algorithm> #include<cmath> using namespace std; int n , a[15][5] , pos[15] , tmp[15 阅读全文
posted @ 2020-10-14 13:44 leiyuanze 阅读(110) 评论(0) 推荐(0) 编辑
摘要:题目 请前往 [JSOI2004]平衡点 分析 随机算法 为何不模拟退火呢? 于是(其实目前我不懂怎么判断平不平衡) 能量越小系统越平衡 Code #include<cstdio> #include<algorithm> #include<cmath> using namespace std 阅读全文
posted @ 2020-10-14 12:29 leiyuanze 阅读(104) 评论(0) 推荐(0) 编辑
摘要:题目大意 求 b (正整数集合)使得 i=1n+1ai×bi=1 其中给定 bn+1=m 且为 b 中最大值 1n,m1015 解法 其实很简单 很容易想到 \(\gcd(b_1,b_ 阅读全文
posted @ 2020-10-10 13:35 leiyuanze 阅读(74) 评论(0) 推荐(0) 编辑
摘要:题目 分析 很神奇的贪心 Code #include<cstdio> #include<algorithm> using namespace std; typedef long long LL; const int N = 100005; int n , T , cnt1 , cnt2; L 阅读全文
posted @ 2020-10-09 12:31 leiyuanze 阅读(87) 评论(0) 推荐(0) 编辑
摘要:题目 分析 毫无疑问 dpfi,j 表示选到第 i 层,已选 j 个矩阵最大覆盖面积 那么 fi,j=maxfl,j+wi(il) 显然斜率优化 Code #include<cstdio> #include<iost 阅读全文
posted @ 2020-10-09 09:34 leiyuanze 阅读(103) 评论(0) 推荐(0) 编辑
摘要:题目大意 个等长的由大写英文字母构成的字符串 ab,从 a 中选择连续子串 x,从 b 中选出连续子串y。 定义函数 fx,y 为满足条件 xi=yi(1<=i<=|x|)i 的个数,计算 fx,y 阅读全文
posted @ 2020-10-08 07:19 leiyuanze 阅读(118) 评论(0) 推荐(0) 编辑
摘要:题面 其中 1n2×106 分析 考虑每次移动,发现负数对答案贡献少 1,非负数多 1 每次移动都加了 1 负数变非负数关键点在于 0 把所有值映射到数轴上,每次加一相当于原点向左移一位 讨论移位后负数数量的变化即可 首位则特别处理 我们只 阅读全文
posted @ 2020-10-07 22:10 leiyuanze 阅读(96) 评论(0) 推荐(0) 编辑
摘要:题目 略 分析 又是一个显然的树形依赖背包 然而可以 O(nm) 依靠 dfs 序来 dp Code #include<iostream> #include<cstdio> #include<cstring> using namespace std; const in 阅读全文
posted @ 2020-10-07 18:46 leiyuanze 阅读(113) 评论(0) 推荐(0) 编辑
摘要:题目大意 有 n(1n10000) 个城镇,由 1m50000 条无向道路连接。给出 k(1k5),现于剩下 nk 个城镇中选择一个,使它到所有有超市的城镇再回来总路程最短 分析 注意到 \ 阅读全文
posted @ 2020-10-07 18:39 leiyuanze 阅读(101) 评论(0) 推荐(0) 编辑
摘要:题目 分析 很神奇的事情又发生了!! 很容易想到设 fi,j 表示考虑前 i 个区间,已选 j 个区间且必选第 i 时能覆盖到的最多苹果数 转移 O(n) 很显然了 然后,就没了····· 什么?!! 实际上测试数据给的答案是不能不用凳子的!!! 于是悲 阅读全文
posted @ 2020-10-06 18:59 leiyuanze 阅读(117) 评论(0) 推荐(0) 编辑
摘要:题目大意 给定 n 个度数为 [1,2] 之间的点,求能组成多少种简单无向图(可不连通,点与点之间有别) 分析 显然答案只与 n1,n2 有关 那么 dp?(我也不知道为什么) 设 fi,j 表示当前状态的图用了 i 个点,目前其度数为 阅读全文
posted @ 2020-10-06 18:51 leiyuanze 阅读(115) 评论(0) 推荐(0) 编辑
摘要:题面 分析 注意读题 然后显然字符串哈希 Code #include<cstdio> #include<cstring> using namespace std; typedef long long LL; const int N = 1e5 + 5; const LL P = 1e9 + 阅读全文
posted @ 2020-10-05 21:57 leiyuanze 阅读(99) 评论(0) 推荐(0) 编辑
摘要:题面 各大 OJ 都有 分析 从结果入手:所有被敌方军团占领的城市都是分开的 而按最小代价删去若干条边,则剩下的图必然是若干个联通子图组成的 那么我们要使花费最小,可以是留下的边最大 并查集合并两个敌方军团和不大于一集合即可 Code #include<cstdio> #includ 阅读全文
posted @ 2020-10-05 21:55 leiyuanze 阅读(99) 评论(0) 推荐(0) 编辑
摘要:题面 分析 dp 的话设 fi,0/1 表示第 i 列填的两个是否相同 那么接下来是很繁琐的转移 直接看代码吧 Code #include<cstdio> #include<iostream> using namespace std; typedef long 阅读全文
posted @ 2020-10-05 21:49 leiyuanze 阅读(115) 评论(0) 推荐(0) 编辑
摘要:题面 分析 状压 dp 直接上啊! 设 ft,S,pos 表示 t 这个时刻之前能钓到的最多的鱼的数量 那么当前为可以钓鱼也可以移动 于是一切都明朗了 Code #include<cstdio> #include<iostream> #include<cstri 阅读全文
posted @ 2020-10-05 21:44 leiyuanze 阅读(95) 评论(0) 推荐(0) 编辑
摘要:模板 Problemn 个模式串在文本串中出现的次数 templete Luogu5357 Code #include<cstdio> #include<cstring> using namespace std; const int N = 2e5 阅读全文
posted @ 2020-10-05 09:03 leiyuanze 阅读(168) 评论(0) 推荐(0) 编辑
摘要:模板 Problem 找出哪些模式串在文本串 T 中出现的次数最多。 templeteLuoguP3796 Code #include<cstdio> #include<iostream> #include<cstring> using namespac 阅读全文
posted @ 2020-10-03 11:01 leiyuanze 阅读(106) 评论(0) 推荐(0) 编辑
摘要:模板 Problem 多个模式串匹配文本串,求能合法匹配的个数 limit1n106 templeteLuoguP3808 Code #include<cstdio> #include<cstring> using names 阅读全文
posted @ 2020-10-02 21:32 leiyuanze 阅读(123) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示