摘要: 题目链接:http://poj.org/problem?id=1419思路:只怪数据太弱!直接爆搜,按顺序搜索即可。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 int n,m,max_num; 9 vector >G;10 11 int color[111];12 int ans[111];13 14 void dfs(int num,int count)15 {16 if(num==n+1){17 if(count>max_num){18 ... 阅读全文
posted @ 2013-08-27 19:56 ihge2k 阅读(536) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3680思路:因为N 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define MAXN 444 8 #define MAXM 444444 9 #define inf 1que; 42 que.push(vs); 43 while(!que.empty()){ 44 int u=que.front(); 45 que.pop(); 46 mark[u]=fa... 阅读全文
posted @ 2013-08-27 16:51 ihge2k 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3422思路:求从起点到终点走k次获得的最大值,最小费用最大流的应用:将点权转化为边权,需要拆点,边容量为1,费用为该点的点权,表示该点的权值只能获取一次,另外,应该连一条容量为inf,费用为0的边,因为每条边都可以走多次。另外就是增加源点和汇点了,源点与起点连容量为k,费用为0的边,表示可以走k次,同理终点与汇点也如此。然后就是求最大费用了,这与求最小费用类似,只需将spfa函数稍作修改即可。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using ... 阅读全文
posted @ 2013-08-27 15:24 ihge2k 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4597思路:要保证当前状态下,得到的是最优的,dfs+dp. 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 int Left[44],Right[44]; 8 int dp[22][22][22][22]; 9 int n,ans,MAX;10 11 int dfs(int upl,int downl,int upr,int downr,int sum)12 {13 if(dp[upl][dow... 阅读全文
posted @ 2013-08-27 10:42 ihge2k 阅读(353) 评论(0) 推荐(0) 编辑