PKUOJ
小胡同的诗
千里之行,始于足下
展开
-
POJ2248 Addition Chains(迭代加深搜索)
题目链接: poj2248 题目大意 给你一个数字n,你需要构造一个首项为1,末项为n的递增序列,并且这个序列的非首项的数字都能从它前面找到两项之和与之相等,前面的两项可以为同一项,即可重复,并且要让这个序列尽可能短,如果有多解输出其中一种序列解即可。(n<=100) 解题思路 朴素搜索 我们可以从第二项开始构造。因为已知第一项为1,所以通过前面的已知项生成的后续项一定能保证上述的『x[i]+x[j]=x[k]x[i] + x[j] = x[k]x[i]+x[j]=x[k]』的条件; 在生成后原创 2020-08-16 21:10:55 · 336 阅读 · 0 评论 -
POJ2299Ultra-QuickSort(树状数组+离散化)
题目链接:POJ2299 题目大意:给你n个数字,问这段序列类似于冒泡排序后至少需要几次交换。 解题思路:实际上就是求数列的逆序数,树状数组可以解决,由于数据规模大到达long long的规模,离散化一下。注意开的val要为long long! AC代码: #include &lt;cstdio&gt; #include &lt;cstring&gt; #include &lt;cstdlib&.原创 2019-02-17 23:19:00 · 143 阅读 · 0 评论 -
POJ3465A Simple Problem with Integers(树状数组--区间查询 区间修改)
题目链接:POJ3468 题目大意:给你一段长度为n得数字序列,并且有q次操作,这些操作可能是查询[l,r]的数字和或者是修改[l,r]之间的数字。每次做出相应操作,查询则输出结果。 解题思路:关于数字序列区间问题,可以用线段树,但要加个延迟标记(之后更新这种做法)。这里通过树状数组的性质,并且预处理树状数组(差分操作),使其能够区间更新。 关于区间修改的树状数组 这里树状数组我们用c[max...原创 2019-02-24 17:13:11 · 217 阅读 · 0 评论 -
POJ3468A Simple Problem with Integers(线段树--区间更新区间查询lazy_tag)
前言 树状数组解法:树状数组+区间更新区间查询 线段树对于区间更新区间查询的问题直接修改更新的函数即可,但每次更新时都把子区间一同更新这样其实是相对暴力的,因为更新完的区间我们可能一次都没有访问到!这里有个关于LazyTag的优化,其实就是让某个区间更新时,只更新其父区间,而对于其子区间我们打一个标记,其含义就是:这个区间的子区间还有更新的任务没做,等到以后的查询动用到它时再临时做(注意,这个标记...原创 2019-02-24 20:51:14 · 141 阅读 · 0 评论