摘要: 题目链接:http://poj.org/problem?id=1830 Gauss消元真正意义上的第一道(以前做过一道裸的)。。。 其实这种题目暴力搜索完全可以解决。。。 我们先建立一个矩阵,A[i][j]表示第 i 个开关是否受第 j 个开关的影响,S[i]表示第 i 个开关的初始状态,D[i]表示第 i 个开关的最终状态,X[i]表示操作,那么S*A*X=D,令B=S*D,则有A*X=B: A11*X1^A12*X2^......^A1n*Xn=B1 A21*X1^A22*X2^......^A2n*Xn=B2 ...... An1*X1^An2*X2^.... 阅读全文
posted @ 2013-05-24 13:04 zhsl 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3687 题目有很多坑点,首先要求编号越小的节点在结果中拍在越前面,其次是输出节点所在的位置,而不是节点的编号!! 如果正向建图,那么每次去掉入度为零的节点都要考虑其能到达的所有节点中的最小的,如果有最小的还要比较次小的。。。做起来很麻烦。可以考虑反向建图,那么每次选择入度为零且节点编号最大的节点,那么编号越大,越靠后,编号小的越靠前。 1 //STATUS:C++_AC_63MS_416KB 2 #include <functional> 3 #include <algorithm> 4 #include 阅读全文
posted @ 2013-05-24 12:43 zhsl 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3420 非常经典的题目,推荐看<十个利用矩阵乘法解决的经典题目>。先求出相邻两列的状态转移矩阵,然后用矩阵乘法优化,相当于求在一个图上求两点之间有多少条路径数。 1 //STATUS:C++_AC_0MS_172KB 2 #include <functional> 3 #include <algorithm> 4 #include <iostream> 5 //#include <ext/rope> 6 #include <fstream> 7 #includ 阅读全文
posted @ 2013-05-24 12:34 zhsl 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=2663 http://poj.org/problem?id=2506 简单的递推题,直接递推过去就可以了。POJ-2663: 1 //STATUS:C++_AC_0MS_172KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 #include 16 #i... 阅读全文
posted @ 2013-05-24 12:15 zhsl 阅读(341) 评论(0) 推荐(0) 编辑