08 2017 档案
摘要:题目链接:http://lightoj.com/login_main.php?url=volume_showproblem.php?problem=1370 题目大意:给N个数a[i], N <= 1e6,问使 Φ(x) >= a[i] 成立的最小x的所有x的和是多少。 解题思路:我们知道的是对于素
阅读全文
摘要:题目链接:http://www.spoj.com/problems/NDIV/ 题目大意:求a~b(包括a,b)区间内有多少个数的因子恰好有K个。1 <= a, b <=10^9 0 <= b - a <= 10^4 1 <= n <= 100 解题思路:筛法的一个非常巧妙的运用。当我们考虑数x的因
阅读全文
摘要:题目链接:http://www.spoj.com/problems/ETF/ 题目大意:求欧拉函数值(Wiki Euler's totient function). 解题思路:参考置顶模板中的筛法求欧拉函数值方法(紫书上的。。。)。 代码: 题目: ETF - Euler Totient Funct
阅读全文
摘要:题目链接:http://www.spoj.com/problems/DIVSUM/ 题目大意:问N的除自己外所有因数的和。例如250 是 218(1 + 2 + 5 + 10 + 25+ 50 +125). 解题思路:采用类似埃氏筛的方法。 不知道暴力能不能过。。。 代码: 题目: DIVSUM -
阅读全文
摘要:头文件: 如果有代码长度要求的话可能需要删除一些。 过多无用头文件会增加编译时间。 PI可能在不同编译环境下有冲突,math.h中定义了M_PI,但实际使用时多数OJ会报CE。
阅读全文
摘要:题目链接:http://www.spoj.com/problems/FRQPRIME/ 题目大意:询问[2,N]区间内的包含素数个数至少为K的区间的个数。 解题思路:素数个数前缀和+二分。哪儿位大侠有好方法的话希望在评论区说明。 代码: 题目: FRQPRIME - Frequent Prime R
阅读全文
摘要:题目链接:http://www.spoj.com/problems/FUNPROB/ 题目大意:N+M个人排队买票,N个人手里有10元,M个人手里有5元,票价5元。但售票厅没有零钱了。问其能正常售票的概率(即不会出现10元买票但没零钱找)。 解题思路:参考:http://stackoverflow.
阅读全文
摘要:题目链接:http://www.spoj.com/problems/HAMSTER1/ 题目大意:理想情况下斜抛运动初速度V0,自由落体加速度g = 10m/s,最大高度H,水平距离X,给定K1,K2问K1 * X + K2 * H最大值。 解题思路:化简+辅助角公式直接计算得到结果就行。。话说ta
阅读全文
摘要:题目链接:http://www.spoj.com/problems/FIBPOL/ 题目大意:F(n) 为斐波那契数列,现规定A(x) = Sn(Xn*F(n)) ,即A(n)为数列Xn*F(n)的前N项和,给定A(x)的值,问此时其对应X是否为一个有理数。 解题思路:首先我们可以计算出来一部分X对
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6168 题目大意:将a[i] + a[j] n >= j > i >= 1的结果放在b数组中。现在将a,b的数据混在一块,请将原始的a数据顺序输出,题目保证有且仅有一组解,并且a数组是非递减的。 解题思路
阅读全文
摘要:题目链接:http://www.spoj.com/problems/HG/ 题目大意:分别给N个和M个小于等于1e9的数,前N个数相乘为A,后M个数相乘为B,问你GCD(A, B) 1<= N<= 1000,1 <=M <= 1000 解题思路:枚举a[i] 和b[i],计算两者GCD,然后结果乘以
阅读全文
摘要:题目链接:http://www.spoj.com/problems/BLAMOEBA/ 题目大意:有一种叫做阿米巴的虫子一天能分裂成M个虫子。现有X个这种虫子,从第一天开始进行分裂,每次分裂之后就取走Y个,问如果要第N天取走之后不再有虫子剩余,并且X尽可能小,那么X和Y应该为多少。2 < M < 1
阅读全文
摘要:题目链接:http://www.spoj.com/problems/DIVISION/ 题目大意:求0~2n-1 中有多少个数字能被3整除(包括0 和2n-1)。 n <= 2e18, 答案对 mod = 1e9 + 7取余。 解题思路:通过分析可以发现个数是 (2n / 3 + 1) % mod
阅读全文
摘要:一些常用的简单数论模板以及书中的定理 组合数取模 1:N M < 1000, 杨辉三角双循环,边加边取模(代码未添加取模) 2. C(n, k) = C(n, k - 1) * (n - k + 1) / k,对2~maxn的逆元打表后,利用这个公式可以O(n)时间内求出C(n, k) GCD求最大
阅读全文
摘要:题目链接:·http://www.spoj.com/problems/DCEPCA03/ 题目大意:欧拉函数为totient(n),请你计算 H=0;For (i=1; i<=n; i++) { For (j=1; j<=n; j++) { H = H + totient(i) * totient(
阅读全文
摘要:题目链接:http://www.spoj.com/problems/FACVSPOW/ 题目大意:给定底数a,问什么时候n! 超过 an. 1 <= t <= 100000 2 <= a <= 106 解题思路:等价于计算 使1*2*3*4*5*...*k / ak > 1 的 k。直接计算必然溢出
阅读全文
摘要:题目链接:http://www.spoj.com/problems/GOO/ 题目大意:求n个二进制为能够组成多少个数以及组成这些数需要多少个1. 例如3位可以组成 100 101 110 111 这四个数,共需要8个数字。 解题思路:很简单的一道题,但是一定要注意溢出!!! 1 << x 如果超出
阅读全文
摘要:题目链接:http://www.spoj.com/problems/CZ_PROB1/ 题目大意:Sp2 是所有素数中能够被分解为两个数的平方和的素数的集合。P(a,b)指的是在a的划分中,最大元素不超过b的划分的个数(就是那个经典整数划分动态规划题)。给你个n,k,问P(sp2[n],k)是多少。
阅读全文
摘要:题目链接:http://arc081.contest.atcoder.jp/tasks/arc081_c 题目大意:给你一个字符串,问不是这个字符串的最短字典序最小子序列是什么。如果一个字符串t是字符串s的子串,那么t可以由s通过删除0个或多个字符得到。 解题思路:我们先来确定字符串的长度,然后再通
阅读全文
摘要:题目链接:http://www.spoj.com/problems/FANCY/ 题目大意:如果一串数字为555,那么我们可以将其写为(5,5,5) (5,55) (55,5) (555)。现在给你一串数字,问它能有几种不同的写出方式。 解题思路:首先应该是无论有几个连续的都算作一种读出方式(题目上
阅读全文
摘要:题目链接:http://www.spoj.com/problems/DCEPC11B/ 题目大意:求N!对P取余的结果。P是素数,并且abs(N-P)<=1000。 解题思路:wiki-费马小定理: Fermat's little theorem states that if p is a prim
阅读全文
摘要:题目链接:http://www.spoj.com/problems/CRAN02/ 题目大意:N个数字组成的序列,和为0的连续子序列的个数。N<1e6 解题思路:计算前缀和,统计每个数字出现的次数,那么对于数字sum[i], 如果存在k个sum[i],则代表有C(k, 2)个序列和为0,而如果sum
阅读全文
摘要:题目链接:http://www.spoj.com/problems/FCTRL/ 题目大意:询问N的阶乘的结果尾数有几个0. 解题思路:考虑问题:N的阶乘的结果能被2m整除,这个m最大为多少。 我们对前N个数除以2,忽略奇数,会得到N/2个数字。那么相当于我们得到了2N/2 对之后的N/2个数字继续
阅读全文
摘要:题目链接:http://www.spoj.com/problems/BALLSUM/ 题目大意:问从N个数中选两个数和小于等于K的概率值,用分数表示。 解题思路:假设要选择小于等于5的数字,那么可选项有(1,4) (1,3) (1,2) (2,3),可以发现实际上是k-2 + k-4 +...当该项
阅读全文
摘要:题目链接:http://www.spoj.com/problems/ATOMS/ 题目大意:有N个原子,他们每秒分裂成K个新原子,新原子也能继续分裂。问如果要控制他的数量为M以内,应在什么时候使其停止分裂。其实时间为0. 解题思路:可以发现其实就是一个求log的公式,只不过需要注意M小于N的情况。
阅读全文
摘要:题目链接:http://www.spoj.com/problems/AMR11E/ 题目大意:Lucky Number指的是有至少三个不同素数相乘得到数。问1000以内的素因子。 解题思路:可以发现1000以内的满足条件的数字非常多,因此直接筛选打表,查看每个数的不同素因子个数,如果超过三个就满足条
阅读全文
摘要:题目链接:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=2177 题目大意:n个球放入n个箱子中,每个箱子放一个。每个球都是独一无二的,问方案数能被最大2的几次方整除。 解题思路:很明显方案数目就是n!,而所求的实际上是2~n中每个数的中有几个2.
阅读全文
摘要:题目链接:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=2180 题目大意:求数列 k0,k1,k2...kn的和,即等比数列的前n项和对1e9+7取余的结果。 解题思路:等比数列前N项和为 ,因此只要能够取余即可求得结果。利用扩展GCD求q-1关
阅读全文
摘要:题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2629 题目大意:菲波那切数列求f(ab) % n,其中 a,b < 264 ,n < 1001
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2859 题目大意:求一个矩阵的按反对角线对称的子矩阵的行最大值。 解题思路:dp[i][j]:=以(i,j)为左下角起点的满足条件的矩阵的行最大值,那么将第一行和最后一列初始化为1之后从第0行第n-1列倒
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1078 题目大意:在一个N*N的网格中每个网格都有一些奶酪,小明从(0,0)出发拿奶酪吃。但是小明只能往比当前网格中奶酪量多的网格走,并且小明一次最多可以一下子走k不。问小明能拿到多少奶酪吃? 解题思路:
阅读全文
摘要:题目链接:https://csacademy.com/contest/archive/task/sorting-steps 题目大意:求冒泡排序的总趟数。一趟冒泡排序能够将最大的数字交换到序列尾部。详见题目描述。 解题思路:这个题最主要的一方面就是要能够观察到,每一趟之后对于位置i的数字a[i]会与
阅读全文
摘要:题目链接:https://csacademy.com/contest/archive/task/prefix-matches/ 题目大意:给出字符串S,现在规定数列Ai为S中从i开始的字符串的前缀的最大长度,并且该前缀也出现在S的前缀中;数列Bi为S中以i为结尾的字符串的前缀最大长度,该前缀至少从i
阅读全文
摘要:题目链接:http://poj.org/problem?id=3186 题目大意:给你N个数字,排列方式已经确定。现在你取数字,每次只能从头部或者尾部取一个数字,第k次取那么这个数字就乘以k,最后所得价值为N次总和。问能得到的最大值是多少? 解题思路:乍一看似乎是贪心,但是考虑 11 2 30 10
阅读全文
摘要:题目链接:http://poj.org/problem?id=3616 题目大意:M个区间,每个区间一个对应一个效率值-多少升牛奶,区间可能重复,现要求取出来一些区间,要求是区间间隔不能小于R,问所能得到的牛奶量的最大值。 解题思路:决策:当前区间用或者不用。区间个数M≤1000,因此直接双循环递推
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/489/C 题目大意:给定位数和各个位的和,问满足条件数字的最大值,最小值。 解题思路:模拟即可。主要是细节判断。 代码: 题目: C. Given Length and Sum of Digits... t
阅读全文
摘要:题目链接:http://poj.org/problem?id=1661 题目大意:Jimmy在玩是男人就下完一百层。每层的板子有三个坐标X1, X2, H,分别是左端点坐标,右端点坐标和高度。Jimmy初始在横坐标X,高度Y处,并且自带最高H米摔不死属性。在一块板子上Jimmy可以从左端点下降或者右
阅读全文
摘要:题目链接:http://poj.org/problem?id=3104 题目大意:有N件衣服需要晒干,但是晒干的话是一秒蒸发一滴水,而你买个了烘干机,一秒钟可以烘干K滴水。现在给你衣服里面的含水量ai滴水以及K问最少多长时间能干。烘干机一秒只能放一件衣服。 解题思路:二分时间+check。主要问题在
阅读全文
摘要:题目链接:http://acm.fzu.edu.cn/problem.php?pid=2214 题目大意:背包大小为B,问能装下的最大价值。1 <= B, w[i] <= 1000000000 解题思路:由于背包大小太大,因此无法按照重量选择,可以按照价值选择。 dp[i][j]:=前i个物品选价值
阅读全文
摘要:题目链接 :http://abc070.contest.atcoder.jp/tasks/abc070_d 题目大意:给一棵树,一个节点K和Q次询问x,y,问x倒y经过节点k的距离。 解题思路:以K为根深搜标记距离即可。 加边的时候加两条边!!! 数组大小开两倍!!! 爆int用ll!!! 代码:
阅读全文
摘要:题目链接:http://poj.org/problem?id=3903 题目大意:LIS的nlog(n)写法。 解题思路:dp[i]:=长度为i的最长递增子序列的末尾元素最小值。那么由于dp[i]形成了一个有序的序列,所以可以采用二分的办法。 dp[j] = a[i] dp[j] <= a[j] <
阅读全文
摘要:题目链接:http://poj.org/problem?id=2533 题目大意:求最长递增子序列。。。 解题思路:dp[i] = dp[j] + 1 a[i] > a[j] && dp[j] + 1 > dp[i] 注意初始化为1! 代码: 题目: Longest Ordered Subseque
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1260 题目大意:小名早上八点整在电影业卖票,来了N个人买票。小明可以一次卖一张,也可以一次卖两张,但时间可能不同。现在给出N个人一次买一张票的时间以及i和i+1一次买票需要的时间,问最早小明什么时候能给
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114 题目大意:完全背包问题,不过这次是求的最小值。 解题思路:首先是初始化问题,其次就是状态转移的时候,如果使用二维数组,那么应当是: dp[i][j] = dp[i - 1][j] j < w[i]
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1176 题目大意:小明每秒种只有在移动不超过一米的范围内接住坠落的馅饼。小径如图标上坐标: 在接下来的一段时间里,馅饼都掉落在0-10这11个位置。开始时小明站在5这个位置,因此在第一秒,他只能接到4,5
阅读全文
摘要:题目链接:http://poj.org/problem?id=1458 题目大意:最长公共子序列,不知道的话回去看书吧。。。算了, 就是他们共有的长度最大的子序列,可以是不连续的。问最大长度。 解题思路:dp[i][j]:=串A的前i个字符和串B的前j个字符的最长公共子序列长度 if(a[i] ==
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1087 题目大意:N个数字组成的一条路,每个数字是一个节点顺序连接,起点在第一个数之前,终点在第N个数之后。现让你选择一条路从起点跳到终点,只能往前且跳到比当前点大的那个点,可以认为终点是最大的,可以从起
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1074 题目大意:小明打完比赛回来补作业,N个作业每个作业有 名字,截止日期,完成所需时间 三个属性,如果完成时间>截止日期,就会被扣分,多一天扣一分。现在你帮他安排做作业计划。N < 15 解题思路:其
阅读全文
摘要:题目链接:http://codeforces.com/contest/454/problem/D 题目大意:给你n个数字a1~an,要你找n个数字b1~bn满足Σ|ai - bi|最小,并且b1~bn这n个数互质,输出这组数。1 ≤ ai ≤ 30 1 ≤ n ≤ 100 解题思路:n个数互质即说明
阅读全文
摘要:题目链接:https://csacademy.com/contest/archive/task/restricted-permutations 题目大意:求在约束条件下1~N的全排列的个数。约束:0, 1表示的n - 1个数,1表示第i个数一定要放到第i+1个数的前面,0反之。 解题思路:我也是看的
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6119 题目大意:给出N个区间,区间可能存在交叉,在这N个区间内的每个点都标记为1,不在区间内的每个点标记为0。现给出M次机会把为0的点标记为1,问能得到的最长的连续1的长度是多少。 解题思路:离散化之后
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6113 题目大意:识别有字符组成的图像是否是0或1; 图像0的定义:存在1字符且1字符只能是由一个连通块组成,存在且仅存在一个由0字符组成的连通块完全被1所包围。图像1的定义:存在1字符且1字符只能是由一
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6112 题目大意:给你一个合法的年月日,问下次同样是这个月日,星期一样的最早是哪年? 题目保证不超过四位数。 解题思路:讲道理真的需要吗? 过一年+365天,如果是闰年+366天,对7取余为0了就OK了。
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069 题目大意:给出n种方块的长宽高,每种方块无限多个,问你他们摞起来能达到的最大高度。每个方块都可以旋转,旋转的时候对应长宽高也改变,但是放的时候要求上面的长和宽必须小于下面的。 解题思路:类似最长上
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1024 题目大意:n个数分成两两不相交的m段,求使这m段和的最大值。 解题思路:比较坑的点:n2 能过;long long超时,int AC。 dp[i][j]:= 在选择第i个数的情况下前i个数分成j段
阅读全文
摘要:题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2671 题目大意:迷宫里有几个地方失火了,小J要赶快出去,出口就是迷宫的没有障碍物的边界地方,但
阅读全文
摘要:题目链接:http://acm.fzu.edu.cn/problem.php?pid=2150 题目大意:小明小红要在一块网格状土地上玩火。土地上有的地方是草块,有的地方是空地。草地会被相邻格子的火引燃,土地不会。小明小红想要让所有有草的格子都燃烧,并且它俩各自点着了一块草地(可能一样)。问是否能够
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1495 题目大意:给你三个瓶子,第一个瓶子容量S,装满了S单位的可乐。另外两个瓶子容量等于第一个。三个瓶子都无刻度。给出三个瓶子容量,问能否将第一个瓶子装S/2的可乐,其余两个瓶子无所谓,中途不能喝可乐。
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2612 题目大意:Y,M往@走,问走到最近的@耗时多少。上下左右移动,移动一次11分钟。 解题思路:上来直接枚举@宽搜到Y,M距离记录最小值果断wa,果然搜索还是太耗时了。宽搜两次记录Y到每个@的距离和M
阅读全文
摘要:题目链接:http://poj.org/problem?id=3279 题目大意:有一个N*M的网格,有些格子是黑色的,其余的是白色的。反转一个黑格子或白格子会连同其相连(共享边)的格子一同反转。现要求全部反转成白色的,问每个格子的反转次数为多少。 解题思路:之前应该是看过题解但是没写。。。。假设我
阅读全文
摘要:题目链接:http://poj.org/problem?id=3278 题目大意:约翰在点N,牛在K,约翰抓牛,约翰一秒走到N+1,N-1或N*2,问多长时间抓到牛。 解题思路:因为让我加深了对DP的看法所以写的。由于可以向前,向后以及翻跟头走二倍,因此会出现跳到后面再回到前面的情况,那么这就不符合
阅读全文
摘要:题目链接:https://csacademy.com/contest/archive/task/bfs-dfs/ 题目大意:给出一个无向图的BFS顺序以及DFS顺序,问原图的邻接表。 解题思路:如果bfs第二个和dfs第二个点不一样则输出-1,否则按照dfs顺序连边,按照bfs给每个点从1连一条边,
阅读全文
摘要:题目链接:https://csacademy.com/contest/archive/task/tennis-tournament 题目大意:N个人在比赛,每个人编号1到N,N为2的幂,编号大的人获胜。问想要让第K个人在被击败之前胜利M场是否可行,若可行,输出一种方案。 解题思路:比赛过程就是个完美
阅读全文
摘要:题目链接:https://csacademy.com/contest/archive/task/cinema-seats 题目大意:给你一串长度为n的01字符串表示n个座位,0表示有人,1表示没人,移动一个人表示将1换到另一个为0的地方。问在只允许移动一个人或0个人情况下连续座位的最大长度。 解题思
阅读全文
摘要:题目链接:http://poj.org/problem?id=1177 题目大意:给出N个矩形坐标,问他们组成的图形的周长。包括内周长,外周长,以及不想交的区域的周长。 解题思路:同样是扫面线法,本题使用的方法整体上与矩形面积并所使用的方法类似,但是细节上有所更改。 具体过程:离散化,线段树维护X轴
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1255 题目大意:给出多个矩形坐标,求他们的面积的并,即互相覆盖的面积。 解题思路:与Atlantis那个题目如出一辙,不过要在线段树节点中增加一个 mlen 变量表示区间内重叠数>1的线段长度,那么更新
阅读全文
摘要:题目链接:http://poj.org/problem?id=1151 http://acm.hdu.edu.cn/showproblem.php?pid=1542 题目大意:给你几个矩形的坐标,求他们的面积的并。 解题思路:可以参考http://www.cnblogs.com/kuangbin/a
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4614 题意:N个花瓶,两种操作。 操作1:从第a个花瓶开始放花,放最多f个,如果花瓶已经有花就跳过,直到放完,或者无更多花瓶,要求输出这次放花的第一个位置和最后一个位置,如果没放就输出Cannot。。。
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1540 解题思路:线段树节点增加一个ld 区间左端点起始的最大长度,rd 区间右端点起始的最大长度,md 覆盖区间中点的最大长度,那么对于每次更新,更新到点然后更新父节点值;对于每次查询,若为中点,则返回
阅读全文
摘要:题目链接:http://poj.org/problem?id=2777 解题思路:比较巧妙,状态压缩 最多三十种颜色,每一位表示每个颜色状态,那么使用逻辑或运算即可避免颜色重复计算的问题,统计颜色的时候判断1的位数即可。 延迟标记的传递时候需要更改左右孩子的值以及其标记! 代码: 题目: Count
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698 解题思路:线段树区间更新。写的有点杂,不过整体来说题目不算难。 注意最后那个句号。 代码: 题目: Just a Hook Time Limit: 4000/2000 MS (Java/Other
阅读全文
摘要:题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3563 解题思路:原来并查集也可以离线。。。离线保存然后从后往前,这样每次destroy就成了unite了,那么就是带权并查集。 每个集合的根保存整个集合的最大值的以及最
阅读全文
摘要:题目链接:http://poj.org/problem?id=1417 解题思路:比较容易想到的是并查集,然后把第三组数据测试一下之后发现这并不是简单的并查集,而是需要合并之后然后判断的。并且鉴于题目要求输出数据,因此还要记录数据,可以说是非常有意思的题目。 首先,如果a b yes,那么a与b一定
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4027 解题思路:线段树区间更新,查询。主要问题在于如何解决快速对一个区间所有数据开根号然后求和 实际上是根本不用关心这个问题。2^64 在开根号7次之后已经变成1了,继续开根号没意义。 因此,对于每次更
阅读全文
摘要:题目链接: http://poj.org/problem?id=2528 解题思路: 线段树+离散化。10000个线段,20000个点,所以线段树最大是80000。离散化的方法:首先保存每个端点,然后排序+去重(unique函数)之后从头到尾映射一下就可以了。 更新时可以从后往前进行,这样,由于前面
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1325 解题思路: 判断 连通 && 边数 == 节点数-1 && 只有一个根 即可。需要注意的是 0 0这种情况应该是 Yes 本题与Hdu1272神似 代码: 题目: Is It A Tree? Ti
阅读全文
摘要:题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1610 解题思路:线段树区间更新,点查询即可。需要注意的是,线段数量n与线段的端点最大值不同,因此每次建树都要build(1, 8000, 1);另外由于题中给出的是
阅读全文
摘要:题目链接:http://poj.org/problem?id=3321 解题思路:dfs加时间戳然后简单树状数组单点更新区间查询即可。 代码: 题目: Apple Tree Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 3043
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3974 解题思路:深搜设置时间戳,然后线段树上更新查询即可。 第一次写,还算顺利(尽管wa了两发)。 代码: 题目: Assign the task Problem Description There i
阅读全文
摘要:题目链接: 解题思路:首先考虑一维的情况,更改某个区间[l, r]时相当于l出加一,r + 1除减一,这样就能保证每次计算的时候两者总是能抵消的。当然也可以在l与r + 1除都加一,而每次求和之后mod 2。 接下来考虑二维,更改区间[x1, y1], [x2, y2]的时候,只需在(x1, y1)
阅读全文
摘要:题目链接:http://poj.org/problem?id=2481 解题思路:可以先尝试HDU 1541 Stars 。这道题相当于Stars的变形,只不过需要稍微思考。按E从大到小排序,E相同S从小到大对S E数组排序,使用一个一维BIT,初始为0,之后对于每一个[S, E]: ans[i]
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3038 解题思路:首先,由于序列数据可正可负,因此实际不满足情况的只有已知区间样例中所给出的那种情况类似。所以,使用并查集判断区间是否连通,使用前缀和来计算是否满足条件即可。 使用带权并查集,val数组记
阅读全文
摘要:题目链接:https://csacademy.com/contest/archive/task/array-removal/statement/ 题意:给一个元素个数为n的数组,给出一个n的排列,从前到后按照排列的元素从数组中删去一个数,每次删除之前输出数组的最大子数组值。最大子数组值为所有子数组的
阅读全文
摘要:题目链接:http://poj.org/problem?id=1330 最近公共祖先模板题 Tarjan离线算法 : 读取所有询问后保存并按照一定方式排列。该算法主要采取深度优先搜索的方式,结合并查集,在搜索同时处理查询,大致过程如下: 搜索到节点u 访问标记u 对于u的所有子节点递归搜索,每搜索并
阅读全文
摘要:题目链接:http://codeforces.com/contest/835/problem/ 思路:dp[i][j]表示子串[i, j]的阶数,则: dp[i][i] = 1; dp[i][i + 1] = (str[i] == str[i + 1])? 2: 0; if(str[i] != st
阅读全文

浙公网安备 33010602011771号