08 2016 档案

POJ 3321 Apple Tree DFS序 + 树状数组
摘要:多次修改一棵树节点的值,或者询问当前这个节点的子树所有节点权值总和。 首先预处理出DFS序L[i]和R[i] 把问题转化为区间查询总和问题。单点修改,区间查询,树状数组即可。 注意修改的时候也要按照dfs序修改,因为你查询就是按照dfs查的,所以修改也要用dfs序修改 L[i]是唯一的。 #incl 阅读全文

posted @ 2016-08-31 23:43 stupid_one 阅读(178) 评论(0) 推荐(0) 编辑

HDU - 4366 Successor DFS序 + 分块暴力 or 线段树维护
摘要:给定一颗树,每个节点都有忠诚和能力两个参数,随意指定一个节点,要求在它的子树中找一个节点代替它,这个节点要满足能力值大于它,而且是忠诚度最高的那个。 首先,dfs一下,处理出L[i], R[i]表示dfs序,则R[i] - L[i] + 1 就是当前i这个节点拥有的子孙个数。 对于一颗树,dfs的时 阅读全文

posted @ 2016-08-31 23:35 stupid_one 阅读(243) 评论(0) 推荐(0) 编辑

Codeforces Round #172 (Div. 2) D. Maximum Xor Secondary 单调栈应用
摘要:http://codeforces.com/contest/281/problem/D 要求找出一个区间,使得区间内第一大的数和第二大的数异或值最大。 首先维护一个单调递减的栈,对于每个新元素a[i]。要么直接插入后面,如果它插入栈内的某个元素的话。就是说有数字弹出来了,这个时候这个数字和a[i]组 阅读全文

posted @ 2016-08-30 13:02 stupid_one 阅读(212) 评论(0) 推荐(0) 编辑

POJ 2796:Feel Good 单调栈
摘要:题目,给定一个数列,n <= 1e5 。要求找出一个区间,使得其内区间最小值 * 区间总和的值最大,要求输出区间。 首先先维护一个单调递增的栈,同时记录一个lef值表示:lef[i]表示当前栈内这个元素能匹配的最左值,什么意思呢?就是在最左边那里,它是最小的。a[lef[i] - 1] < a[le 阅读全文

posted @ 2016-08-30 10:45 stupid_one 阅读(203) 评论(0) 推荐(0) 编辑

POJ 2823 Sliding Window 单调队列
摘要:题意很明显,注意用C++提交,不然会超时。 说说我对单调队列的理解吧。 其实就是每次都在队头保留了ans。就是每次你想知道第i个位置的答案,每次取出队头元素就OK了。 然后就是怎么维护了。 例如要求最大值,那么,队头应该是一个最大值的。所以这个队列是单调递减的,每次插入a[i]的时候,维护它单调递减 阅读全文

posted @ 2016-08-29 19:56 stupid_one 阅读(167) 评论(0) 推荐(0) 编辑

URAL 2080 Wallet
摘要:找规律发现只要找到两个相同数字之间,有多少个不同的数字,即为答案。 可以用树状数组离线处理。 坑点是卡有很多张,没用完的情况,后面的卡直接放在哪里, 就是 10 5 1 2 3 4 5 这样 开始数据要输出到10 #include <cstdio> #include <cstdlib> #inclu 阅读全文

posted @ 2016-08-29 00:11 stupid_one 阅读(339) 评论(0) 推荐(0) 编辑

Gym 100971D Laying Cables 二分 || 单调栈
摘要:要求找出每个a[i],找到离他最近而且权值比它大的点,若距离相同,输出权利最大的那个 我的做法有点复杂,时间也要500+ms,因为只要时间花在了map上。 具体思路是模拟一颗树的建立过程,对于权值最大的那个,必须是-1,次大的那个,必须是pos_peo[mx];就是最大人口的节点id、 然后维护一个 阅读全文

posted @ 2016-08-28 20:34 stupid_one 阅读(324) 评论(0) 推荐(0) 编辑

Gym 100971B Derangement
摘要:要求改换序列,使得没有位置是a[i] == i成立。输出最小要换的步数 首先把a[i] == i的位置记录起来,然后两两互相换就可以了。 对于是奇数的情况,和它前一个换或者后一个换就可以,(注意前一个越界或者后一个越界) 这样是不会重复的,因为本来i是a[i] == i的话,换了一个,是不会使得他们 阅读全文

posted @ 2016-08-28 19:42 stupid_one 阅读(193) 评论(0) 推荐(0) 编辑

Gym 100886J Sockets 二分答案 + 贪心
摘要:Description standard input/outputStatements Valera has only one electrical socket in his flat. He also has m devices which require electricity to work 阅读全文

posted @ 2016-08-27 22:37 stupid_one 阅读(372) 评论(0) 推荐(0) 编辑

UVALive 5983 二分答案+dp
摘要:想了很久都想不出怎么dp,然后发现有些例子,如果你开始不确定起始值的话,是不能dp的,每种状态都有可能,所以只能二分一个答案,确定开始的val值,来dp了。 #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath 阅读全文

posted @ 2016-08-27 10:00 stupid_one 阅读(179) 评论(0) 推荐(0) 编辑

UVA 5986 - Wizarding Duel 超级脑洞题
摘要:给出n个人,每个人两两比赛一场,一共有C(n,2)场比赛,现在给出一个榜,问其是否合法。不合法的话,就改成合法,输出最小需要改的变化。 分数一定是C(n,2)的了, 不和法的情况,比如0,0,2,是不行的,因为如果第一个人没赢过,那么第二个人绝对有赢过,起码赢了1啊,所以这个是不合法的。那么怎么做呢 阅读全文

posted @ 2016-08-26 23:29 stupid_one 阅读(232) 评论(0) 推荐(0) 编辑

SPOJ 3267: DQUERY 树状数组,离线算法
摘要:给出q个询问,询问一段区间里面的不同元素的个数有多少个。 离线做,用树状数组。 设树状数组的意义是:1--pos这个段区间的不用元素的种类数。怎么做?就是add(pos,1);在这个位置中+1,就是说这个位置上元素种类+1。 然后先把询问按R递增的顺序排序。因为这里是最优的,我每次尽量往R靠,使得查 阅读全文

posted @ 2016-08-24 23:39 stupid_one 阅读(219) 评论(0) 推荐(0) 编辑

URAL 2078 Bowling game
摘要:阅读理解题,超级难懂 就是说一个人去打保龄球,有10个回合,然后每个回合是有2个球打的,叫我们算出能得的最低分和最高分。 我大概翻译下 好了,现在先求最小值,很容易,我每次都认为它是最后才打到a[i]个球的,那么值是最小的。也就是,它不是一个回合有两个球吗?你每次都认为它是第二个球打倒的,这样是最小 阅读全文

posted @ 2016-08-24 21:21 stupid_one 阅读(276) 评论(0) 推荐(0) 编辑

UVA - 12333 Revenge of Fibonacci 高精度加法 + 字典树
摘要:题目:给定一个长度为40的数字,问其是否在前100000项fibonacci数的前缀 因为是前缀,容易想到字典树,同时因为数字的长度只有40,所以我们只要把fib数的前40位加入字典树即可。这里主要讨论下怎么得到fib数的前40位。 首先,因为没可能每一项的fib都求出来的了。空间都存不下来。所以, 阅读全文

posted @ 2016-08-23 22:53 stupid_one 阅读(351) 评论(0) 推荐(0) 编辑

HDU 5773 The All-purpose Zero 脑洞LIS
摘要:给定一个序列,里面的0是可以任变的。问变化后最长的LIS的长度 首先,0全部选上是不亏的。这个不知道怎么说,YY一下吧。 最关键的就是解决2 0 0 3 这种问题了。 注意到这个序列的LIS应该是3 也就是你求LIS的时候,是不能包括0的,因为0是最后全部加上去的。这样你求到的LIS只能是1. 再来 阅读全文

posted @ 2016-08-22 22:08 stupid_one 阅读(164) 评论(0) 推荐(0) 编辑

Codeforces Round #368 (Div. 2) C. Pythagorean Triples 数学
摘要:给定一个直角三角形的一边长度。问是否存在一个直角三角形,使得它满足有一边的长度是x 当x=1、2的时候是无解的,可以暴力打表看看。 注意到,相邻的两个数的平方的差值是奇数 x^2 - (x-1)^2 = 2*x-1 间隔为2的两个数的平方的差值是偶数 (x+1)^2 - (x-1)^2 = 4*x 阅读全文

posted @ 2016-08-22 21:20 stupid_one 阅读(227) 评论(0) 推荐(0) 编辑

HDU 5775 L - Bubble Sort 树状数组
摘要:给定一段冒泡排序的代码,要求输出每个数字能到达的最右边的位置和最左边的位置的差 因为那段冒泡排序的代码是每次选取一个最小的数,放在左边的,所以,每个数最多能到达右边的位置应该是起始位置i+右边有多少个数比它大。 它能到达的最左的位置,可以这样考虑 1、它本来应该是排去起始位置的左边的,就是它本来是一 阅读全文

posted @ 2016-08-22 21:07 stupid_one 阅读(237) 评论(0) 推荐(0) 编辑

HDU 5763 Another Meaning dp+字符串hash || DP+KMP
摘要:题意:给定一个句子str,和一个单词sub,这个单词sub可以翻译成两种不同的意思,问这个句子一共能翻译成多少种不能的意思 例如:str:hehehe sub:hehe 那么,有**he、he**、和hehehe三种不同的意思, 考虑一下aaadaaa这种情况?sub:aa 前面的aaa有三种,后面 阅读全文

posted @ 2016-08-22 19:22 stupid_one 阅读(208) 评论(0) 推荐(0) 编辑

UVA - 1595 Symmetry
摘要:题目:给定n个点,问是否存在一条垂直的对称轴 如果存在的话,那么必定是平分最右和最左的点。那么对称轴的方程可以写出来。输入的时候,可以坐标都乘以2来排除对称轴是小数的情况。 然后枚举点还判断即可。可以用个set来保存点。 #include <cstdio> #include <cstdlib> #i 阅读全文

posted @ 2016-08-20 00:53 stupid_one 阅读(352) 评论(0) 推荐(0) 编辑

uva 10391 Compound Words
摘要:题目:给定一个单词本,要求找出其中的单词,是单词本中某两个单词合并起来得。 思路。先把单词本用字典树保存,然后枚举没个单词的切点,把一个单词分成两部分,去字典树中找即可。 #include <cstdio> #include <cstdlib> #include <cstring> #include 阅读全文

posted @ 2016-08-20 00:00 stupid_one 阅读(184) 评论(0) 推荐(0) 编辑

uva 10763 Foreign Exchange
摘要:给定n对信息,是1-->2有一对交换生,能交换的条件是2-->1也有一对交换生,问能否顺利交换。 思路:用有向图模拟,如果1-->2有一对,那么就优先判断2-->1有没人交换,有的话,就不用加边了,直接标记那条边用了即可。 #include <cstdio> #include <cstdlib> # 阅读全文

posted @ 2016-08-19 23:20 stupid_one 阅读(142) 评论(0) 推荐(0) 编辑

HDU 5734 A - Acperience
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5734 Problem Description Deep neural networks (DNN) have shown significant improvements in several applicati 阅读全文

posted @ 2016-08-19 21:24 stupid_one 阅读(282) 评论(0) 推荐(0) 编辑

UVALive 7511 L - Multiplication Table 数学模拟题,暴力
摘要:给定一副表,问其是否合法。 思路:当全部是?的时候,是合法的。 如果不是,那么,就找到一个数字,把它拆成若干个a*b的形式,去判断其它点是否合法即可。 拆分数字的时候,只需要枚举到sqrt(n),因为肯定是两个小于sqrt n的数相乘得到的结果。 比如6=1*6 6=2*3 注意分解后,考虑调换顺序 阅读全文

posted @ 2016-08-19 19:22 stupid_one 阅读(593) 评论(0) 推荐(0) 编辑

UVALive 7500 Boxes and Balls 2015EC final 签到题 二分
摘要:分析题目后,得到要求的是最接近n的一个数,并且这个数字能写成1+2+3+....+x = ans这种形式。 要求的是最大的值。 这题就直接二分去做吧。二分出一个f(mid)<=n的最大值。 最后的end就是所求的f(end) 为什么呢?,我来分析下我这个二分是怎么实现的 当f(mid)<n的时候 b 阅读全文

posted @ 2016-08-18 21:10 stupid_one 阅读(456) 评论(0) 推荐(0) 编辑

FZU Problem 2238 Daxia & Wzc's problem
摘要:Daxia在2016年5月期间去瑞士度蜜月,顺便拜访了Wzc,Wzc给他出了一个问题: Wzc给Daxia等差数列A(0),告诉Daxia首项a和公差d; 首先让Daxia求出数列A(0)前n项和,得到新数列A(1); 然后让Daxia求出数列A(1)前n项和,得到新数列A(2); 接着让Daxia 阅读全文

posted @ 2016-08-18 20:28 stupid_one 阅读(241) 评论(0) 推荐(0) 编辑

FZU Problem 2244 Daxia want to buy house
摘要:模拟题,注意: 1、那两个贷款都是向银行贷的,就是两个贷款的总额不能超过70%,就算公积金贷款能贷也不行,我开始的时候以为公积金贷款是向公司借的,,欺负我这些小白嘛.... 2、最坑的地方 *0.7是wa的,要*7/10 3、那个公式的-1不是减在月份上的,是减在总体上的 #include <cst 阅读全文

posted @ 2016-08-18 19:24 stupid_one 阅读(157) 评论(0) 推荐(0) 编辑

HDU 5785 Interesting manacher + 延迟标记
摘要:题意:给你一个串,若里面有两个相邻的没有交集的回文串的话,设为S[i...j] 和 S[j+1...k],对答案的贡献是i*k,就是左端点的值乘上右端点的值。 首先,如果s[x1....j]、s[x2....j]、s[x3....j]....s[xn....j]、是回文串,而且s[j+1...y1] 阅读全文

posted @ 2016-08-17 22:29 stupid_one 阅读(184) 评论(0) 推荐(0) 编辑

HDU 5792 L - World is Exploding 。容斥原理 + 树状数组 + 离散化
摘要:题目,要求找出有多少对这样的东西,四个数,并且满足num[a]<num[b] &&num[c]>num[d] 要做这题,首先要懂得用树状数组,我设,下面的小于和大于都是严格的小于和大于 dpL_min[i]:表示在第i个数往左,(不包括第i个),有多少个数是少于num[i]的 dpL_max[i]: 阅读全文

posted @ 2016-08-17 01:05 stupid_one 阅读(223) 评论(0) 推荐(0) 编辑

POJ 1410 Intersection 数据错误
摘要:题目要求判断一条线段和一个矩形是否相交,或者是否在矩形里面(题目好像没说?) 思路就是直接暴力判断和矩形四条边是否相交,和线段的坐标是否在矩形的坐标范围即可。 然后题目的数据,(xleft,ytop) 和 (xright,ybottom)不是按顺序给出的,需要自己判断下顺序。 #include <c 阅读全文

posted @ 2016-08-15 20:30 stupid_one 阅读(248) 评论(0) 推荐(0) 编辑

【hihocoder】1237 : Farthest Point 微软2016校招在线笔试题
摘要:题目:给定一个圆,要你求出一个在里面或者在边上的整数点,使得这个点到原点的距离最大,如果有多个相同,输出x最大,再输出y最大。 思路:对于一个圆,里面整点个数的x是能确定的。你找到x的上下界就可以了。就是mix = ceil(x0-r)//因为是小的值,所以要向上取整。mxx=floor(x0+r) 阅读全文

posted @ 2016-08-14 09:58 stupid_one 阅读(297) 评论(0) 推荐(0) 编辑

POJ 1061青蛙的约会。求解(x+mT)%L=(y+nT)%L的最小步数T。
摘要:因为是同余,所以就是(x+mT)%L-(y+nT)%L=0。可以写成(x-y+(m-n)T)%L=0。就是这个数是L的倍数啦。那么我可以这样x-y+(m-n)T + Ls = 0。就可以了,s可正可负,就能满足条件。 #include <cstdio> #include <cstdlib> #inc 阅读全文

posted @ 2016-08-13 21:58 stupid_one 阅读(318) 评论(0) 推荐(0) 编辑

Gym 100633G Nano alarm-clocks
摘要:题目,给定n个时钟,要求把他们调成一样的时间。求最小的步数 思路:肯定是有一个时钟作为标准的啦,要找到这个时钟,怎么找呢?没其他方便的方法,暴力枚举。那么枚举后,怎么能快速地算到其他时钟转到这个时钟的时间呢?首先,如果我们把时间转换成数字,那应该好做点。现在问题是给定n个数,枚举最小的步数,使得n个 阅读全文

posted @ 2016-08-12 21:30 stupid_one 阅读(341) 评论(0) 推荐(0) 编辑

Gym 101047M Removing coins in Kem Kadrãn
摘要:给定一个序列,只能拿走D,隔壁的会翻转,问能否全部拿走。 注意到如果能拿走的话,拿D的顺序是没关系的。模拟即可 #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <algorithm> 阅读全文

posted @ 2016-08-11 22:36 stupid_one 阅读(195) 评论(0) 推荐(0) 编辑

Gym 101047K Training with Phuket's larvae
摘要:http://codeforces.com/gym/101047/problem/K 题目:给定n<=2000条绳子,要你找出其中三条,围成三角形,并且要使得围成的三角形面积最小 思路: 考虑一下三角形面积公式1/2a*b*sinO ,那么可以暴力枚举两条边,第三条边要尽量小,为什么呢?因为我要使得 阅读全文

posted @ 2016-08-11 21:18 stupid_one 阅读(254) 评论(0) 推荐(0) 编辑

POJ 1556 E - The Doors
摘要:题意:给定n堵墙,现在要你从(0,5)走去(10,5)的最短距离 思路:刚开始还想模拟,就是从(0,5)走,每次x向右一格,然后判断有没和线段相交就可以。但是它的们有可能是小数形式给出的,这样就GG了(x--x+1中可能存在很多门)。正确的方法应该是建图,对于所有门,他们都有端点的,先把他们加入到图 阅读全文

posted @ 2016-08-11 10:16 stupid_one 阅读(198) 评论(0) 推荐(0) 编辑

POJ 3304 Segments 判断直线和线段相交
摘要:POJ 3304 Segments 题意:给定n(n<=100)条线段,问你是否存在这样的一条直线,使得所有线段投影下去后,至少都有一个交点。 思路:对于投影在所求直线上面的相交阴影,我们可以在那里作一条线,那么这条线就和所有线段都至少有一个交点,所以如果有一条直线和所有线段都有交点的话,那么就一定 阅读全文

posted @ 2016-08-10 23:26 stupid_one 阅读(238) 评论(0) 推荐(0) 编辑

POJ 2318 TOYS 利用叉积判断点在线段的那一侧
摘要:题意:给定n(<=5000)条线段,把一个矩阵分成了n+1分了,有m个玩具,放在为位置是(x,y)。现在要问第几个位置上有多少个玩具。 思路:叉积,线段p1p2,记玩具为p0,那么如果(p1p2 ^ p1p0) (记得不能搞反顺序,不同的),如果他们的叉积是小于0,那么就是在线段的左边,否则右边。所 阅读全文

posted @ 2016-08-10 21:01 stupid_one 阅读(272) 评论(0) 推荐(0) 编辑

Gym 101055A 计算几何,暴力
摘要:http://codeforces.com/gym/101055/problem/A 题目:给定一些三维空间的点,要你找一个平面,能覆盖尽量多的点,只要求输出点数即可。n<=50 因为数据量小,我们考虑暴力。 首先,三个不在同一条直线的点,确定一个平面,然后枚举其他的点。判断一下,这样的复杂度是n^ 阅读全文

posted @ 2016-08-10 00:19 stupid_one 阅读(196) 评论(0) 推荐(0) 编辑

CSU 1453: 平衡序列 学会线段树后必做
摘要:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1453、 题目:给定一个大小为100000的数组,里面的数字最大也是100000。现在叫你求出一段子序列,使得他们任意两个数差的绝对值都不能超过k 其实这题的关键是数字的范围,不超过100000,这样 阅读全文

posted @ 2016-08-09 20:12 stupid_one 阅读(358) 评论(0) 推荐(0) 编辑

HDU 5105 Math Problem
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5105 题意就是给出一条三次函数,f(x)=|a*x^3+b*x^2+c+d|。和给定一个区间[L,R],问你这个函数在这个区间里面的最大值。 刚开始做的时候,想到是三分答案的,不久前做个一题二次函数的,固定一个点 阅读全文

posted @ 2016-08-09 18:31 stupid_one 阅读(252) 评论(0) 推荐(0) 编辑

【流泪贴】教训贴~自己太渣了
摘要:不行啊不行啊,暑假训练发现自己太渣了。比同级的人拉开了一定的距离,这个距离我自己看到了(很恐怖,头一次看到自己和别人的实力差距,深有感触)。真的不是开玩笑,以后做题要写个题解发个博客了。因为以前自己是写在笔记本的,但是发现题目做得多不合适,加上自己也写了个模板,所以就没写题解。现在过题都是过了就算, 阅读全文

posted @ 2016-08-09 01:27 stupid_one 阅读(202) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

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