题目链接:[ HDU - 1828 ]
题目大意:给你n个矩形的左下角坐标和右上角坐标,求外周长。
题解
扫描线 + 离散化板子
将横竖两次扫描简化
代码如下
#include<bits/stdc++.h>
using namespace...
阅读全文...
线段树+扫描线 HDU-1542 Atlantis
题目链接:[ HDU - 1542 ]
题目大意:给你n个矩形的左下角坐标和右上角坐标,求矩形相交的面积。
题解
扫描线 + 离散化板子
代码如下
#include<cstdio>
#include<cstring>
#inclu...
阅读全文...
阅读全文...
线段树+扫描线 HDU-1542 覆盖的面积
题目链接:[ HDU - 1255 ]
题目大意:给你n个矩形的左下角坐标和右上角坐标,求矩形相交至少覆盖两次以上的面积。
题解
代码如下
#include<bits/stdc++.h>
using namespace std;
const...
阅读全文...
阅读全文...
树状数组 POJ-2155 Matrix
题目链接:[ POJ - 2155 ]
题目大意
对一个n∗n的矩阵:
格式C x1 y1 x2 y2,表示将左上角为(x1,y1),右下角为(x2,y2)的矩阵全部取反,即0变1,1变0.
Q x y,表示查询位置(x,y)的值.
设询问次数为t...
阅读全文...
阅读全文...
树状数组 POJ-3468 A Simple Problem with Integers
题目链接:[ POJ - 3468 ]
题目大意
给一个长度为n的数列,有Q次操作Q代表查询区间 a b之间的累加和,操作C代表将a-b区间的所有数加上c
题解
树状数组模板题,此题建立完整的一维树状数组板子
代码如下
#include<ios...
阅读全文...
阅读全文...
动态规划 POJ-2373 Dividing the Path
题目链接:[ POJ - 2373 ]
题目大意
有一个直线的山脊,喷泉是一个在中间向两边同时喷的,最近喷a,最远b。同时山脊上有牛,每只牛在一个区域里活动,牛活动的区域只能被一个喷泉的水来覆盖。求最少的喷泉使山脊上所有地方都能有水浇灌到
思路
手工...
阅读全文...
阅读全文...
动态规划 POJ-1458 Common Subsequence
题目链接:[ POJ - 1458 ]
题目大意
输入两个串s1,s2, 设MaxLen(i, j)表示:
s1的左边i个字符形成的子串,与s2左边的j个字符形成的子串的最长公共子序列的长度(i,j)从 0 开始
算)
MaxLen(i,j) 就是本...
阅读全文...
阅读全文...
动态规划 背包 百炼-2755 神奇的口袋
题目链接:[ HDU - 2069 ]
题目大意
背包问题
思路
设V(m,n)表示在n个数字中插入m个加号所能形成 的表达式最小值,那么:
if m = 0
V(m,n) = n个数字构成的整数
else if n <...
阅读全文...
阅读全文...
动态规划 01背包 POJ-3624 Charm Bracelet
题目链接:[ POJ - 3624 ]
题目大意
0-1背包
思路
用 F[i][j] 表示取前i种物品,使它们总体积不超过j的 最优取法取得的价值总和。要求 F[N][M] 边界:
if (w[1] <= j)
F[1][j]...
阅读全文...
阅读全文...
动态规划 LIS POJ-1088 滑雪
[ POJ - 1088 ]
题目大意
求最长上升子序列的题目,二维数组稍微转化一下
题解代码
#include<bits/stdc++.h>
using namespace std;
int dp[105][105];
int h[1...
阅读全文...
阅读全文...