题目链接:[ 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...
阅读全文...
阅读全文...
动态规划 最长上升子序列LIS 两种角度及优化算法
题目链接:[ OpenJ_Bailian - 2757 ]
一个数的序列 $b_{i}$,当 $b_{1} < b_{2} < ... < b_{S}$ 的时候,我们称这个序列是上升的。对于给定的一个序列( $a_{1}, a_{2...
阅读全文...
阅读全文...
动态规划 最长公共子序列 HDU-1159 Common Subsequence
题目链接:[ HDU - 1159 ]
A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Give...
阅读全文...
阅读全文...
动态规划 HDU-2069 Coin Change
题目链接:[ HDU - 2069 ]
题目大意
有五种面值的硬币,面值分别为v1, v2, ..., vn, 数量无限。输入一个数,求这个价值所有可能的硬币组合
思路
定义dp[i][j], 表示价格为i时用j枚硬币的方案数量
dp[i][j] =...
阅读全文...
阅读全文...