LightOJ 1149 - Factors and Multiples【二分图最大匹配】
2015-08-26 19:38
459 查看
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1149
代码:
代码:
[code]#include <iostream> #include <algorithm> #include <set> #include <map> #include <string.h> #include <queue> #include <sstream> #include <stdio.h> #include <math.h> #include <stdlib.h> using namespace std; int n, m; int p[1000][1000]; int book[1000]; int match[1000]; int dfs(int u) { int i; for (i = 1;i <= m;i++) { if (book[i] == 0 && p[u][i] == 1) { book[i] = 1; if (match[i] == 0 || dfs(match[i])) { match[i] = u; return 1; } } } return 0; } int a[110], b[110]; int main() { int t; int cases = 1; scanf("%d", &t); while (t--) { scanf("%d",&n); for (int i = 1;i <= n;i++) scanf("%d", &a[i]); scanf("%d", &m); for (int i = 1;i <= m;i++) scanf("%d", &b[i]); int ans = 0; memset(match, 0, sizeof(match)); memset(p, 0, sizeof(p)); for (int i = 1;i <= n;i++) for (int j = 1;j <= m;j++) if (b[j] % a[i] == 0) p[i][j] = 1; for (int i = 1;i <= n;i++) { memset(book, 0, sizeof(book)); if (dfs(i)) ans++; } printf("Case %d: %d\n", cases++, ans); } return 0; }
相关文章推荐
- Cocos2dx学习笔记3:基础概念介绍
- 人工智能进入股市操盘获利巨大激荡股市
- 当互联网遇上家装,十大家装O2O混战
- c++ 可重载运算符和不可重载运算符
- MySQL Query 的优化—合理设计并利用索引
- android studio 导入源码
- Kth Largest Element in an Array
- css3的选择器
- See You Again
- 线性筛
- [leetcode-205]Isomorphic Strings(java)
- MongoDB学习八--MongoDB的索引操作
- Android常用控件之AutoCompleteTextView、Spinner
- angularjs自动加载和手动加载
- A Simple Problem with Integers(树状数组HDU4267)
- UVa 1153:Keep the Customer Satisifed(贪心)
- bzoj2595[Wc2008]游览计划
- KendoUI之kendoGrid服务端分页
- A Simple Problem with Integers(树状数组HDU4267)
- Configure,Makefile.am, Makefile.in, Makefile文件之间关系(转)