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

网站页面建设方案书模板汽车品牌大全汽车网

网站页面建设方案书模板,汽车品牌大全汽车网,可以做点赞的网站,房地产微网站模板题目描述 小 C 是 F 国的总统,尽管这个国家仅存在于网络游戏中,但他确实是这个国家的总统。 F 国由 n 个城市构成,这 n 个城市之间由 n−1 条双向道路互相连接。保证从任意一个城市出发,都能通过这 n−1 条双向道路,…

题目描述

小 C 是 F 国的总统,尽管这个国家仅存在于网络游戏中,但他确实是这个国家的总统。

F 国由 n 个城市构成,这 n 个城市之间由 n−1 条双向道路互相连接。保证从任意一个城市出发,都能通过这 n−1 条双向道路,到达任意一个城市。

当然,通过这些双向道路是要收费的。通过第 i 条双向道路,需要花费 ci​ 元。我们称 ci​ 为第 i 条双向道路的费用。

我们定义 cost(x,y) 表示从城市 x 到城市 y 的简单路径上,所有经过的双向道路的费用之和。特殊地,当 x=y 时,cost(x,y)=0。

为了促进 F 国发展,小 C 新建了一个城市 n+1。现在他需要再新建一条双向道路,使得城市 n+1 也可以通过这 n 条双向道路到达任意一个城市。

他共有 q 个新建道路的方案,每个方案会给定两个参数 ki​,wi​;对于每一个方案,你需要求出在新建一条连接城市 ki​ 和城市 n+1 且费用为 wi​ 的双向道路后,所有 cost(i,j) 之和,即 \sum_{i=1}^{n+1}\sum_{j=1}^{n+1}cost(i,j)

由于答案可能很大,所以你只需要输出答案对 998244353 取模的结果。

方案之间相互独立,也就是说所有方案不会影响现有的道路,这些方案不会真正被施行。

输入格式

第一行两个整数 n,q。

接下来 n−1 行,第 i 行三个整数 ui​,vi​,ci​,表示存在一条连接城市 ui​ 和城市 vi​ 的双向道路,其费用为 ci​。

接下来 q 行,第 i 行两个整数 ki​,wi​,表示一个新建道路的方案。

输出格式

共 q 行,每行一个整数,第 i 行的整数表示在新建一条连接城市 ki​ 和城市 n+1 且费用为 wi​ 的双向道路后,所有 cost(i,j) 之和对 998244353 取模的结果,即 \sum_{i=1}^{n+1}\sum_{j=1}^{n+1}cost(i,j)mod998244353。

输入输出样例

输入 #1

4 2
2 1 3
3 2 2
4 2 4
1 2
2 2

输出 #1

100
88

输入 #2

9 5
2 3 6
6 1 4
5 2 10
2 4 1
9 1 9
2 8 3
1 2 3
7 4 8
4 9
7 3
6 1
9 7
2 1

输出 #2

1050
1054
970
1148
896

说明/提示

【样例解释 #1】

在新建一条连接城市 1 和城市 5 且费用为 2 的双向道路后,F 国的道路如下图所示:

例如,此时 cost(4,5)=9,cost(1,3)=5。

容易求得此时 \sum_{i=1}^{n+1}\sum_{j=1}^{n+1}cost(i,j)=100。

【样例 #3】

见附加文件中的 city/city3.in 与 city/city3.ans

该样例满足测试点 4 的限制。

【样例 #4】

见附加文件中的 city/city4.in 与 city/city4.ans

该样例满足测试点 11 的限制。

【样例 #5】

见附加文件中的 city/city5.in 与 city/city5.ans

该样例满足测试点 14 的限制。

【样例 #6】

见附加文件中的 city/city6.in 与 city/city6.ans

该样例满足测试点 20 的限制。

【数据范围】

对于 100% 的数据,2≤n≤2×10^{5},1≤q≤2×10^{5},1≤ui​,vi​,ki​≤n,1≤ci​,wi​≤10^{6},保证从任意一个城市出发,都能通过原本存在的 n−1 条双向道路,到达任意一个城市。

测试点编号n≤q≤特殊性质
1∼38080
4∼750005000
8∼10500010^{5}
11∼1310^{5}10^{5}A
14∼1610^{5}10^{5}B
17∼2010^{5}10^{5}

特殊性质 A:保证对于所有的 1≤i<n,都有 ui​=i,vi​=i+1。

特殊性质 B:保证对于所有的 1≤i≤q,都有 ki​=1。

附件下载

city数据 1.24MB

参考代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+5;
const int mod=998244353;
int tot,d[N],size[N],a1,sum[N],w[N],h[N*2],to[N*2],ne[N*2],n,m,ans;
void add(int a,int b,int c)
{tot++;ne[tot]=h[a];h[a]=tot;to[tot]=b;w[tot]=c;
}
void dfs1(int u,int fa)
{size[u]=1;for(int i=h[u];i;i=ne[i]){int v=to[i];if(fa==v)continue;dfs1(v,u);d[u]=(d[u]+d[v]+w[i]*size[v])%mod;size[u]+=size[v];}
}
void dfs2(int u,int fa)
{for(int i=h[u];i;i=ne[i]){int v=to[i];if(v==fa)continue;d[v]=(d[u]-size[v]*w[i]%mod+w[i]*(n-size[v])%mod+mod)%mod;dfs2(v,u);}
}
signed main()
{ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);int a,b,c;cin>>n>>m;for(int i=1;i<n;i++){cin>>a>>b>>c;add(a,b,c);add(b,a,c);}dfs1(1,0);
//	cout<<d[1]<<'\n';dfs2(1,0);for(int i=1;i<=n;i++)ans=(ans+d[i])%mod;for(int i=1;i<=m;i++){cin>>a>>b;int k=(d[a]+n*b)%mod;k=k*2%mod;cout<<(k+ans)%mod<<'\n';}return 0;
} 

http://www.dtcms.com/wzjs/564939.html

相关文章:

  • 电子商务网站建设核心网站上截小屏幕 怎么做
  • 自己搞个网站网络推广方法与技巧
  • 手机网站设计手机壳尺寸一览表泗阳做网站设计
  • 网站开发和网站建设厦门 外贸商城网站制作
  • 如何网站建设策划方案网页购买
  • 网站管理和维护新手建站
  • 做网站后的总结简述企业建网站的步骤
  • 商业网站运营成本网站建设沟通准备
  • 做网站外包给淘宝好吗wordpress store
  • 做复刻衣服买网站wordpress无缝截图
  • 做网站后端需要掌握什么技术徐州网架公司
  • 特定网站开发谁可以做网站优化排名推广
  • ...东莞网站公司如果建设淘宝导购网站
  • 个人 可以做社交网站关于网页设计的论文题目
  • 长城宽带做网站做网站公司郑州郑州的网站建设公司
  • 一个网站可以做多少关键字敖汉旗住房和城乡建设局网站
  • 汉口网站建设 优帮云电脑网站制作教程
  • 网站视差怎么做wordpress做定制T恤的网站
  • 沈阳网官方网站做彩票网站需要境外
  • 江苏建设行政主管部门网站python电商网站开发
  • 商城网站方案模板智能化建设网站
  • 聊城做网站建设ui界面设计说明范文
  • 网站建设怎样接业务北京网站页设计制作
  • 汕头电商网站建设景观设计公司名称
  • 网站建设多少钱宋柯怎么做阿里巴巴国际网站首页
  • 云南做网站公司哪家好网站做优化有必要吗
  • html网站二维码悬浮怎么做微信公众号人工服务电话
  • 做网站在阿里云买什么软件长春生物新冠疫苗
  • 高端网站建设公司零零wordpress 单栏 主题
  • 网站怎么做配置文件夹怀化网站优化加徽信xiala5效果好