当前位置: 首页 > news >正文

简述网站开发的基本流程seo的优点

简述网站开发的基本流程,seo的优点,网站开发流程 原型设计,生态环境工程公司网站建设洛谷 P5201 [USACO19JAN] Shortcut G 题意 在一个带权无向连通图上,每个点有 a i a_i ai​ 只奶牛,奶牛会走最短路径到 1 1 1,如果有多条路径,选择字典序最小的,定义移动总时间为所有奶牛走到 1 1 1 的时间之和。…

洛谷 P5201 [USACO19JAN] Shortcut G

题意

在一个带权无向连通图上,每个点有 a i a_i ai 只奶牛,奶牛会走最短路径到 1 1 1,如果有多条路径,选择字典序最小的,定义移动总时间为所有奶牛走到 1 1 1 的时间之和。你可以修建一条从任意一点到 1 1 1 的边权为 t t t 的边,奶牛只有在平时走到 1 1 1 的路上看到这条边才会走。求最多能减少多少移动总时间。

题解

题目保证了对于每个点都有唯一的路径走到 1 1 1,那么可以建出一棵树,根节点为 1 1 1

然后统计一下子树中奶牛数量总和,对于每个点尝试建时间为 t t t 的新边,可以 O ( 1 ) O(1) O(1) 求出减少的移动总时间。设 j j j i i i 的子树中的节点,则减少的时间为 ( d i s i − t ) ∑ j a j (dis_i-t)\sum\limits_{j}a_j (disit)jaj

时间复杂度 O ( n ) O(n) O(n)

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 50005;
int n, m, t, a[N], vis[N];
LL dis[N], cnt[N], ans = 0;
int cn1 = 0, fi1[N], nx1[N << 1], to1[N << 1], va1[N << 1], cn2 = 0, fi2[N], nx2[N << 1], to2[N << 1];
void ad1(int u, int v, int w) {cn1++, nx1[cn1] = fi1[u], fi1[u] = cn1, to1[cn1] = v, va1[cn1] = w; cn1++, nx1[cn1] = fi1[v], fi1[v] = cn1, to1[cn1] = u, va1[cn1] = w;
}
void ad2(int u, int v) { cn2++, nx2[cn2] = fi2[u], fi2[u] = cn2, to2[cn2] = v; }
struct node {int r;LL dis;bool operator < (const node &T) const { return dis > T.dis; }
};
priority_queue<node> pq;
void dij(int r) {memset(dis, 0x3f, sizeof(dis)), dis[r] = 0;pq.push((node){r, 0});while (!pq.empty()) {node h = pq.top();pq.pop();if (vis[h.r]) continue;vis[h.r] = 1;for (int i = fi1[h.r]; i; i = nx1[i])if (dis[to1[i]] > dis[h.r] + va1[i])dis[to1[i]] = dis[h.r] + va1[i], pq.push((node){to1[i], dis[to1[i]]});}
}
void dfs(int r) {cnt[r] = a[r];for (int i = fi2[r]; i; i = nx2[i]) dfs(to2[i]);for (int i = fi2[r]; i; i = nx2[i]) cnt[r] += cnt[to2[i]];if (t < dis[r]) ans = max(ans, (dis[r] - t) * cnt[r]);
}
int main() {scanf("%d%d%d", &n, &m, &t);for (int i = 1; i <= n; i++) scanf("%d", &a[i]);for (int i = 1, u, v, w; i <= m; i++) scanf("%d%d%d", &u, &v, &w), ad1(u, v, w);dij(1);for (int i = 2; i <= n; i++) {int x = n;for (int j = fi1[i]; j; j = nx1[j])if (dis[i] == dis[to1[j]] + va1[j])x = min(x, to1[j]);ad2(x, i);}dfs(1);printf("%lld", ans);return 0;
}
http://www.fp688.cn/news/145559.html

相关文章:

  • 企业网站建设管理系统软件开发培训班
  • 诸城网站做的好的seo还可以做哪些推广
  • 苏州相城区最新通告郑州网站建设推广优化
  • 您身边的网站建设专家沈阳seo关键词排名优化软件
  • 上海最靠谱的网站建设google免费入口
  • 黄冈crm系统优化关键词的方法正确的是
  • 新疆建设监理协会网站深圳新闻今日最新
  • 厦门做网站最好的公司有哪些seo 视频
  • 有交做拼多多网站的吗网络营销渠道有哪三类
  • 一个服务器能放多少网站营销策划方案模板
  • 学校门户网站建设费用网页优化方法
  • 网站建设如何做好整体色彩搭配seo是什么意思如何实现
  • 做网站低价黑龙江网络推广好做吗
  • 石家庄网站建设刘华百度一下搜索网页
  • 住房建设网站武汉关键词包年推广
  • 北京漫步云端网站建设提升关键词排名软件哪家好
  • 清城区做模板网站建设最新新闻事件今天
  • 山东平阴疫情最新消息seo排名怎么优化软件
  • 官方网站下载免费软件百度投放平台
  • 怎么在自己的网站加关键词搜索引擎优化的基本方法
  • 网站访问者qq腾讯云域名
  • 潍坊网站建设 58搜狗收录批量查询
  • 电影网站如何做不侵权优化关键词具体要怎么做
  • 集团网站建设哪家更好全媒体广告加盟
  • 广州网站开发哪家好写软文平台
  • 专门做配电箱的网站推广平台 赚佣金
  • 举报网站建设情况总结百度的特点和优势
  • 哪建设网站好河南郑州最新消息今天
  • 网站客服漂浮广告代码佛山网站快速排名提升
  • 做网站数据分析架构it培训机构靠谱吗