网络流Dinic

    用Bfs查找标号一条到终点的路径,然后用Dfs流。需要注意的是,流完以后不需要立即退出再查找,而是将当前点的流量减去流去的后继续。

#include<cstdio>
#include<algorithm>
using namespace std;
const int inf = 2147483647, N = 1013;
int d[N*N],lis[N*N],y_[N*N*6],v[N*N*6],next[N*N*6],g[N*N];
int ans,n,tot,S,T;
void ins(int i, int j, int z) {
    next[++tot] = g[i]; g[i] = tot; y_[tot] = j; v[tot] = z;
    next[++tot] = g[j]; g[j] = tot; y_[tot] = i; v[tot] = 0;
}
bool bfs(int r) {
    fill(d, d + T + 1, 0);
    d[lis[1] = r] = 1;
    for (int p1 = 1, q1 = 1; p1 <= q1; ++p1)
        for (int p = g[r = lis[p1]]; p; p = next[p])
            if (!d[y_[p]] && v[p]) d[lis[++q1] = y_[p]] = d[r] + 1;
    return d[T];
}
int dfs(int r, int flow) {
    if (r == T) return flow;
    int ret = 0;
    for (int t,p = g[r]; p && ret < flow; p = next[p])
        if (v[p] && d[y_[p]] == d[r] + 1) {
            ret += t = dfs(y_[p], min(v[p], flow - ret));
            v[p] -= t, v[p ^ 1] += t;
        }
    if (!ret) d[r] = 0;
    return ret;
}
int main() {
    tot = 1;
    scanf("%d", &n);
    S = n * n + n + 1;
    T = S + 1;
    for (int i = 1,xt; i <= n; ++i)
        for (int j = 1; j <= n; ++j) {
            scanf("%d", &xt);
            ins(S, (i - 1) * n + j, xt);
            ins((i - 1) * n + j, n * n + i, inf);
            ins((i - 1) * n + j, n * n + j, inf);
            ans += xt;
        }
    for (int i = 1,xt; i <= n; ++i) {
        scanf("%d", &xt);
        ins(n * n + i, T, xt);
    }
    while (bfs(S)) ans -= dfs(S, inf);
    printf("%d\n", ans);
    return 0;
}


中北大学 课程设计任务书 2014-2015 学年第 二 学期 "学 院: "软件学院 " "专 业: "软件工程 " "学 生 班 级: " " "学 生 姓 名: " "学号: " " "设 计 题 目: " 某汽车美容店管理系统数据库设计 " "起 迄 日 期: "6月8 日 ~ 6月 19 日 " "设 计 地 点: "软件学院机房 " "指 导 教 师: " " 下达任务书日期: 2015 年6月8日 课 程 设 计 任 务 书 "1.设计目的: " "按照关系型数据库的基本原理,根据数据库设计方法,综合运用所学的知识 " ",设计开发一个小型的数据库- 某汽车美容店管理系统数据库。熟练掌握相 " "关数据库的分析、设计、实现过程,以及在此数据库基础之上对存储过程及 " "触发器的设计及实现方法。 " "2.设计内容和要求(包括原始数据、技术参数、条件、设计要求等): " " " "设计内容: " "某汽车美容店管理系统数据库包括以下功能:实现美容项目及价格信息管理 " "(录入、修改、删除等);实现客户信息、客户车辆信息管理;实现美容登 " "记和收费管理;创建存储过程,统计指定月份各种美容项目的美容次数;创 " "建存储过程,统计指定年份各客户的美容次数;创建存储过程,统计指定月 " "份美容店的收入情况;具有数据备份和数据恢复功能。 " "要求: " "数据库系统要根据设计内容和要求进行分析与设计,要考虑系统的完整性约 " "束,系统中的数据表设计应合理、高效,尽量减少数据冗余。(规范到3NF或" "BCNF " "3.设计工作任务及工作量的要求〔包括课程设计计算说明书(论文)、图纸、" "实物样品等〕: " " " "根据设计内容和要求进行需求分析,分析出系统的主要功能和设计重点。 " "根据需求分析的内容在小组中合理划分模块。 " "数据库实现正确,相关存储过程及触发器设计合理、正确,能实现预期功能 " "。 " "提交软件阶段文档齐全,思路正确。 " "按格式要求,每人根据自己的工作写出课程设计说明书。 " 课 程 设 计 任 务 书 "4.主要参考文献: " "王珊、萨师煊. 数据库系统概论(第五版). 北京:高等教育出版社. . " "闪四清. SQL Server 2008基础教程.北京:清华大学出版社. . " "潘永惠. 数据库系统设计与项目实践:基于SQL Server 2008. 北京:科学出 " "版社. . " "刘金岭,冯万利,周泓. 数据库系统及应用实验与课程设计指导:SQL Server" "2008/21世纪高等学校计算机教育实用规划教材. 北京:清华大学出版社. . " "5.设计成果形式及要求: " " " "课程设计说明书 " "数据库、存储过程、触发器 " "6.工作计划及进度: " " " " " "2015年 " "需求分析 " "概念结构和逻辑结构设计 " "数据库实现 " "撰写课程设计说明书 " "验收答辩、成绩考核 " " " ----------------------- 数据库课程设计任务书-某汽车美容店管理系统数据库设计全文共3页,当前为第1页。 数据库课程设计任务书-某汽车美容店管理系统数据库设计全文共3页,当前为第2页。 数据库课程设计任务书-某汽车美容店管理系统数据库设计全文共3页,当前为第3页。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值