自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

苍竹林

何不让这一场梦 没有醒来的时候

  • 博客(12)
  • 问答 (7)
  • 收藏
  • 关注

原创 URAL - 1145 Rope in the Labyrinth

/*题意:给你一个矩阵,里面的数字只有0和1两种,其中,列可以任意移动。问如何移动可以使某个子矩阵中元素全部是1,求出这个最大子矩阵的面积。对每一行进行处理然后再叠加,到每一行用num[i]记下到这一行有多少个1例如: 1 0 1 1 num[i]的记录就是: 1 0 1 1 1 0 0 1

2015-02-09 19:26:07 977

原创 HDU 2830 Matrix Swapping II(最大完全子矩阵之可移动列)

/*题意:给你一个矩阵,里面的数字只有0和1两种,其中,列可以任意移动。问如何移动可以使某个子矩阵中元素全部是1,求出这个最大子矩阵的面积。对每一行进行处理然后再叠加,到每一行用num[i]记下到这一行有多少个1例如: 1 0 1 1 num[i]的记录就是: 1 0 1 1 1 0 0 1

2015-02-09 14:42:36 637

原创 URAL 1147 Shaping Regions

/*题意:一个10000*10000的矩阵,初始颜色都为1,然后最多2500次涂色,每次涂色将一个矩形的面积涂成某个特定颜色,问涂完之后每种颜色最终的面积。 解法:倒序计算,矩形切割*/# include # include # include # include # include using namespace std;struct node{ int x1,

2015-02-08 21:50:45 465

原创 hdu 1503 Advanced Fruits (LCS)

/*题意:将两个字符串结合起来,他们的公共子串只输出一次思路:根据LCS的原理,将每个字符都进行标记,看两个字符串中对应的字符究竟处于什么状态,然后输出,其标记为公共子串的字符只输出一次即可*/# include # include # include # include using namespace std;int dp[110][110],pre[110][110];

2015-02-06 11:01:32 679

原创 hdu 1524 A Chess Game (SG)

题意:在一个有向无环图上有n个顶点,每一个顶点都只有一个棋子,有两个人,每次根据这个图只能将任意一颗棋子移动一步,如果到某一步玩家不能移动时,那么这个人就输.分析:本题是最典型的有向无环图的博弈,利用dfs把所有顶点的SG值都计算出来,然后对每个棋子的SG值进行异或运算,如果为0就是先手必败,否则就是先手必胜.如果某个人移动到出度为0的顶点,

2015-02-05 20:09:22 541

原创 POJ 2311 Cutting Game (sg函数)

给出一个N*M的纸片,每一次可以把一部分剪成两部分,谁剪出1*1的就赢了。http://poj.org/problem?id=2311对于任何一个人,都不会先剪出1*n或者n*1,应该这样就必败了。那我们考虑一个状态的后继中,最小的边也是2,这样就可以避免之前的问题,也不需要考虑类似ANTI-SG。一旦出现2*2,2*3,3*2,这些都成了终止状态,不论怎么剪都

2015-02-05 16:06:14 835

原创 zoj 3041 City Selection

/*这题是给了N个可选城市的坐标和M个工厂的坐标。如果一个城市的左上方(西北)有工厂,这个地点就被污染了(也就是工厂的右下方向,东南象限)。这个地方就不能建城市了。让你输出可以建城市的地点。想了想,没啥必要离散化啊,直接按 Y 坐标从大往小排序,求出在城市 K 之前 最小的 X坐标。如果这个坐标比K的X坐标小或者相等,则这个城市就被污染了。因为是Y从大往小排,所以不用考虑Y坐标了。*/#

2015-02-04 20:19:10 455

原创 hdu 1536 S-Nim (sg函数模版)

/*题意就是给出一个数组s。为每次可以取石子的数目。然后给你n堆石子每堆si。求解先手能不能赢!标准的sg函数用法题目。计算从1-n范围内的SG值。Array(存储可以走的步数,Array[0]表示可以有多少种走法)Array[]需要从小到大排序1.可选步数为1-m的连续整数,直接取模即可,SG(x) = x % (m+1);2.可选步数为任意步,SG(x) = x;3.可选步

2015-02-04 10:41:27 603

原创 hdu 4681 String (LCS)

/* 题意: 有三个字符串A, B, C。 求串D。 D是A, B的公共子序列。 C是D的子串。 求最长的D串.输出长度. 先求出a,b的最长公共子序列,从开头和末尾开始的都要 其中dp1[i][j]表示a中第i个字符之前,b中第j个字符之前的最长公共子序列长 dp2[i][j

2015-02-03 15:55:59 584

原创 poj 1934 Trip (LCS)

/*按升序输出两个串所有的最长公共子序列首先求出最长公共子序列,然后处理处两个数组,f1['a'~'z'][j]表示该字母在第一个串的前j个字母中出现的最大下标,f2['a'~'z'][j]表示该字母在第二个串的前j个字母中出现的最大下标。现在我们已经知道了最长公共子序列的长度,我们从最后一位开始枚举每一位放什么字母,用dfs来实现,并用前面处理出来的数组进行可行性剪枝。由于最后答案的串

2015-02-02 18:34:49 523

原创 poj 1159 Palindrome (lcs,滚动数组)

/*最少需要补充的字母数 = 原序列S的长度 — S和S'的最长公共子串长度*/# include # include # include # include using namespace std;int dp[2][5010];///滚动数组int main(){ char a[5010]; char b[5010]; int i,j,k,len;

2015-02-02 14:30:15 689

原创 hdu 1159 Common Subsequence (lcs)

/*裸lcs(最大公共子序列)*/# include # include # include # include using namespace std;int c[1010][1010];int main(){ int i,j,lena,lenb; char a[1010],b[1010]; while(~scanf("%s%s",a,b))

2015-02-02 13:24:47 603

空空如也

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

TA关注的人

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