HDU1350 Taxi Cab Scheme (最小路径覆盖)
2015-08-22 20:23
453 查看
题意:m个顾客的乘车信息,表示几点上车,要从一个坐标到达另一个坐标,花费的时间是两点的曼哈顿距离,两次换乘至少间隔1分钟(再加上坐标的二者的坐标的距离),求最少的司机数目
思路:建图,以输入的信息为编号,如果时间满足的话,就连边。
思路:建图,以输入的信息为编号,如果时间满足的话,就连边。
#include<cstdio> #include<iostream> #include<algorithm> #include<cmath> #include<set> #include<map> #include<string> #include<cstring> #include<stack> #include<queue> #include<vector> #include<cstdlib> #define lson (rt<<1),L,M #define rson (rt<<1|1),M+1,R #define M ((L+R)>>1) #define cl(a,b) memset(a,b,sizeof(a)); #define LL long long #define P pair<int,int> #define X first #define Y second #define pb push_back #define fread(zcc) freopen(zcc,"r",stdin) #define fwrite(zcc) freopen(zcc,"w",stdout) using namespace std; const int maxn=505; const int inf=999999; vector<int> G[maxn]; int matching[maxn]; bool vis[maxn]; int num; bool dfs(int u){ int N=G[u].size(); for(int i=0;i<N;i++){ int v=G[u][i]; if(vis[v])continue; vis[v]=true; if(matching[v]==-1||dfs(matching[v])){ matching[v]=u; return true; } } return false; } int hungar(){ int ans=0; cl(matching,-1); for(int i=0;i<num;i++){ cl(vis,false); if(dfs(i))ans++; } return ans; } struct node{ int st,en; int a,b,c,d; bool operator<(const node&t) const{ return st<t.st; } }p[maxn]; int abs(int a){return a>0?a:-a;} int main(){ int T; scanf("%d",&T); while(T--){ int n; scanf("%d",&n); for(int i=0;i<n;i++){ int h,m; scanf("%d:%d %d%d%d%d",&h,&m,&p[i].a,&p[i].b,&p[i].c,&p[i].d); p[i].st=h*60+m; p[i].en=p[i].st+abs(p[i].a-p[i].c)+abs(p[i].b-p[i].d); } for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ if(p[i].en+abs(p[i].c-p[j].a)+abs(p[i].d-p[j].b)+1<=p[j].st){ G[i].pb(j); } } } num=n; printf("%d\n",num-hungar()); for(int i=0;i<maxn;i++){ G[i].clear(); } } return 0; }
相关文章推荐
- Actionbar以及Seachview设计
- Spring-管理bean
- poj 3083 搜索 DFS,BFS
- 检测乳腺癌细胞的有丝分裂的(4)
- LinuxC 遍历目录结构函数图解.
- 【二叉堆】k路归并问题(BSOJ1941)
- Shiny应用基础(4):数据与图像输出
- hdu1532
- C++ 常量折叠和C语言中const常量对比
- Java学习笔记,基础总结(一)
- 黑马程序员--Java基础学习(多线程)第十一天
- 费用流模板
- 我们被叫做90后 | 致青春(催泪好文,自备纸巾)
- 乞讨 间隔[a,b]在见面p^k*q*^m(k>m)中数号码
- ssh命令、ping命令、traceroute 命令所使用的协议
- 对输入字符进行HTML转义 OR 去HTML标签
- 【并查集】关押罪犯(BSOJ2809)
- linux centOS下安装R
- hdu 1085 Holding Bin-Laden Captive!
- poj 3687 拓扑逆排 @