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

在什么文件中加入什么代码告诉搜索引擎蜘蛛网站地图的文件位置?/网站优化网站优化

在什么文件中加入什么代码告诉搜索引擎蜘蛛网站地图的文件位置?,网站优化网站优化,成都住建局官网首页,五指山住房建设局网站历届试题 大臣的旅费 时间限制:1.0s 内存限制:256.0MB 问题描述 很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。 为节省经费,T国的大臣们经过思…

历届试题 大臣的旅费
时间限制:1.0s 内存限制:256.0MB
问题描述
很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。

为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。

J是T国重要大臣,他巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地到另一个城市成了J最常做的事情。他有一个钱袋,用于存放往来城市间的路费。

聪明的J发现,如果不在某个城市停下来修整,在连续行进过程中,他所花的路费与他已走过的距离有关,在走第x千米到第x+1千米这一千米中(x是整数),他花费的路费是x+10这么多。也就是说走1千米花费11,走2千米要花费23。

J大臣想知道:他从某一个城市出发,中间不休息,到达另一个城市,所有可能花费的路费中最多是多少呢?

输入格式
输入的第一行包含一个整数n,表示包括首都在内的T王国的城市数

城市从1开始依次编号,1号城市为首都。

接下来n-1行,描述T国的高速路(T国的高速路一定是n-1条)

每行三个整数Pi, Qi, Di,表示城市Pi和城市Qi之间有一条高速路,长度为Di千米。

输出格式
输出一个整数,表示大臣J最多花费的路费是多少。

样例输入1
5
1 2 2
1 3 1
2 4 5
2 5 4
样例输出1
135
输出格式
大臣J从城市4到城市5要花费135的路费
ps: 不重复经过大城市,求任意两点之间边权的最大总和,很明显要使用DFS。一开始枚举各个起点做深搜,但提交的结果显示最后一个评测点超时了,所以还需要优化。如果一开始就能知道最长边权值和的路径的起点或终点就好了,这样再做一次深搜就可以了。查阅资料,有以下的结论

  • 设s-t为最长路径,从任意一点u出发搜到的最远的点一定是s、t中的一点,然后在从这个最远点开始搜,就可以搜到另一个最长路的端点,即用两遍搜索(DFS或BFS)就可以找出树的最长路。
    证明请参考:树的直径(最长路) 的详细证明
    第一次code:
#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
const int MAXV = 1000;
int maxt;
struct Node
{int v;int w;Node(int _v, int _w):v(_v),w(_w){}
};
bool visited[MAXV] = {false};
vector<Node>Adj[MAXV];
void DFS(int u, int mon)//u为当前访问的顶点标号,depth为深度
{visited[u] = true;if(maxt < mon)maxt = mon;for(int i = 0; i < Adj[u].size(); i++){//对从u出发可以到达的所有顶点vint v = Adj[u][i].v;if(visited[v] == false){DFS(v,mon+Adj[u][i].w);}}
}void DFSTrave(int n)
{//遍历图Gfor(int u = 1; u <= n; u++){int mon = 0;memset(visited, 0, sizeof visited);if(visited[u] == false){DFS(u,mon);}}
}
int main()
{ios::sync_with_stdio(false);int n;while(cin>>n){memset(visited, 0, sizeof visited);for(int i = 1; i <= n; i++)Adj[i].clear();int b, e, w;maxt = 0;for(int i = 0; i < n - 1; i++){cin>>b>>e>>w;Adj[b].push_back(Node(e,w));Adj[e].push_back(Node(b,w));}DFSTrave(n);int ans = (maxt + 10 + 11) * maxt / 2;cout<<ans<<endl;}return 0;
}

最终code:

#include<iostream>
#include<cstring>
#include<cstdio>
#include<vector>
using namespace std;
const int MAXV = 10005;
int maxt;
struct Node
{int v;int w;Node(int _v, int _w):v(_v),w(_w){}
};
bool visited[MAXV] = {false};
vector<Node>Adj[MAXV];
int endt;
void DFS(int u, int mon)//u为当前访问的顶点标号,depth为深度
{visited[u] = true;if(maxt < mon){endt = u;maxt = mon;}for(int i = 0; i < Adj[u].size(); i++){//对从u出发可以到达的所有顶点vint v = Adj[u][i].v;if(visited[v] == false){DFS(v,mon+Adj[u][i].w);}}
}
void DFSTrave(int n)
{//遍历图Gfor(int u = 1; u <= n; u++){int mon = 0;if(visited[u] == false){DFS(u,mon);}}memset(visited, 0, sizeof visited);DFS(endt, 0);
}
int main()
{//ios::sync_with_stdio(false);int n;while(~scanf("%d",&n)){memset(visited, 0, sizeof visited);for(int i = 1; i <= n; i++)Adj[i].clear();int b, e, w;maxt = 0;for(int i = 0; i < n - 1; i++){scanf("%d%d%d",&b,&e,&w);Adj[b].push_back(Node(e,w));Adj[e].push_back(Node(b,w));}DFSTrave(n);int ans = (maxt + 10 + 11) * maxt / 2;printf("%d\n",ans);}return 0;
}

其实在最终通过全部评测点的过程还发生一个错误,我的数组开太小了,只有1000,但是评测结果不给RE,而是TLE, 有点坑呢(╰(`□′)╯ ),最后直接开10005过了。

http://www.jmfq.cn/news/5277043.html

相关文章:

  • 网站信息服务费怎么做凭证/安徽搜索引擎优化seo
  • 建网站需要多少钱2017/信息推广
  • 北京网站建设升上去/杭州网站
  • 传奇网页游戏开服/sem和seo是什么职业岗位
  • 平面网页设计培训/seo优化厂商
  • 北京pk10网站建设/seo网络推广是干嘛的
  • 南通网站建设公司排名/谷歌浏览器app
  • 做批发童车网站有哪些/seo诊断优化方案
  • 石景山成都网站建设/上海搜索seo
  • 网站文件怎么做/网站seo关键词排名推广
  • 网站开发架构mvc/百度seo是什么
  • java网站做微信分享/互联网登录的网站名
  • 沈阳外贸网站制作公司/国内最近发生的重大新闻
  • 政务网站开发方案/seo公司的选上海百首网络
  • 个人外贸网站/seo深圳优化
  • cms哪个好用/seo初级入门教程
  • 开发公司资质审查用假资料后果/seo入门培训学校
  • 怎么做展示型网站/大连网站排名推广
  • 做设计的一般在什么网站找素材/百度竞价托管一月多少钱
  • 外贸网站建设广州/网站推广基本方法是
  • 安徽建设厅网站进不去/做企业网站建设公司哪家好
  • 兼职网站建设 开源/营销心得体会感悟300字
  • 宿迁建设企业网站/排名优化公司
  • 微商城手机网站设计公司/网络广告的发布方式包括
  • 网站怎么做app吗/网店运营培训
  • 邮轮哪个网站是可以做特价/百度明星人气排行榜
  • 南通优化网站费用/怎样做网络推广营销
  • 网站建设与管理好吗/微信客户管理系统
  • 带dede后台的整套网站源码 数据库连接不上/百度搜索引擎收录入口
  • 做企业网站用哪个软件/爱站网 关键词挖掘工具站长工具