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. extjs6整合到web项目中

    最近有一个项目需要应用extjs作为前端界面,因此研究了一下如何将extjs 6引入到项目中.以下是操作步骤 extjs6下载地址 extjs 6有gpl版本的,下载地址https://www.sen ...

  2. 2013调试sql的方法

    view-sql server object explorer- 连接数据库-成功以后再服务器点击允许debug-在存储过程里面添加断点即可

  3. (Entity FrameWork)Code First to an Existing Database

    Pre-Requisites You will need to have Visual Studio 2010 or Visual Studio 2012 installed to complete ...

  4. 页面嵌套 Iframe 产生缓存导致页面数据不刷新问题

    最近遇到个比较古怪的问题:当页面嵌套多个 Iframe 时会出现 Iframe 里包含的页面无法看到最新的页面信息. 初步解决方案,在 Iframe 指向的页面地址后缀添加一个随机数或者时间戳.这样能 ...

  5. 【转】iOS开发——基本常识篇&各种控件默认高度

    原文:http://www.cnblogs.com/iCocos/p/4595614.html 各种控件默认高度   1.状态栏 状态栏一般高度为20像素,在打手机或者显示消息时会放大到40像素高,注 ...

  6. c# 串口发送接收数据

    /********************** 串口数据接收事件 *****************************/ private void SerialPort_DataReceived ...

  7. 设置contentType

    //定义编码 header( 'Content-Type:text/html;charset=utf-8 '); //Atom header('Content-type: application/at ...

  8. (hdu)1042 N! 大数相乘

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1042 Problem Description Given an integer N( ≤ ...

  9. c++动态绑定与静态绑定

    C++为了支持多态性,采用了动态绑定和静态绑定 相关概念: 对象的静态类型:对象在声明时采用的类型,编译时确定 对象的动态类型:目前所指对象的类型,在运行时确定 class B { } class C ...

  10. 九度OJ 1527 首尾相连数组的最大子数组和 -- 动态规划

    题目地址:http://ac.jobdu.com/problem.php?pid=1527 题目描述: 给定一个由N个整数元素组成的数组arr,数组中有正数也有负数,这个数组不是一般的数组,其首尾是相 ...