思想
Wang_SF2015
这个作者很懒,什么都没留下…
展开
-
文章标题 UVALive 7045:Last Defence(辗转相除思想)
Last DefenceGiven two integers A and B. Sequence S is defined as follow: • S0 = A • S1 = B • Si = |Si−1 −Si−2| for i ≥ 2 Count the number of distinct numbers in S. Input The first line of the input giv原创 2016-09-11 20:53:20 · 582 阅读 · 0 评论 -
文章标题 CSU 1817 : Bones’s Battery(Floyd+二分)
1817: Bones’s Battery1817: Bones’s Battery 题意:有n个点m每条边的无向带权图,从点ui到vi需要花费电量di,要求对任一起点s到终点e,都能通过充电并且充电的次数不超过k次(在任何一个点都可以充满电)互相到达,问电池的容量最小是多少。 分析:这是我遇到的第一道二分答案,所以一开始不知道怎么做,看了标程后恍然大悟。。 首先,已经明确二分答案了,原创 2017-03-30 00:12:35 · 353 阅读 · 0 评论 -
文章标题 CSU 1913 (线段树+二分答案)
CSU 1913题目 链接题意:中文题 分析:首先由于只关心最后的结果,所以op2相当于简单的撤销之前的p个op1的操作,用一个栈模拟一下即可,这样我们就能得到一个只有 op1的操作序列。 再对于保存下的只有 op1 的操作序列,对答案二分,设为 ans 。将数组中大于 ans 的数设为1,小于等于 ans 的数设为0,存到线段树中,然后每个操作 [l,r] 就变成了如下步骤原创 2017-05-31 19:57:04 · 516 阅读 · 0 评论 -
文章标题 CSU 1849: Comparing answers(矩阵降维+随机化思想)
1849: Comparing answers这里写链接内容 题意:题意是有矩阵A,B,然后判断A*A ?= B ,直接做O(n*n*n) 分析:矩阵降维 A*A*C ?= B*C, C 是一维向量 运算顺序为 A*(A*C) 时间复杂度为O(N*N) 代码:#include<iostream> #include<string> #include<cstdio> #include<cst原创 2017-06-03 16:53:59 · 356 阅读 · 0 评论 -
文章标题 POJ 3281 : Dining (最大流+巧妙建图)
题目链接 题意:有N只牛,每只牛有自己喜欢的食物和饮料,现在有F种食物和D种饮料,然后每一种饮料和每一种食物只能由一只牛享用,然后要我们求,怎么分配这些食物和饮料,使得尽可能多的牛能同时得到一种饮料和一种食物。 分析:巧妙的建图方式,把食物和饮料放在两端。一头牛拆分成两个点,两点之间的容量为1.喜欢的食物和饮料跟牛建条边,容量为1. 加个源点和汇点。源点与食物、饮料和汇点的边容量都是1,表示每原创 2017-08-16 15:32:53 · 286 阅读 · 0 评论 -
文章标题 HDU 2489 : Minimal Ratio Tree (最小生成树+状态压缩二进制思想)
Minimal Ratio TreeFor a tree, which nodes and edges are all weighted, the ratio of it is calculated according to the following equation. Given a complete graph of n nodes with all nodes and edges weigh原创 2017-07-28 09:51:09 · 409 阅读 · 0 评论 -
文章标题 HDU 6166 : Senior Pan(二进制+dijkstra)
Senior Pan题目链接 题意:有n个点,m条边的有向图,然后从中拿出k个点,然后要我们求出这k个点中距离最短的两个点。 分析:巧妙的用了二进制的思想,对于一个点上的一个二进制位,我们可以知道,不是1就是0,那么我们就可以通过判断这个二进制位是否是1来将这k个点的分成两个集合,由于n的大小只有1e5,所以最多只需要枚举20个二进制为, 然后就是当把k个点分成两个集合后,就是求两个集合之间的最原创 2017-08-23 09:53:11 · 397 阅读 · 0 评论