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

制作一个赚钱的网站网站建设用什么程序

制作一个赚钱的网站,网站建设用什么程序,西安小程序开发费用,网站开发使用的框架一、心路历程 这一个题目写了三天,可以说是非常挣扎了,明明是例题,但是就是倔强着不去看书上的题解,WA了7次,TLE了4次。 写了不知道多少条测试用例,一遍一遍的过,一点一点的调试。 最后终于找到…

一、心路历程

这一个题目写了三天,可以说是非常挣扎了,明明是例题,但是就是倔强着不去看书上的题解,WA了7次,TLE了4次。

 写了不知道多少条测试用例,一遍一遍的过,一点一点的调试。

 最后终于找到了规则

二、思路

1、题目要求1到N,必须按照顺序排,那么我们就可以认为 对每个 i >1,存在 i -1 到 i 的 0 的斥力

2、我们每一条A到B的排斥力P,看作B到A引力力 P * (-1)

3、规则1中 斥力,和 输入的斥力,都按照第二条规则,转化引力,然后不考虑斥力

4、用 BellmanFord算法,对转换成的和输入的引力集合,判断是否存在负圈,存在直接输出-1

5、不存在负圈,则直接对转换成的和输入的引力集合使用dijkstra算法,起点是1,如果d[N]大于1000000007(每条边最大值乘以边数,加7是为了防止边界出错),则输出-2,否则输出d[N]。

三、代码

#include <iostream>
#include <vector>
#include <queue>
using namespace std;
struct Node
{int from, to, cost;Node(int from = 0, int to = 0, int cost = 0) : from(from), to(to), cost(cost) {}
};
vector<Node> nodes;
typedef pair<int, int> P;
vector<P> edges[1007];
int d[1007], N, inf = 0x3f3f3f3f, ML, MD, area[1007][1007];
bool used[1007];
void input()
{int from, to, cost;for (int i = 1; i <= ML; i++){scanf("%d%d%d", &from, &to, &cost);edges[from].push_back(P(cost, to));nodes.push_back(Node(from, to, cost));}for (int i = 1; i <= MD; i++){scanf("%d%d%d", &from, &to, &cost);edges[to].push_back(P(-cost, from));nodes.push_back(Node(to, from, -cost));}for (int i = 2; i <= N; i++){edges[i].push_back(P(0, i - 1));nodes.push_back(Node(i, i - 1, -1));}
}
bool bellmanFord(int s)
{bool flag = false;for (int i = 1; i <= N; i++){d[i] = inf;}d[s] = 0;for (int i = 1; i <= N; i++){for (int j = 0; j < nodes.size(); j++){if (d[nodes[j].from] + nodes[j].cost < d[nodes[j].to]){d[nodes[j].to] = d[nodes[j].from] + nodes[j].cost;if (i == N){flag = true;}}}}return flag;
}
void dijkstra(int s)
{for (int i = 1; i <= N; i++){d[i] = inf;used[i] = false;}d[s] = 0;priority_queue<P, vector<P>, greater<P>> que;que.push(P(0, s));while (!que.empty()){P current = que.top();que.pop();if (used[current.second] || current.first > d[current.second]){continue;}for (int i = 0; i < edges[current.second].size(); i++){P toEdge = edges[current.second][i];if (d[current.second] + toEdge.first < d[toEdge.second]){d[toEdge.second] = toEdge.first + d[current.second];que.push(P(d[toEdge.second], toEdge.second));}}}
}
void solve()
{if (bellmanFord(1)){printf("%d\n", -1);}else{dijkstra(1);if (d[N] > 1000000007){printf("%d\n", -2);}else{printf("%d\n", d[N]);}}
}
int main()
{scanf("%d%d%d", &N, &ML, &MD);input();solve();return 0;
}

 

http://www.yayakq.cn/news/146253/

相关文章:

  • 中装建设官方网站如何自主建设企业网站
  • 企业邮箱注册申请163免费苏州旺道seo
  • 集团网站策划方案品牌建设途径
  • 学ps做兼职的网站有哪些网页制作教程赵丰年第三版
  • 天津团购鲜花的网站建设东川网站制作
  • 网站建设及seo网页设计的原则
  • 平面设计的网站有哪些网站wordpress修改首页网址导航
  • 网站建设备案不通过中国建设银行个人登录查询入口
  • 张家港外贸型网站制作鞍山百姓网招聘信息
  • 网站建设名老薛主机多个域名WordPress
  • 一套网站开发需要多少钱网站颜色搭配网站
  • 国外做免费网站的c 做网站需要什么知识
  • 网站哪个语言好网站备案要多少天
  • 全能网站服务器discuz 转 wordpress
  • 有什么网站可以做电子版邀请函网站开发哈尔滨网站开发公司电话
  • 常州建设工程信息网站西安网站建设有那些公司
  • 网站建设cz35我想出租做房 请问哪个网站好些
  • 搭建英文网站私人可以买服务器吗
  • 人社部能力建设中心网站查看商标是否被注册官网
  • 如何自己建一个公司网站wordpress留言簿
  • 百度网站打开网站没制作好可以备案吗
  • 网站技术说明书模板网站建设及网页设计教案
  • 手机网站商场建设网站代理浏览器0
  • 深圳网站建设制作公司东莞品牌网站设计公司计公司
  • 网站建设历程电商网站建设服务平台
  • p2p商城网站建设方案网站开发主要做什么
  • 如何免费做网站详细点说罗湖附近公司做网站建设哪家好
  • 番禺制作网站设计网站建设验收单
  • 珠海企业建站模板小学最好的网站建设
  • 做天猫网站价格网络推广方式有哪些推广思路