第一次走用dfs枚举每种情况,第二次走用dp求剩下的最大值 设一个点集q用来保存有价值的点,排序,在最后加一个终点:x=m+1,y=m+1,v=0 //m是矩阵长宽 因为v=0的点是没有意义的,所以忽略它们,用q进行dfs 设当前点在q中的下标为p,已经积累的分数为score: 当p=n+1时,到了 ...
分类:
其他好文 时间:
2016-05-06 00:35:07
阅读次数:
125
典型的状态压缩DP问题。第i行的取法只受到第i-1行的影响。首先每一行的取法要相容(不能有两个相邻),然后相邻行之间也要相容。将每一个格子看做两种状态,1表示取,0表示不取。这样每一行就是一个01串,恰好可以看做是一个二进制数,那么该二进制数对应的十进制整数可以唯一的表示为当前第 i 行的状态。定义 ...
分类:
其他好文 时间:
2016-04-28 19:47:04
阅读次数:
181
题目链接: 点击打开链接 Description : 给你一个n*n的格子的棋盘,每一个格子里面有一个非负数。如今从中取出若干个数,使得随意的两个数所在的格子没有公共边,就是说所取的数所在的2个格子不能相邻。而且取出的数的和最大。 Input : 包含多个測试实例,每一个測试实例包含一个整数n 和n
分类:
其他好文 时间:
2016-01-31 21:06:31
阅读次数:
202
Budget建图好题。不知道为什么提交一直TLE。然后。该了几次,看了别人的普通网络流都过了。我觉得可能是卡DINIC的某些部分吧。这题就是一道普通的上下界最小流。 建图麻烦,所以说一下建图吧。 建图能够象方格取数的方法一样,把行列拆了。然后最后让行总和或列总和等于题目的要求。这样在满足一下题目的上...
分类:
其他好文 时间:
2015-12-24 13:25:06
阅读次数:
185
$n \times n$ 的方格,每个格子有个自然数。一人在方格中,只能向右或下走。从左上角到右下角走两次,问最大可以取得多大的数字(每个数字取了就没了,也就是说两次经过同一个位置只能得到一个值)。考虑两次一起走,每一行经过的段是两个线段假设是 [a, b] 和 [c, d]。当前一行状态是[a, ...
分类:
其他好文 时间:
2015-11-26 21:17:16
阅读次数:
136
不要多想,我不是无聊到刷NOIP2000的题目,只是老师用考试告诉我们,我们的DP很弱,so咱家来找道DP提做还有,这个题貌似和矩阵取数那个没有什么关系题目简述:给你一个N*N的方格(小的很,N只有10),你可以向右或向下走一步,并取走其中的数字,你要取两次,输出最后取数的和首先,这是一个棋盘DP,...
分类:
其他好文 时间:
2015-09-17 23:01:19
阅读次数:
267
方格取数(2)
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 5589 Accepted Submission(s): 1741
Problem Description
给你一个m*n的格子的棋盘,每个格...
分类:
其他好文 时间:
2015-08-25 23:47:44
阅读次数:
203
//给一个n*n的矩阵,问从这个矩阵中若干数,这些数不相邻
//问这些数的最大值为多少
//1. 最小点权覆盖集=最小割=最大流
//2. 最大点权独立集=总权-最小点权覆盖集
//将(i+j)%2 == 1分为x集,将(i+j)%2==0分为y集
//对x集向y集相邻的边引入权值为inf的边
//源点向x集引入权值为该点权值的边 , 从y集向汇点引入权值为该点权值的边
//那么答案是其最大点权独...
分类:
其他好文 时间:
2015-08-16 19:56:12
阅读次数:
99
方格取数(2)Time Limit: 10000/5000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5425Accepted Submission(s): 1695Problem De...
分类:
其他好文 时间:
2015-08-02 11:38:37
阅读次数:
81
NOIP200003方格取数难度级别: D; 编程语言:不限;运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B试题描述 XYZ 是首师大附中信息技术团编程大神之一,尤其近两个月水平提升迅猛,一发不可收拾。老师说他前途不可估量,于是他有一点小骄傲,好像没有什...
分类:
其他好文 时间:
2015-08-02 10:08:48
阅读次数:
195