08 2013 档案

摘要:题意:解数独分析:完整的数独有四个充要条件:1.每个格子都有填数字2.每列都有1~9中的每个数字3.每行都有1~9中的每个数字4.每个9宫格都有1~9中的每个数字可以转化成精确覆盖问题。每行表示一个格子的一种填法,1~81列表示这个格子的位置,82~162列表示这是哪一行的什么数字,163~243列表示这是哪一列的什么数字,244~324列表示这是哪一个九宫格里的什么数字。每行都把四个1填入这四个区间里的对应位置。最后求出这个01矩阵的精确覆盖就是解。在DFS里删除列的顺序为由左往右时TLE了,由右向左却AC,什么原因??? 1 #include 2 #include 3 int U... 阅读全文
posted @ 2013-08-30 10:36 Hogg 阅读(994) 评论(0) 推荐(0)
摘要:题意:求01矩阵的精确覆盖。分析:本来想学习dancing links来解决数独问题,发现dancing links最初解决的问题是精确覆盖,于是就找到这道题来做了。这种NPC问题只能用DFS暴搜的情况下,很适合的一种优化方式就是用dancing links加速状态的改变,利用双向循环十字链表使元素的删除与恢复操作非常简便快捷。 1 #include 2 3 int U[102005],D[102005],L[102005],R[102005]; 4 int X[100005],Y[100005],H[1005],S[1005],ans[1005],len,M,N,sz; 5 ... 阅读全文
posted @ 2013-08-29 13:43 Hogg 阅读(570) 评论(0) 推荐(0)
摘要:题意:由一个点走到另一个点,中间的点可以重复到达,但边只能经过一次,问T条边不重复的路径里,最长的边的最小值.分析:由于点是可以重用的,因此不必拆点.这道题有重边,而且重边都必须保留,因为点是可以重复走的.二分最长的边长,用最大流来验证. 1 #include 2 #include 3 #include 4 const int MAXN=205;//点数的最大值 5 const int MAXM=160005;//边数的最大值 6 const int INF=0x3fffffff; 7 8 struct Node 9 { 10 int from,to,next... 阅读全文
posted @ 2013-08-03 10:08 Hogg 阅读(308) 评论(0) 推荐(0)
摘要:1 #include 2 #include 3 const int MAXN=250;//点数的最大值 4 const int MAXM=12500;//边数的最大值 5 const int INF=0x3fffffff; 6 7 struct Node 8 { 9 int from,to,next; 10 int cap; 11 }edge[MAXM]; 12 13 int tol; 14 int head[MAXN]; 15 int dep[MAXN]; 16 int gap[MAXN];//gap[x]=y :说明残留网络中dep[i]==x的... 阅读全文
posted @ 2013-08-01 23:26 Hogg 阅读(267) 评论(0) 推荐(0)
摘要:题意:爱丽丝喜欢拍电影,现在正好有N个公司找她拍电影,每部电影都指定在每周的星期几拍,要用D天拍完电影,最迟M个星期要拍完.问爱丽丝能不能拍完所有电影.分析:350天各为一个顶点,每个顶点都有且只有一条边指向汇点t,容量为1,源点为爱丽丝,指向每部电影,权值为该部电影拍完的天数D,每部电影都向能拍这部电影的那一天的顶点建一条权值为1的边.如果计算出来的最大流为所有电影要拍的天数的总和则能够拍完所有电影,否则不能. 1 #include 2 #include 3 const int MAXN=375;//点数的最大值 4 const int MAXM=14740;//边数的最大值 ... 阅读全文
posted @ 2013-08-01 16:16 Hogg 阅读(306) 评论(0) 推荐(0)
摘要:题意:假如存在矩阵A,A[i][0] + A[i][1] + ...... + A[i][n - 1] == SR[i],A[0][j] + A[1][j] + ...... + A[n - 1][j] == SC[j].(0 #include const int MAXN=205;//点数的最大值const int MAXM=25005;//边数的最大值const int INF=0x3fffffff;struct Node{ int from,to,next; int cap;}edge[MAXM];int tol;int head[MAXN];int dep[MAXN];in... 阅读全文
posted @ 2013-08-01 10:25 Hogg 阅读(261) 评论(0) 推荐(0)