P4012 深海机器人问题(网络流24题-智慧限制边+最大费用最大流)

传送门

同一条边可以经过多次,但仅有第一次经过时能够获得价值,可以建图:存在一条流量为 1 1 1 价值为 w w w 的边和一条流量为 i n f inf inf 价值为 0 0 0 的边。

建边方式比较变态,最后的 a a a 个出发点和 b b b 个终止点套用超级源点和超级汇点即可。


参考代码

#include <bits/stdc++.h>
#define itn int
#define int long long
#define endl "\n"
#define PII pair<int, int>
using namespace std;
const int N = 1e5 + 10;
const int M = 5e4 + 10;
const itn inf = 0x3f3f3f3f;
const int mod = 1e9 + 7;
//const int mod = 998244353;

template <int N>
struct MCMF {
    struct E {
        int to, cap, val, inv;
    };
    vector<E> g[N];
    int dis[N], now[N], h[N], pre[N], preu[N];
    void add(int u, int v, int f, int w) {
        g[u].push_back({v, f, w, (int)g[v].size()});
        g[v].push_back({u, 0, -w, (int)g[u].size() - 1});
    }
    void dijkstra(int st) {
        priority_queue<pair<int, int>, vector<pair<int, int>>,
                       greater<pair<int, int>>>
            q;
        memset(dis, 0x3f, sizeof dis);
        memset(pre, -1, sizeof pre);
        memset(preu, -1, sizeof preu);
        dis[st] = 0;
        q.push({0, st});
        while (q.size()) {
            // auto [d, u] = q.top();
            auto qnow = q.top();
            int d = qnow.first, u = qnow.second;
            q.pop();
            if (dis[u] < d)
                continue;
            int x = 0;
            for (auto gnow : g[u]) {
                int v = gnow.to, f = gnow.cap, w = gnow.val, inv = gnow.inv;
                if (f && dis[v] > dis[u] + w + h[u] - h[v]) {
                    dis[v] = dis[u] + h[u] - h[v] + w;
                    pre[v] = x;
                    preu[v] = u;
                    q.push({dis[v], v});
                }
                x++;
            }
        }
    }
    pair<int, int> min_cost_max_flow(int st, int ed) {
        memset(h, 0, sizeof h);
        for (int flow = 0, cost = 0, res = inf;; res = inf) {
            dijkstra(st);
            if (dis[ed] > inf)
                return {flow, cost};
            for (int i = 0; i < N; i++) {
                h[i] += dis[i];
            }
            for (int i = ed; i != st; i = preu[i]) {
                res = min(res, g[preu[i]][pre[i]].cap);
            }
            flow += res;
            cost += res * h[ed];
            for (int i = ed; i != st; i = preu[i]) {
                g[i][g[preu[i]][pre[i]].inv].cap += res;
                g[preu[i]][pre[i]].cap -= res;
            }
        }
    }
};
MCMF<300> mcmf;
int id[20][20];
int n, k, s, t;
void solve() {
    int a, b, p, q;
    cin >> a >> b >> p >> q;
    s = 0, t = 280;
    int cnt = 0, x;
    for (int i = 0; i <= p; i++) {
        for (int j = 0; j <= q; j++) {
            id[i][j] = ++cnt;
        }
    }
    for (int i = 0; i <= p; i++) {
        for (int j = 0; j < q; j++) {
            cin >> x;
            // cout << id[i][j] << " " << id[i][j+1] << endl;
            mcmf.add(id[i][j], id[i][j + 1], 1, -x);
            mcmf.add(id[i][j], id[i][j + 1], inf, 0);
        }
    }
    for (int j = 0; j <= q; j++) {
        for (int i = 0; i < p; i++) {
            cin >> x;
            // cout << id[i][j - 1] << " " << id[i][j] << endl;
            mcmf.add(id[i][j], id[i + 1][j], 1, -x);
            mcmf.add(id[i][j], id[i + 1][j], inf, 0);
        }
    }
    for (int i = 1; i <= a; i++) {
        int u, v;
        cin >> x >> u >> v;
        // cout << id[u][v] << endl;
        mcmf.add(s, id[u][v], x, 0);
    }
    for (int i = 1; i <= b; i++) {
        int u, v;
        cin >> x >> u >> v;
        // cout << id[u][v] << endl;
        mcmf.add(id[u][v], t, x, 0);
    }

    cout << -mcmf.min_cost_max_flow(s, t).second << endl;
}

signed main() {
    ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    cout << fixed << setprecision(12);
    // init();
    int T = 1;
    // cin >> T;
    while (T--) {
        solve();
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 深海鱼餐厅项目的4P理论如下: 1. 产品(Product):深海鱼餐厅项目的主要产品是新鲜的深海鱼类食品和相关菜品。在这方面,该项目需要确保提供高品质、美味、有创意的菜品和食品,以吸引顾客并保持他们的满意度。 2. 价格(Price):深海鱼餐厅项目需要制定合理的价格策略,以吸引顾客并保持盈利。价格应该考虑到成本、竞争、品牌知名度和顾客需求等因素。 3. 促销(Promotion):深海鱼餐厅项目需要采取有效的促销措施来吸引顾客,增加品牌知名度和提高销售额。促销措施可以包括广告、促销活动、特价优惠、会员制度和社交媒体宣传等。 4. 地点(Place):深海鱼餐厅项目需要选择合适的地点,以便吸引到足够的顾客。在选择地点时,需要考虑到人量、竞争、交通、设施和租金等因素。此外,深海鱼餐厅项目还需要确保餐厅的环境和服务能够提供良好的用餐体验,以增加顾客满意度和忠诚度。 ### 回答2: 深海鱼餐厅项目可以运用4P理论,即产品(Product)、价格(Price)、渠道(Place)和推广(Promotion),来实现市场营销目标。 首先,产品是指深海鱼餐厅的核心内容。该餐厅可以提供精致的深海鱼料理,以新鲜,健康和独特的食材为主打。餐厅可以设计创意的菜单,包括各种海底珍品,以及提供舒适的用餐环境和优质的服务体验。为了吸引顾客,深海鱼餐厅还可以定期更新菜单,推出季节性特色菜或推广套餐。 其次,价格是决定顾客购买意愿的重要因素。深海鱼餐厅可以根据市场调研情况、成本以及竞争对手的价格,制定合理的价格策略。例如,可以提供不同价格档位的套餐,以满足不同顾客的需求。此外,定期的促销活动也可以吸引更多顾客。 渠道也是非常重要的一环。深海鱼餐厅可以选择在人量较大的商业区或旅游景点开设分店,以便更好地触达潜在顾客。此外,可以利用互联网平台,建立线上订餐系统,提供外卖服务,以满足不同顾客的需求。 最后,推广活动是深海鱼餐厅吸引顾客的关键。可以通过各种渠道进行宣传,例如在社交媒体上发布美食照片和顾客评价,与相关媒体合作推出深海鱼餐厅的特色报道等。此外,与旅行社、酒店等渠道合作,进行联合营销,也可以提升餐厅知名度和吸引更多顾客。 综上所述,深海鱼餐厅项目可以通过产品优化、合理定价、选择合适的渠道以及积极推广活动来实现市场营销目标。这样能够吸引并留住更多顾客,提升餐厅的竞争力和盈利能力。 ### 回答3: 深海鱼餐厅项目的4P理论指的是产品(Product)、价格(Price)、促销(Promotion)和渠道(Place)。 首先,对于产品来说,深海鱼餐厅项目需要提供高质量的海鲜菜肴,包括深海鱼类和其他海产品。这些产品应该保证新鲜、美味,并且能够提供独特的深海鱼相关的美食体验,以吸引顾客并提高顾客满意度。 其次,价格是吸引顾客的重要因素之一。深海鱼餐厅项目应该制定有竞争力的价格策略,考虑到成本、市场需求和竞争对手定价等因素,并确保价格能够吸引顾客但也能保证盈利。 促销策略是推广和宣传深海鱼餐厅项目的关键。通过采用各种宣传手段,如线上广告、社交媒体推广、优惠券等,可以吸引更多的顾客并提高品牌知名度。此外,深海鱼餐厅项目可以考虑与其他相关行业合作进行联合促销,如与酒店、旅游公司合作提供优惠套餐等。 最后,深海鱼餐厅项目需要选择合适的渠道来销售和分销产品。除了传统的就餐方式外,可以考虑通过线上平台进行外卖或预订服务,以满足更多顾客的需求。此外,与本地零售商合作销售深海鱼类产品也是一个可行的渠道选择。 综上所述,深海鱼餐厅项目的4P理论是企业成功运营的重要工具。通过优质的产品、竞争力的价格、有效的促销策略和合适的渠道选择,深海鱼餐厅项目可以吸引更多的顾客并实现商业目标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值