Description

CX是要赶去上课,为了不迟到必须要以最短的路径到达教室,同时CX希望经过的路上能看到的学妹越多越好。现在把地图抽象成一个无向图,CX从1点出发,教室在N号点,告诉每个点上学妹的数量,每条边的长度。请你求出CX以最短路径赶到教室最多能看到多少学妹。

Input

多组输入数据(最多20组),输入到文件结束。

每组数据第一行两个正整数N,M其中N代表点的个数(2<=N<=1000),M代表边的个数(1<=M<=10000)。

接下来一行N个数,代表着1~N每个点上学妹的个数,(0<=Ni<=50)。 接下来M行,每行三个数A B C(1<=A,B<=N,0<c<=100)代表A,B间有边,长度为C。(可能存在重边)

Output

输出CX以最短距离从1到n的情况下能看到的最多学妹数量,若从点1无法到达点N输出-1。

Sample Input

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

Sample Output

8

HINT

CSU_ZZY

Source

CSU Monthly 2013 Oct.

最短路的题;

每次找到距离最小的点,如果有多个点,找到学妹最多的那个;

松弛的时候,将接下来的点的路径变短,如果路径相同,增加学妹的数量;

代码:

 #include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 1005
#define inf 10000000
using namespace std; int xuemei[maxn],map[maxn][maxn],d[maxn],dxuemei[maxn];
bool vis[maxn]; int main()
{
// freopen("new.txt","r",stdin);
int n,m,dd,x,y;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(int i=; i<=n; i++)scanf("%d",&xuemei[i]);
memset(map,0x1f,sizeof map);
for(int i=; i<=m; i++)
{
scanf("%d%d%d",&x,&y,&dd);
if(dd>map[x][y])continue;
map[x][y]=dd;
map[y][x]=dd;
}
memset(vis,,sizeof vis);
for(int i=; i<=n; i++)
{
d[i]=(i==?:inf);
dxuemei[i]=(i==?xuemei[]:);
}
for(int i=; i<=n; i++)
{
y=inf;
int t=;
for(int j=; j<=n; j++)
if(!vis[j]&&d[j]<y)
{
x=j;
y=d[j];
t=dxuemei[j];
}
else if(!vis[j]&&d[j]==y&&dxuemei[j]>=t)
{
x=j;
y=d[j];
t=dxuemei[j];
}
vis[x]=;
for(int j=; j<=n; j++)
if(d[j]>d[x]+map[x][j])
{
d[j]=d[x]+map[x][j];
dxuemei[j]=dxuemei[x]+xuemei[j];
}
else if(d[j]==d[x]+map[x][j])
dxuemei[j]=max(dxuemei[j],dxuemei[x]+xuemei[j]);
}
if(d[n]==inf)puts("-1"); else printf("%d\n",dxuemei[n]);
}
return ;
}

csu 10月 月赛 D 题 CX and girls的更多相关文章

  1. csu 10月 月赛 H 题 A Very Hard Problem

    Description CX老湿经常被人黑,被黑得多了,自己也就麻木了.于是经常听到有人黑他,他都会深情地说一句:禽兽啊! 一天CX老湿突发奇想,给大家出了一个难题,并且声称谁能够准确地回答出问题才能 ...

  2. csu 10月 月赛 I 题 The Contest

    Description 殷犇有很多队员.他们都认为自己是最强的,于是,一场比赛开始了~ 于是安叔主办了一场比赛,比赛有n个题目,每个题目都有一个价值Pi和相对能力消耗Wi,但是有些题目因为太坑不能同时 ...

  3. csu 10月 月赛 J 题

    Description CSU又到了一年中评奖学金的时候了……各大学霸都或多或少地拿到了各种奖学金(你们自己看着办吧). 在这里,评奖学金有个很奇怪的规矩——每个同学得到的奖学金数一定满足相邻的两个非 ...

  4. csu 10月 月赛 A 题

    Welcome to CSU OnlineJudge Problem A: Small change Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 15 ...

  5. csu 10月 月赛 F 题 ZZY and his little friends

    一道字典树异或的题,但是数据比较水,被大家用暴力给干掉了! 以前写过一个类似的题,叫做the longest xor in tree: 两个差不多吧! 好久没写字典树了,复习一下! 代码: #incl ...

  6. csu 10月 月赛 B 题 Scoop water

    一个卡特兰数的应用: 卡特兰数主要有以下几个用途: 1.不同的出栈入栈数: 2.n个点组成的不同的二叉树的数目: 3.凸多边形的三角剖分划分: 4.括号化问题: 通项公式是:h(n) = C(2n-2 ...

  7. Contest2037 - CSU Monthly 2013 Oct(中南大学2013年10月月赛水题部分题解)

    Problem A: Small change 题解:http://www.cnblogs.com/crazyapple/p/3349469.html Problem B: Scoop water 题 ...

  8. 【LGR-054】洛谷10月月赛II

    [LGR-054]洛谷10月月赛II luogu 成功咕掉Codeforces Round #517的后果就是,我\(\mbox{T4}\)依旧没有写出来.\(\mbox{GG}\) . 浏览器 \( ...

  9. CSU 8月月赛 Decimal 小数化分数

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1303 这个OJ很容易跪所以我贴一下题目 Description 任意一个分数都是有理数,对于任意一 ...

随机推荐

  1. jhipster

    Client side: yeoman,grunt,bower,angularjs Server side: maven,spring,spring mvc rest,spring data jpa

  2. 解决DataTable中的DataColumn类型默认为int类型时, 导致不能修改其列值为其他类型的解决办法

    问题起因: 扔给数据库一条select * from [表名] , 得到一个DataTable, 发现有一列status状态的DataColumn的类型是int,然后我想换成字典表里的文字描述,然后就 ...

  3. C#Combobox显示名称保存代码

    private void Form1_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add ...

  4. ThinkPHP函数详解:R方法

    R方法用于调用某个控制器的操作方法,是A方法的进一步增强和补充.关于A方法的用法见这里.R方法的调用格式:R('[项目://][分组/]模块/操作','参数','控制器层名称') 例如,我们定义了一个 ...

  5. ASP.NET MVC(三) TypeScript

    TypeScript 是微软开发的 JavaScript 的超集,TypeScript兼容JavaScript,可以载入JavaScript代码然后运行.TypeScript与JavaScript相比 ...

  6. JavaScript 计算两个颜色叠加值

    function multiply(rgb1, rgb2) { var result = [], i = 0; for( ; i < rgb1.length; i++ ) { result.pu ...

  7. oracle 11g不能连接报ORA-12537+ora-609解决

    操作系统: windows2008 数据库:oracle11g 问题发生:一套正常跑了一年的应用系统,忽然无法连接上数据库,但是另外一个应用可以正常链接,数据入库正常. 数据库服务器端查看: 使用 l ...

  8. linux下shell编程示例-获取进程id

    今天初步学习了一下linux下的shell编程,简单记录一下测试用例 1.编辑shell脚本文件如下: #!/bin/bashecho "hello bash linux"echo ...

  9. 《JavaScript高级程序设计》 阅读计划

    第一周       第1章 JavaScript简介   1 第2章 在Html中使用JavaScript 1 第3章 基本概念   3         第二周       第4章 变量.作用域和内存 ...

  10. spark - 从HDFS加载文件并分析

    scala> val file=sc.textFile("/workspace/bpUserinfo_logs/bpUserinfo_20160212.log") scala ...