摘要: View Code 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #include<queue> 5 using namespace std; 6 const int maxn = 21; 7 const int inf = INT_MAX; 8 int r[ maxn ],c[ maxn ],sd[ maxn ],md[ maxn ];//sd=r+c,md=r-c+n-1; 9 int ans,n;10 void init(){11 memset( r,0,si 阅读全文
posted @ 2013-02-01 22:25 xxx0624 阅读(277) 评论(0) 推荐(0)
摘要: 题意:N皇后方法:BFS+打表View Code 1 #include<stdio.h> 2 #include<string.h> 3 const int maxn = 21; 4 int sd[ maxn*2 ],c[ maxn ],md[ maxn*2 ]; 5 struct node{ 6 int r,c,flag; 7 }p,stack[ maxn*maxn ]; 8 int ans,n; 9 10 void bfs(){11 int top=-1;12 for( int i=n-1;i>=0;i-- ){13 stack[ ++top ].r... 阅读全文
posted @ 2013-02-01 22:05 xxx0624 阅读(317) 评论(0) 推荐(0)
摘要: 1. 二分图的最小顶点覆盖(例hdu1150,poj3041) 在二分图中求最少的点,让每条边都至少和其中的一个点关联,这就是二分图的“最小顶点覆盖”。换句话说就是对于这也最小顶点集,原图中的每条边都至少有一个点在这个点集里面。 结论: 二分图的最小顶点覆盖数 = 二分图的最大匹配数2. DAG图的最小路径覆盖 (例hdu1151)用尽量少的不相交简单路径覆盖有向无环图(DAG)G的所有顶点,这就是DAG图的最小路径覆盖问题。结论:DAG图的最小路径覆盖数= 节点数(n)- 最大匹配数(m)3. 二分图的最大独立集(例hdu1068)最大独立集是指求一个二分图中最大的一个点集,该点集内的点互不 阅读全文
posted @ 2013-02-01 18:22 xxx0624 阅读(230) 评论(0) 推荐(0)
摘要: 题意:给定n个点,m条无向边。首先判断能否得到一个二分图(BFS),如果可以,则进行二分图匹配。View Code 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #include<queue> 5 #include<algorithm> 6 using namespace std; 7 const int maxn = 205; 8 const int maxm = 205*205; 9 struct node{10 int u,val,next;11 阅读全文
posted @ 2013-02-01 16:12 xxx0624 阅读(546) 评论(0) 推荐(0)
摘要: 题意:8600的手机每天消费1元,每消费K元就可以获赠1元,一开始8600有M元,问最多可以用多少天?输入包括多个测试实例.每个测试实例包括2个整数M, k,(2 <= k <= M <= 1000).M = 0, k = 0代表输入结束.注意:每次消费的时候,都应该消费k的整数倍。View Code 1 #include<stdio.h> 2 int main(){ 3 int n,k; 4 while( scanf("%d%d",&n,&k)==2 && (n+k) ){ 5 int ans=0; 6 whi 阅读全文
posted @ 2013-02-01 11:34 xxx0624 阅读(378) 评论(0) 推荐(0)