hdu1569:http://acm.hdu.edu.cn/showproblem.php?pid=1569题意:中文题。题解:经典的问题。首先,按照(i+j)%2==1和(i+j)%2==0把所有的点分成两部分x,y两部分。分别对于x,和y部分来说,任何取两个数都是不相邻的,所以可以任意去。现在的...
分类:
其他好文 时间:
2014-09-05 17:36:51
阅读次数:
278
第一题:笨小猴模拟第二题:火柴棒等式搜索深搜不用说,确定出两个加数然后判断能否拼出等式。枚举确实不太好搞,因为枚举范围不确定,太大了容易超时,太小了容易漏解。不过这题的数据貌似很温和,我从 0~1000 枚举也能过。第三题:传纸条多线程动态规划跟 2000 年的方格取数很像。还是看做两个人同时从左上...
分类:
其他好文 时间:
2014-08-29 22:39:18
阅读次数:
245
方格取数(1)
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 5530 Accepted Submission(s): 2094
Problem Description
给你一个n*n的格子的棋盘,每个格子里面有...
分类:
其他好文 时间:
2014-08-26 19:41:46
阅读次数:
154
题目:hdoj 1569 方格取数
题意:中文题目,就不说题意了。
分类:最大流 | dp
分析:dp的话应该是个数塔模型,不难做,这里讲转化为图的做法。
这个题目的关键在于转化为一个二分图,来求一个二分图的最大点权独立集,而最大点权独立集 = 点权和 - 最小点权覆盖
最小点权覆盖: 从x或者y集合中选取一些点,使这些点覆盖所有的边,并且选出来的点的权值尽可能...
分类:
其他好文 时间:
2014-08-24 20:56:13
阅读次数:
276
这题我一开始想到的是状压,看到n#include #include #include #include #include using namespace std;#define rep(i, n) for(int i=0; i=(n);--i)#define for4(i,a,n) for(int ...
分类:
其他好文 时间:
2014-08-24 17:55:32
阅读次数:
199
题意:方格取数,如果取了相邻的数,那么要付出一定代价。(代价为2*(X&Y))(开始用费用流,敲升级版3820,跪。。。)
建图: 对于相邻问题,经典方法:奇偶建立二分图。对于相邻两点连边2*(X&Y),源->X连边,Y->汇连边,权值w为点权。
ans=总点权-最小割:如果割边是源->X,表示x不要选(是割边,必然价值在路径上最小),若割边是Y-汇点,同理;若割边是X->Y,...
分类:
其他好文 时间:
2014-08-15 00:01:55
阅读次数:
317
有N * N个格子,每个格子里有正数或者0,从最左上角往最右下角走,只能向下和向右,一共走两次(即从左上角走到右下角走两趟),把所有经过的格子的数加起来,求最大值SUM,且两次如果经过同一个格子,则最后总和SUM中该格子的计数只加一次。求SUM的最大值...
分类:
其他好文 时间:
2014-08-10 18:45:20
阅读次数:
274
题意:
有N * N个格子,每个格子里有正数或者0,从最左上角往最右下角走,只能向下和向右,一共走两次(即从左上角走到右下角走两趟),把所有经过的格子的数加起来,求最大值SUM,且两次如果经过同一个格子,则最后总和SUM中该格子的计数只加一次。
走两次,所以状态表示要同时表示两次路径。dp[i][j][k][l] 表示第一次走到i, j,第二次走到k, l得到的最大值,这里i + j...
分类:
其他好文 时间:
2014-08-07 13:23:30
阅读次数:
224
/*刚开始不会写,最大点权独立集神马都不知道,在潘神的指导下终于做出来,灰常感谢ps;
和方格取数差不多奇偶建图,对于D必割点权为0,对于.必然不割点权为inf。然后和方格取数差不多的建图
.--.||E权值为2,,.||E--D权值为0.
最大点权独立集=sum-最小点权覆盖。
*/
#include
#include
#include
using namespace std;
#define ...
分类:
其他好文 时间:
2014-08-06 23:04:52
阅读次数:
273
/*
和1565一样:
总点数的权 - 最小覆盖点集 = 最大独立集
--------------------------------------
void add(int u, int v, int f)加边
{
e[ct].u = u;
e[ct].v = v;
e[ct].f = f;
next[ct] = first[u];
first[u] = c...
分类:
其他好文 时间:
2014-08-03 23:17:26
阅读次数:
360