自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

相思作坊半世离殇的博客

藏器于身,待时而动。

  • 博客(30)
  • 收藏
  • 关注

原创 hdu1213(并查集模板)

直接贴代码了。#include#include#includeusing namespace std;#define maxn 1005int par[maxn];//父亲int Rank[maxn];//树的高度//初始化void init(int n){ for(int i=0;i<n;i++){ par[i]=-1; Rank[i

2016-07-31 21:38:26 255

原创 划分数

//划分问题:将n个无区别的问题,划分成不超过m组,求划分方法数模M的余数//n的m划分数,记为dp[m][n]//记每一组物品的个数为a[i],1=0//如果对于任意10,则{a[i]-1}就对应n-m的m划分数,即为dp[m][n-m]//如果存在一个a[i]等于0,就对应着n的m-1划分数,即为dp[m-1][n]//所以dp[m][n]=dp[m][n-m]+dp[m-1][n]

2016-07-31 18:23:21 468

原创 Arrange the Bulls(poj2441)状态压缩dp

Arrange the BullsTime Limit: 4000MS Memory Limit: 65536KTotal Submissions: 4317 Accepted: 1646DescriptionFarmer Johnson's Bulls love playing basketball very much.

2016-07-31 18:07:24 356

原创 Corn Fields(poj3254)状态压缩dp

Corn FieldsTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 12738 Accepted: 6681DescriptionFarmer John has purchased a lush new rectangular pasture compo

2016-07-31 09:53:59 342

原创 线段树基本知识

线段树是擅长处理区间的一种数据结构。线段树是一棵完美二叉树,根结点维护的是整个区间,每个结点维护的是父亲的区间二等分后的其中一个区间,所有叶子的深度都相同,每个结点要么是叶子要么是有两个儿子的树,当有n个元素时,对区间的操作可以在O(logn)时间内完成。根据结点中维护的数据的不同,线段树可以提供不同的功能,下面以Range Minimum Query(RMQ)操作的线段树为例。基于线段树的RMQ

2016-07-29 21:27:48 226

原创 poj2376(Cleaning Shifts)贪心算法

Cleaning ShiftsTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 17770 Accepted: 4526DescriptionFarmer John is assigning some of his N (1 <= N <= 25,000)

2016-07-28 22:33:46 286

原创 矩阵的快速幂模板

typedef long long ll;struct Matrix{ int row,col; ll mat[N][N]; void init(int row,int col,bool ok=false){ this->row=row; this->col=col; memset(mat,0,sizeof(mat));

2016-07-28 13:26:42 283

原创 poj2686(Traveling by Stagecoach)状态压缩dp+DAG

Traveling by StagecoachTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 2894 Accepted: 1053 Special JudgeDescriptionOnce upon a time, there was a tra

2016-07-28 13:00:40 464

原创 有向无环图的单源最短路径问题

#include#include#include#includeusing namespace std;//定义边结构体类型struct Edge{ int start;//一条边的起始顶点编号 int end;//一条边的终止顶点编号 int value;//边的权值 Edge* next;//第start起点的链表的下一条边 Edge(int s,int e,int v

2016-07-27 23:42:01 692

原创 最长上升子序列问题

有一个长度为n的数列a[0],a[1],……,a[n-1]。求出这个序列中最长的上升子序列的长度。上升子序列指的是对于任意的i这个问题被称为最长上升子序列问题(LIS,Longest Increasing Subsequence)的著名问题。这一问题可以通过dp很有效率的求解。首先来建立地推关系,定义dp[i]是以a[i]为结尾的最长上升子序列的长度,以a[i]结尾的上升子序列是①只包含a[i

2016-07-25 23:27:43 395

原创 旅行商问题(状态压缩dp)

给定一个n个顶点的带权有向图的距离矩阵d(i,j)(INF表示没有边)。要求从顶点0出发,经过每个顶点恰好一次再回到顶点0,求所经过边的总权重的最小值。这就是著名的旅行商问题(TSP,Travelling Salemans Problem)。TSP问题是NP困难的,没有已知的多项式时间的高效算法可以解决这一问题(别问我这是什么~~~~(>_假设现在已访问过的顶点的集合为S(顶点0当做未访

2016-07-25 23:01:10 1022

原创 Cell Not Under Attack(Codeforces 701B)(Codeforces Round#364 Div2 B)

http://www.codeforces.com/problemset/problem/701/BB. Cells Not Under Attacktime limit per test2 secondsmemory limit per test256 megabytesinputstandard input

2016-07-23 11:45:37 637

原创 Cards(Codeforces 701A)(Codeforces Round #364Div.2 A)

A. Cardstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputThere are n cards (n is even) in the

2016-07-23 03:22:48 510

原创 Tree of Life(easy) Codeforces 690F1

http://codeforces.com/problemset/problem/690/F1F1. Tree of Life (easy)time limit per test2 secondsmemory limit per test256 megabytesinputstandard inputout

2016-07-23 00:30:52 588

原创 Vacations(Codeforces Round #363 (Div1 A)

http://codeforces.com/problemset/problem/698/AA. Vacationstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard output

2016-07-22 23:12:38 315

原创 Another kind of Fibonacci(hdu3306)矩阵快速幂

矩阵的快速幂直接套模板就行,关键在于如何构造矩阵。矩阵的构造方法AC代码如下:#include#include#includeusing namespace std;const int N=4;const int Mod=10007;struct Matrix{ int row,col; int mat[N][N]; void init(int row

2016-07-22 00:19:29 295

原创 poj2342 Anniversary party

Language:DefaultAnniversary partyTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 6480 Accepted: 3734DescriptionThere is going to be a party to cel

2016-07-21 19:25:22 194

原创 Acperience

这道题是2016年暑期多校训练第2场的第一题。说实话,像我这样的菜鸟做这样的题目,简直就是找虐╮(╯_╰)╭。不过还好第一题第一眼我就知道怎么做,纯粹是数学问题,然而第一次提交TLE,就开始想怎么快速求和。到后来看了学长的代码,才发现并不需要,只需逐项求和即可。结束后,自己试了一下,结果还是TLE,cin和cout换成scanf和printf后成功AC。吸取的最大教训就是少用C++的输入和输出,s

2016-07-21 18:13:39 406

原创 Blocks(poj3734)组合数学

BlocksTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 5417 Accepted: 2539DescriptionPanda has received an assignment of painting a line of blocks. Since

2016-07-21 02:08:27 542

原创 斐波那契数列

斐波那契数列是由如下递推式定义的数列:F[0]=0,F[1]=1,F[n+2]=F[n+1]+F[n]。求这个数列第n项的值对10^4取余后的结果。限制条件(0代码如下:#include#includeusing namespace std;typedef long long ll;const int N=100+10;const int M=10000;s

2016-07-21 00:30:34 388

原创 Coins(poj1742)动态规划+挑战多重部分和问题

Language:DefaultCoinsTime Limit: 3000MS Memory Limit: 30000KTotal Submissions: 34343 Accepted: 11661DescriptionPeople in Silverland use coins.They have coin

2016-07-19 10:26:13 805

原创 多重部分和问题

有n种不同大小的数字a[i],每种各m[i]个。判断是否可以从这些数字中选出若干使它们的和恰好为K。限制条件:1这个问题可以用DP求解,如何定义递推式影响最后的时间复杂度。定义dp[i+1][j]:用前i+1种数字(数字的编号是从0到i)是否能加成j为了用前i+1种数字加成j,就需要能前i种数字加成j,j-a[i],……,j-m[i]*a[i]的一种。因此有以下递推式:dp[i

2016-07-19 00:09:00 507

原创 sumsets(poj2229)

Language:DefaultSumsetsTime Limit: 2000MS Memory Limit: 200000KTotal Submissions: 16489 Accepted: 6516DescriptionFarmer John commanded his cows to search fo

2016-07-18 22:37:42 396

原创 poj1458最长公共子序列问题

最长公共子序列问题LCS(Longset Common Subsequence),这个问题的大致意思是给定两个字符串,s[1]……s[n]和t[1]……t[m],求出这两个字符串的最长公共子序列的长度。其中s[1]……s[n]的子序列可以为s[i1]……s[im](i1建立状态转移方程(递推式)用dp[i][j]表示s[1]……s[i]与t[1]……t[j]的最长公共子序列的长度则有d

2016-07-18 22:12:46 735

原创 完全背包问题

这个经典问题的大致意思是:有n种物品重量和价值分别为w[i]、v[i]的物品,从这些物品中挑选出总重量不超过W的物品,求出挑选物品价值总和的最大值。每种物品可以挑选任意多件。利用二维数组dp,其中dp[i+1][j]表示从前i种物品中挑选出总重量不超过j的物品的价值总和的最大值。显然有dp[0][j]=0;dp[i+1][j]=max(dp[i][j-k*w[i]]+k*v[i])

2016-07-18 21:49:10 254

原创 01背包问题

背包问题是动态规划中的经典问题,而01背包问题又是背包问题的著名问题,总之初学动态规划,这个必须要熟练掌握。01背包问题的大致意思:有n个重量、价值分别为w[i]、v[i]的物品,从这些物品中挑选出总质量不超过W的物品,求所有挑选方案中价值总和的最大值。1.最朴素的办法,针对每个物品是否放入背包进行搜索试试看,代码如下:int n;int w[105];int v[105];//

2016-07-18 19:33:45 438

原创 最大连续子序和

Problem DescriptionGiven a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5

2016-07-18 13:11:19 266

原创 数塔

数塔是动态规划(DP)中的经典例子,大致意思就是在如下图所示的数塔中,从顶层走到底层,每次只能走相邻的结点,所经过的结点的数之和最大是多少?hdu2084数塔用一个二维数组a[105][105],其中a[i][j]表示数塔中第i行第j列的数;二维数组dp[105][105],其中dp[i][j]表示从(i,j)这一结点出发走到底层,所经过结点的数之和的最大值,显然有dp[n][j]

2016-07-18 12:25:45 846

原创 统计问题

题目大意: 1、 每次只能移动一格; 2、 不能向后走(假设你的目的地是“向上”,那么你可以向左走,可以向右走,也可以向上走,但是不可以向下走); 3、 走过的格子立即塌陷无法再走第二次; 求走n步不同的方案数(2种走法只要有一步不一样,即被认为是不同的方案)。

2016-07-17 16:14:18 409

原创 N皇后问题

初入搜索的坑,选择了非常经典的八皇后问题。

2016-07-17 10:32:24 409

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除