摘要:
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26870思路:由于溢出问题,wa了半天,还以为构图错了呢,查了半天!一看到最大最小问题,就应该想到二分,二分最大距离,然后建图跑最大流验证。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define MAXN 222 8 #define MAXM 222222 9 #define inf 1que; 38 que.push... 阅读全文
摘要:
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26869思路:题目还是比较水的,由于点也有容量,则必须拆点,然后跑最大流。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define MAXN 222 8 #define MAXM 222222 9 #define inf 1que; 38 que.push(vt); 39 level[vt]=0; 40 ... 阅读全文
摘要:
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25902 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 typedef long long ll; 7 #define FILL(a,b) memset(a,b,sizeof(a)) 8 9 ll dp[77][77];10 int n;11 char str[77];12 13 ll dfs(int l,int r)14 {15 if(dp[l][r]!=-1)... 阅读全文
摘要:
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25887题目大意:给定的一个某进制下的排列,问它的全排列有多少个能够整除给定的十进制下的数字k。思路:记忆化搜索,dp[state][r]表示在某状态下被k除余数为r有多少个。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define FILL(a,b) memset(a,b,sizeof(a)) 8 typedef long long ll; 9 阅读全文
摘要:
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25844思路:首先预处理出点在同一直线上的所有的点集状态(dp[i][j]),然后记忆化搜索。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define inf 1<<30 7 #define FILL(a,b) memset(a,b,sizeof(a)) 8 9 struct Point{10 int x,y;11 }point[17];12 13 int 阅读全文