随笔分类 -  ---其他算法---

摘要:题目链接:hdu 6025 card card card 题意: 有n对数(a,b),现在你可以将前x对(a,b)移到尾部。 操作完后,现在定义sum=ai-bi (1,x),当sum<0时,当前的价值为Σai (1<=i<=x-1)。 问你移动前多少对(a,b),使得价值最大,如果有多个答案,输出 阅读全文
posted @ 2017-09-10 20:53 bin_gege 阅读(114) 评论(0) 推荐(0)
摘要:题目链接:hdu 6119 小小粉丝度度熊 题意: 给你n个区间,和一个数m,m表示可补上不连续的位置累计和为m,现在问你最长的连续区间和为多少。 题解: 我可能写的有点复杂,大概就是将每个区间排序后离散化,将这些间隔看成一个点,然后双指针一下。 1 #include<bits/stdc++.h> 阅读全文
posted @ 2017-08-13 18:39 bin_gege 阅读(160) 评论(0) 推荐(0)
摘要:题目链接:Codeforces Round #417 (Div. 2) C. Sagheer and Nubian Market 题意: 有n个物品,S的钱,买每个物品有个计算价钱的公式。 让你在S钱中买最多的物品。 题解: 二分瞎搞一下就行了。 1 #include<bits/stdc++.h> 阅读全文
posted @ 2017-07-08 15:12 bin_gege 阅读(123) 评论(0) 推荐(0)
摘要:题目链接:hdu 3400 Line belt 题意: 在二维平面上给你两条线段AB,CD,线段上的速度分别是v1,v2,在线段外的速度为v3. 问从A到D最短的时间需要多少。 题解: 三分AB上的一个点,三分CD上的一个点。 即三分套三分。 1 #include<bits/stdc++.h> 2 阅读全文
posted @ 2017-07-07 16:08 bin_gege 阅读(173) 评论(0) 推荐(0)
摘要:题目链接:Codeforces Round #422 (Div. 2) C. Hacker, pack your bags! 题意: 有n条线段,现在让你找两条线段,使得这两条不重合并且两条线段的长度和为x。 然后使得这两条线段的价值最小。 题解: 先将所有线段按照左端点排序,然后将对应长度的线段扔 阅读全文
posted @ 2017-07-03 21:00 bin_gege 阅读(174) 评论(0) 推荐(0)
摘要:题目链接:Educational Codeforces Round 24 F. Level Generation 题意: 给你n个点,让你构造ans条边,使得这ans条边中至少有一半是桥。 让你求ans的最大值。 题解: 首先我们将每一个点按顺序连起来,那么可以构成n-1个桥。 然后我们可以把其中的 阅读全文
posted @ 2017-07-03 19:04 bin_gege 阅读(178) 评论(0) 推荐(0)
摘要:题目链接:Educational Codeforces Round 24 E. Card Game Again 题意: 给你n个数和一个数k。 现在每次可以拿掉前x个数,后y个数,剩下的数的乘积要能被k整除,求方案数。 题解: 首先剩下的数要被k整除,剩下数的乘积要有k的全部因子,并且个数要大于等于 阅读全文
posted @ 2017-07-03 13:27 bin_gege 阅读(144) 评论(0) 推荐(0)
摘要:题目链接:Codeforces Round #418 (Div. 2) C. An impassioned circulation of affection 题意: 给你一个字符串,有q个询问,每个询问一个x和一个字符 o。 现在让你在原来的字符串上最多改变x个字符,问能构成最长的o子串的长度。 题 阅读全文
posted @ 2017-06-27 13:34 bin_gege 阅读(155) 评论(0) 推荐(0)
摘要:题目链接:hdu 4355 Party All the Time 题意: 有n个人,在一个一维的坐标轴上,现在让他们聚在一起。 每个人移动一段距离会产生一个 不开心值=S3*W,现在问你最小的全部加起来的不开心值是多少。 题解: 目标函数是一个凸函数,直接上三分就行了。 1 #include<bit 阅读全文
posted @ 2017-05-28 17:45 bin_gege 阅读(220) 评论(0) 推荐(0)
摘要:题目链接:hdu 4717 The Moving Points 题意: 在二维平面上有n个点,每个点给出移动的方向和速度。 问在某个时刻,这些点中最大距离最小是多少,输出时刻和距离。 题解: 我们可以知道,每个点对的距离要么是单调递增,要么是有一个峰的函数。 举例画一下可知道合成的这个函数最多只有一 阅读全文
posted @ 2017-05-26 22:09 bin_gege 阅读(187) 评论(0) 推荐(0)
摘要:题目链接:Educational Codeforces Round 21 E - Selling Souvenirs 题意: 有n个物品,每个物品有一个重量和价值,现在有一个m大的背包,问你最大能装多少价值。 题解: 做法一: 这题是加强版的01背包,不过有个特别的地方就是w只有三种。 所以可以枚举 阅读全文
posted @ 2017-05-26 17:15 bin_gege 阅读(153) 评论(0) 推荐(0)
摘要:题目链接:Codeforces Round #403 div2 B. The Meeting Place Cannot Be Changed 题意: 一条直线有n个点,每个点有一个速度,然后将全部的点聚在一起,问最少的时间 题解: 二分答案,然后O(n)check一下能否聚到一起。 check:维护 阅读全文
posted @ 2017-03-06 13:04 bin_gege 阅读(129) 评论(0) 推荐(0)
摘要:题目链接:hdu 4123 Bob’s Race 题意: 给你n个节点,n-1条边的树,每条边有一个边权,定义dis[i]为距离i这个点最远的距离。 现在有m个询问,每个询问给一个q,然后找一段节点标号连续的点,使得max(dis[j])-min(dis[i])<=q; 问最长的一段区间。 题解: 阅读全文
posted @ 2017-02-28 15:21 bin_gege 阅读(127) 评论(0) 推荐(0)
摘要:题目链接:Codeforces Round #402 (Div. 2) D. String Game 题意: 给你两个字符串a,b,然后给你n=strlen(a)个数字n1,n2,...,nn,表示依次删a[ni-1]个字符。 当a串删到有k(k任意)个子串组合起来(顺序不变)刚好等于b串时,就不能 阅读全文
posted @ 2017-02-26 19:16 bin_gege 阅读(258) 评论(0) 推荐(0)
摘要:题目链接:hdu 2158 最短区间版大家来找碴 题意: 给你n个数,现在有m个询问,每个询问有q个数,让你从那n个数中选一个最小的区间,使得这个区间内包含有这q个数 题解: 双指针滚一下,具体细节看代码 1 #include<bits/stdc++.h> 2 #define F(i,a,b) fo 阅读全文
posted @ 2017-02-19 21:49 bin_gege 阅读(158) 评论(0) 推荐(0)
摘要:题目链接:hdu_4918_Query on the subtree 题意: 给出一颗n个点的树,每个点有一个权值,有两种操作,一种是将某个点的权值修改为v,另一种是查询距离点u不超过d的点的权值和。 题解: 这里可以去膜膜鸟神的博客。 简单来说就是对树的每个重心建立两个树状数组,然后对于每个点修改 阅读全文
posted @ 2016-12-02 13:25 bin_gege 阅读(583) 评论(0) 推荐(0)
摘要:题意: 给你一个有n个点的树,给定根,叫你找第k大的特殊链 。特殊的链的定义:u,v之间的路径,经过题给的根节点. 题解:(来自BC官方题解) 对于求第k大的问题,我们可以通过在外层套一个二分,将其转化为求不小于mid的有多少个的问题。 接下来我们讨论如何求树上有多少条折链的长度不小于k。 我们考虑 阅读全文
posted @ 2016-11-28 21:34 bin_gege 阅读(381) 评论(0) 推荐(0)
摘要:题目链接:hdu_4742_Pinball Game 3D 题意: 给你n个点,让你求三维的LIS,并且求出有多少种组合能达到LIS。 题解: 求三维的LIS,典型的三维偏序问题,x排序,解决一维,cdq分治y,解决一维,树状数组维护z,解决一维。 注意,cdq中sort不要调用太多,不然会被卡常。 阅读全文
posted @ 2016-11-22 17:35 bin_gege 阅读(144) 评论(0) 推荐(0)
摘要:题目链接:hdu_5354_Bipartite Graph 题意: 给你一个由无向边连接的图,问对于每一个点来说,如果删除这个点,剩下的点能不能构成一个二分图。 题解: 如果每次排除一个点然后去DFS判是否为二分图,那肯定会超时。 我们可以知道,删除其中一个点,对其他好多的边都不会有影响,所以我们可 阅读全文
posted @ 2016-11-21 12:26 bin_gege 阅读(235) 评论(0) 推荐(0)
摘要:题目链接:hdu_5314_Happy King 题意: 给出一颗n个结点的树,点上有权值; 求点对(x,y)满足x!=y且x到y的路径上最大值与最小值的差<=D; 题解: 还是树的点分治,在统计答案的时候先按到根的最小值排序,然后用最大值减D去找有多少个满足答案。 1 #include<bits/ 阅读全文
posted @ 2016-11-17 21:50 bin_gege 阅读(515) 评论(0) 推荐(0)