05 2017 档案

摘要:" 416 Div2 C" 题意 一些人去坐车,它们已经按给定顺序排队,每个人可能去不同的目的地,去同一目的地的人一定要被分成一组(去不同目的地的也可被分到同一组),对分好的每一组所有不同的目的地序号作异或,并求和,求使得结果最大。(不要求每个人都要分组,不能改变人的顺序,在同一组的人序号必须连续) 阅读全文
posted @ 2017-05-31 17:30 ftae 阅读(116) 评论(0) 推荐(0)
摘要:"bzoj2002" 题意 给定 n 个值 a,表示某人跳到这个点 ( i ) 后会向后跳到 ( i + a ) 这个点,直到跳出范围 n 。 两个操作: 1. 询问,从查询的点开始需要多少次跳出范围 n ; 2. 更新单个节点的值 a; 分析 分块,这里分块的作用是平衡查询和更新的复杂度(O(sq 阅读全文
posted @ 2017-05-25 00:50 ftae 阅读(150) 评论(0) 推荐(0)
摘要:"hdu5803" 题意 给出四个整数 A B C D,问有多少个四元组 (a, b, c, d) 使 a + c b + d 且 a + d = b + c ,0 = 2,那么到十位数时(a + c b d 最少也才 18,而前面到十位数会乘 10 即得到 20)一定满足条件了(加上 a + d 阅读全文
posted @ 2017-05-23 23:12 ftae 阅读(205) 评论(0) 推荐(0)
摘要:"hdu4417" 题意 给定一个数列,每次查询一个区间,和一个值h,问区间内有多少个数小于等于h。 分析 二分数的个数,划分树求解判断是否满足条件,划分树求解的是第k小的数,那么前面k个数肯定不大于这个数了,比较这个数和h即可。 code cpp include include include i 阅读全文
posted @ 2017-05-18 13:09 ftae 阅读(188) 评论(0) 推荐(0)
摘要:"poj2104" 题意 给出一个序列,每次查询一个区间,要求告诉这个区间排序后的第k个数。 分析 划分树模板,O(mlogn)。 1. 建树。根据排序之后的数组,对于一个区间,找到中点的数,将整个区间分为左右子树(在子区间内数与数的相对位置保持不变),递归向下分割。 2. 查询。toleft[p] 阅读全文
posted @ 2017-05-18 13:07 ftae 阅读(291) 评论(0) 推荐(0)
摘要:"D. 实验室传染病" 题意 给出 n 个人的位置,以及每个人的传染范围,当一个人患病时,他的传染范围内(包括边界上)的人全部会被感染并继续向外传播。 求以每个人为传染源最多有多少人被感染。 分析 首先二分预处理每个人一次最远感染到的人,然后线段树维护区间,表示每个点最远感染到右边的人以及感染到左边 阅读全文
posted @ 2017-05-17 09:37 ftae 阅读(171) 评论(0) 推荐(0)
摘要:"poj2069" 题意 求一个覆盖所有点的最小球体的半径。即求空间内一点到所有点的距离的最大值最小的点。 分析 模拟退火算法,但这道题竟然不用随机函数就能过了,主要体现了算法的渐近收敛性, 起始点随意取,然后找到相距最远的点,按比例向这个点位移,而这个比例在一定程度上是逐渐减小的,最终达到要求的精 阅读全文
posted @ 2017-05-12 17:01 ftae 阅读(201) 评论(0) 推荐(0)
摘要:"poj1379" 题意 给出 n 个洞的坐标,要求找到一点使得这一点距离最近洞的距离最远。 分析 通过这道题学习一下 "模拟退火算法" , 这种随机化的算法,在求解距离且精度要求较小时很有用。 简而言之,由随机选取的多个初始点,进行多次的随机变换,并根据是否更优而选择是否保留答案, 那么首先要选择 阅读全文
posted @ 2017-05-12 11:26 ftae 阅读(355) 评论(0) 推荐(0)
摘要:"hdu5950" 题意 $给出 f_1 , f_2 ,以及递推式 f_n = 2 f_{n 2} + f_{n 1} + n^4 ,求 f_n (mod=2147493647)$ 推导一下。 $$\begin{Bmatrix} f_n\\ f_{n 1}\\ f_{n 2}\\ (n+1)^4\\ 阅读全文
posted @ 2017-05-10 22:38 ftae 阅读(182) 评论(0) 推荐(0)
摘要:"poj3417" 题意 给出一颗 n 个节点, n 1 条边的树,再加上 m 条新边,允许删掉树边和新边各一条,问能使树分为两部分的方案数。 分析 在树的基础上加上不重复的新边一定会构成环,那么考虑的就是怎么拆分环。 对于给出的新边(u, v),构成的环就是,u LCA(u, v) v u,将环上 阅读全文
posted @ 2017-05-10 22:19 ftae 阅读(377) 评论(0) 推荐(0)
摘要:LCA 在有根树中,两个节点 u 和 v 的公共祖先中距离最近的那个被称为最近公共祖先(LCA,Lowest Common Ancestor)。 有多种算法解决 LCA 或相关的问题。 基于二分搜索的算法 首先搜索树中各个节点的深度; Tarjan 离线算法 "hdu2586" 一道模板题,求二叉树 阅读全文
posted @ 2017-05-09 00:15 ftae 阅读(434) 评论(0) 推荐(0)
摘要:"UVALive 5731" 题意 一颗 n 1 条边的有向树,要求整棵树成为强连通图,一次操作即构建一条路(一笔画), 限制: 新建的路上的所有边必须与原有的边逆向,即构建的路必须在原有的边和点上, 操作构建的路可以存在公共边或公共点, 一次操作构建的路只能有同一点或边一次 分析 要成为强连通图, 阅读全文
posted @ 2017-05-05 21:52 ftae 阅读(212) 评论(0) 推荐(0)
摘要:软件下载列表: "Emacs" "Racket" (这里使用 Racket ,更加方便,便于后面配置 Emacs) 配置 安装好 Emacs 后,在 文件夹中添加文件 . 用于改变 Emacs 默认的 HOME 路径,一般设置在 Emacs 的路径下。 在HOME路径(E:/emacs 25.2/) 阅读全文
posted @ 2017-05-03 19:57 ftae 阅读(1057) 评论(0) 推荐(0)
摘要:pair 系统返回(1 . 2)。cons 操作给两个地址分配了内存空间,并把存放指向 1 的地址放在一个空间,把存放指向2的地址放在另一个空间。存放指向1的地址的内存空间被称作 car 部分,对应的,存放指向2的地址的内存空间被称作 cdr 部分。 car 和 cdr 分别是寄存器地址部分(Con 阅读全文
posted @ 2017-05-02 21:45 ftae 阅读(1203) 评论(0) 推荐(0)
摘要:"C. Friends" 题意 对于任一点,求到此点距离不超过6的节点数。 分析 第一次dfs,形成一个以 1 为根的有向树,设 down[i][j] 为以i为根节点,距离 i 点距离不超过 j 的节点数(这些节点都是 i 的子孙节点) 第二次dfs,设 up[i][j] 以 i 为起点,距离 i 阅读全文
posted @ 2017-05-01 10:49 ftae 阅读(180) 评论(0) 推荐(0)
摘要:"RPG的地图" 题意 判断点是否在不规则多边形内, 分析 首先,所有横、纵坐标都+1000,方便标记和累加。 1. 在边上也满足条件,对于垂直或平行于 x 轴的线段,直接在枚举线段的时候标记下其中的所有点即可。对于其它线段,表示成 的形式,枚举 x 找到,整数 y 即可。 2. 对于在里面的点,通 阅读全文
posted @ 2017-05-01 10:47 ftae 阅读(376) 评论(0) 推荐(0)
摘要:"Range Modular Queries" 题意 给出一个数列,q个查询,问查询区间内有几个数 a[i] % x == y。 分析 其实裸的分块就能过了,跑的还特别快。 这里分块的作用就是排序。 在x较小时可以暴力打表,x较大时枚举显得更加高效。 code cpp include using n 阅读全文
posted @ 2017-05-01 10:43 ftae 阅读(182) 评论(0) 推荐(0)
摘要:"Maximum Subarray Sum" 题意 给你一个大小为N的数组和另外一个整数M。你的目标是找到每个子数组的和对M取余数的最大值。子数组是指原数组的任意连续元素的子集。 分析 "参考" 求出前缀和,问题变成了O(n n)复杂度的问题,但是仍然不能解决问题。 设prefix为前缀和,设i p 阅读全文
posted @ 2017-05-01 10:40 ftae 阅读(361) 评论(0) 推荐(0)
摘要:"hdu4638" 题意 给定一个序列,序列由1 N个元素全排列而成,求任意区间可组成的连续的段数,比如[1,2,4]两段{[1,2],[4]},[1,2,4,3]一段{[1,2,3,4]}。 对于查询的区间询问的是可组成的连续的数的段数最小值。 分析 分块排好序,O(1)的维护就是每新添加一个元素 阅读全文
posted @ 2017-05-01 10:38 ftae 阅读(219) 评论(0) 推荐(0)
摘要:"D. Powerful array" 题意 给定一个数列:a[i] (1 using namespace std; typedef long long ll; const int MAXN = 1e6 + 5; const int MAXT = 2e5 + 10; ll a[MAXN]; ll c 阅读全文
posted @ 2017-05-01 10:31 ftae 阅读(302) 评论(0) 推荐(0)
摘要:"参考blog" "参考论文" "参考论文" 题目 & 题解 裸2 SAT "poj3683" "poj3207" "poj3678" "poj3648" 2 SAT + 二分法 "poj2723" "poj2749" "hdu3622" "hdu3715" 一点总结 1. 寻找对立关系,一般是每回 阅读全文
posted @ 2017-05-01 10:26 ftae 阅读(775) 评论(0) 推荐(0)
摘要:"hdu3715" 题意 给出一个递归的伪代码,当 x[a[dep]] + x[b[dep]] != c[dep],就向下递归,给出a,b,c数组的值 问 dep 最大多少。其中 0 include include include include using namespace std; const 阅读全文
posted @ 2017-05-01 10:16 ftae 阅读(222) 评论(0) 推荐(0)
摘要:"hdu3622" 题意 每回合给定两个坐标点,可以选择一个放置炸弹,自己决定炸弹的半径,问 n 个回合后,使炸弹半径最小值最大。 分析 存在对立关系:每回合只能选择一个地方放置炸弹。i 表示 第一个位置 i + n 表示第二个位置。 当 i 、j 存在交点时,i j + n,j i + n 。 c 阅读全文
posted @ 2017-05-01 10:14 ftae 阅读(252) 评论(0) 推荐(0)
摘要:"poj2749" 题意 有 n 个农场,2个中转站,每个农场只能连接到一个中转站,2个农场可能不愿意连接到同一中转站,也可能只愿意连接到同一中转站,给出农场和中转站的坐标,求使得任意两个农场通过中转站连接的距离最大值最小,如果存在农场无法连接输出 1。 分析 对于农场 x, y 如果不愿意连接到同 阅读全文
posted @ 2017-05-01 10:10 ftae 阅读(341) 评论(0) 推荐(0)
摘要:"poj2723" 题意 m道门,每道门两把锁,有n对钥匙,对应2 n把锁,已知一对钥匙内取出一把另一把就会消失,求按顺序最多可开多少门 。 分析 任意一道门都是一个子句,两把锁A和B是OR的关系。即 二分最大可以开门的数量,判断可行性。 code cpp include include inclu 阅读全文
posted @ 2017-05-01 10:05 ftae 阅读(414) 评论(0) 推荐(0)
摘要:"poj3648" 题意 有一对新人结婚,n 1对夫妇去参加婚礼.有一个很长的座子,新娘与新郎坐在座子的两边(相反).接下来n 1对夫妇就坐,其中任何一对夫妇都不能坐在同一边,且(有一些人有奸情)这些有奸情的两个人不能同时坐在新娘对面.(只能分开做,或者都坐到新娘一边去)。对于每个输入实例,输出应该 阅读全文
posted @ 2017-05-01 10:02 ftae 阅读(255) 评论(0) 推荐(0)
摘要:"poj3678" 题意 某组合电路有N个输入,M个与(AND) 或(OR) 异或(XOR) 门将其两两相连构成多个输出,问是否存在满足给定输出的输入。 分析 建图,注意当 ( i && j) == 1 时,即要求 i 、j 都为真 ,此时连边 i‘ i , j’ j 。 (i || j) == 0 阅读全文
posted @ 2017-05-01 09:57 ftae 阅读(511) 评论(0) 推荐(0)
摘要:"poj3207" 题意 平面上,一个圆,圆的边上按顺时针放着n个点。现在要连m条边, 比如a,b,那么a到b可以从圆的内部连接,也可以从圆的外部连接。 给你的信息中,每个点最多只会连接的一条边。问能不能连接这m条边, 使这些边都不相交。 分析 建图 见代码, 2 SAT模板 code 阅读全文
posted @ 2017-05-01 09:54 ftae 阅读(388) 评论(0) 推荐(0)
摘要:"poj3683" 题意 n对新人举行婚礼,婚礼在不同时间段但可能重叠,婚礼有开始(Si)、结束(Ti)、仪式举行时间(Di),问能否给出一种举行方案,使得神父能参加所有的婚礼并举行仪式。 分析 xi为真 在开始时举行仪式, xj为假 在结束时举行仪式。 设x' 为 非x。(若 x 为真,则 x' 阅读全文
posted @ 2017-05-01 09:52 ftae 阅读(565) 评论(0) 推荐(0)
摘要:"poj2186" 题意 A B表示 A 认为 B是红人,且如果 B C,则 A C。问有几头牛被所有牛都认为是红人。 分析 如果A被所有牛认为是红人,那么A所在的强连通分量里的牛也被所有牛认为是红人。 至多只有一个强连通分量满足满足题目的条件。(否则这两个强连通分量合并,仍然是一个强连通分量) 按 阅读全文
posted @ 2017-05-01 09:43 ftae 阅读(200) 评论(0) 推荐(0)
摘要:sg 函数 "参考" 通俗易懂 "论文" 几类经典的博弈问题 1. 阶梯博弈: 只考虑奇数号楼梯Nim,若偶数楼梯只作容器,那么游戏变为Nim。 "题目" 2. 翻转硬币: 局面的SG值为局面中每个正面朝上的棋子单一存在时的SG值的异或和。 "题目" 3. Multi SG游戏: 对于一个单一游戏, 阅读全文
posted @ 2017-05-01 09:37 ftae 阅读(370) 评论(0) 推荐(0)
摘要:在图论中,由一个有向无环图的顶点组成的序列,当且仅当满足下列条件时,称为该图的一个拓扑排序(英语:Topological sorting)。 每个顶点出现且只出现一次; 若A在序列中排在B的前面,则在图中不存在从B到A的路径。 也可以定义为:拓扑排序是对有向无环图的顶点的一种排序,它使得如果存在一条 阅读全文
posted @ 2017-05-01 09:34 ftae 阅读(178) 评论(0) 推荐(0)
摘要:"hdu3308" 题意 更新单个点,对于询问的区间,求最长连续子序列的长度。 分析 区间合并模板题。 分析见代码。 code cpp include include include include include define lson l, m, rt 2 define rson m + 1, 阅读全文
posted @ 2017-05-01 09:28 ftae 阅读(614) 评论(0) 推荐(0)