http://www.cogs.pro/cogs/problem/problem.php?pid=2507

时间限制:1 s   内存限制:256 MB

【题目描述】

成功找到了学长之后学姐感觉到有些饿,于是决定去附近的零食店给自己和学长买些零食。

焦作市的有n家零食店,由m条道路连接着这些零食店,每条道路都有自己的长度l,每家零食店都有自己的消费指数。

由于学姐是个穷B,所以去买零食的路上不能经过某些消费指数超过一定限度的店。

同时由于学姐体力有限,所以去买零食的过程中走的路程不能太长。

想来想去学姐决定去问学长买什么零食比较好,反正到最后都是学长吃╮(╯_╰)╭

在去问之前,学姐准备先做好准备,她把焦作市(所有零食店)的地图给了你,希望你能编出一个程序快速回答她从某个零食店出发,在上述限制下有多少家零食店可供她挑选。

【输入格式】

第一行三个正整数n,m,q,分别代表零食店数,道路数和询问数。

接下来一行n个正整数,第i个正整数vi代表第i家零食店的消费指数。

接下来m行,第i行三个正整数x,y,l,代表第i条道路连接编号为x和y的两个零食店,长度为l。

接下来q行第i行三个正整数s,c,d,代表第i个询问要求从s出发,所经过的零食店的消费指数不能超过c(除了起点和终点以外),且行走路程不超过d。

【输出格式】

一共q行,第i行一个整数代表在第i个询问的要求下有多少家零食店可供学姐挑选。

【样例输入】

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

【样例输出】

2
3

【提示】

样例中第一个询问能去编号为2/4的零食店。

第二个询问能去编号为1/3/5的零食店。

对于40%的数据,n≤10,m≤20,q=1。

对于70%的数据,m≤500,q≤10000。

对于100%的数据,n≤100,m≤10000,q≤1000000,vi,c,d≤10^9,1≤x,y,s≤n,l≤10^6。

利用floyd 第一重循环k,所有中间点的编号都小于k

本体对消费指数的限制恰好是中间点

所以讲点按消费指数由小到大排序

f[k][i][j] 从i到j,中间经过的点的消费指数<=k的消费指数的最短路

当消费指数限制为v时,二分找到第一个消费指数<=v的点a,

从点u出发,就是在f[a][u][]里找最短路<=某个数的点的个数

排序之后二分即可

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int f[101][101][101],dy[101],a[101];
struct node
{int cost,id;
}e[101];
void read(int &x)
{x=0; char c=getchar();while(!isdigit(c)) c=getchar();while(isdigit(c)) { x=x*10+c-'0'; c=getchar(); }
}
bool cmp(node p,node q)
{return p.cost<q.cost;
}
int main()
{freopen("snackstore.in","r",stdin);freopen("snackstore.out","w",stdout);int n,m,q;read(n); read(m); read(q);for(int i=1;i<=n;i++) read(a[i]),e[i].cost=a[i],e[i].id=i;sort(a+1,a+n+1);sort(e+1,e+n+1,cmp);for(int i=1;i<=n;i++) dy[e[i].id]=i;int u,v,w;for(int k=0;k<=n;k++)for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)f[k][i][j]=1e9+1;while(m--){scanf("%d%d%d",&u,&v,&w);u=dy[u]; v=dy[v];f[0][u][v]=f[0][v][u]=min(w,f[0][u][v]);}for(int i=0;i<=n;i++)for(int j=1;j<=n;j++)f[i][j][j]=0;for(int k=1;k<=n;k++)for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)f[k][i][j]=min(f[k-1][i][j],f[k-1][i][k]+f[k-1][k][j]);for(int i=0;i<=n;i++)for(int j=1;j<=n;j++)sort(f[i][j]+1,f[i][j]+n+1);while(q--){scanf("%d%d%d",&u,&v,&w);v=upper_bound(a+1,a+n+1,v)-a-1;u=dy[u];w=upper_bound(f[v][u]+1,f[v][u]+n+1,w)-f[v][u]-1;printf("%d\n",w-1);}
}

转载于:https://www.cnblogs.com/TheRoadToTheGold/p/7395897.html

COGS 2507 零食店相关推荐

  1. 大学生可以选择加盟零食店么

    大学生可以选择加盟零食店么?现在大学年年都在扩招,但社会上相应的工作岗位却无法跟随扩招的速度,这就造成了大学生无法正常就业的难题.既然无法就业就要想办法自己创业,休闲食品行业就是如今比较适合大学自主创 ...

  2. 投资开零食店谨防零食多这个骗子

    零食行业的繁荣发展,让其成为了投资市场上一个比较人们的行业,投资市场十分的火爆,目前,市场上出现了许多虚假的零食店加盟品牌,以虚假的信息,欺骗创业者,给创业者带来了很大的损失,零食多就是其中一个比较大 ...

  3. [noip测试]零食店(floyed+二分)

    snackstore.in snackstore.out 时间限制:1 s 内存限制:256 MB 题目描述 成功找到了学长之后学姐感觉到有些饿,于是决定去附近的零食店给自己和学长买些零食. 焦作市的 ...

  4. 零食店收银管理系统哪个好

    比如经营零食店的你,或多或少会出现以下这些情况: 散称混售.商品凑整.散称预包装对收银要求比较高; 自营店.加盟店较多的连锁门店,店铺分散面积广,采购配货必须经过统一的管理;门店会员基数大,但是无法维 ...

  5. 零食店用社群,2天吸引349人主动上门,收款63000元?

    互联网发达的今天,人人都可以构建自己的社群,也应该学会建立自己的社群. 社群运营背后的目的基本都是"变现",从而获得实际的回报. 1场好的社群营销活动,背后都有1套完善的流程,既可 ...

  6. 计算机毕业设计 SpringBoot+Vue食商城系统 零食购物平台系统 网红零食店铺线上交易平台系统Java Vue MySQL数据库 远程调试 代码讲解

  7. 新鲜零食=零食“新”市场+用户“鲜”生活

    文 | 陈小江 来源 | 螳螂财经(ID:TanglangFin) 这些天有点不一样. 几天前在螳螂财经读者群中,网友李霞(化名)跟大家吐槽说.在她楼下常逛的来伊份零食店中,接连几天都人数爆满,比往常 ...

  8. java毕业生设计晨光文具店进销存系统设计与开发计算机源码+系统+mysql+调试部署+lw

    java毕业生设计晨光文具店进销存系统设计与开发计算机源码+系统+mysql+调试部署+lw java毕业生设计晨光文具店进销存系统设计与开发计算机源码+系统+mysql+调试部署+lw 本源码技术栈 ...

  9. 南京三只松鼠java_又出新模式?三只松鼠南京首家品牌集合店开业

    距离2020年结束还有不到一周的时间!12月26日,南京首家三只松鼠品牌集合店落地虹悦城商场,赶在了小店2020年最后一批新开店,相较于以往有点"特别"的是,三只松鼠集团CEO章燎 ...

  10. 休闲零食加盟店项目该如何选择品牌?

    休闲零食加盟店项目该如何选择品牌?这是每一个想致力于休闲食品行业的创业人最常问的一个问题.休闲食品行业是一个门槛较低.经营模式相对简单的行业,但由于市场上的零食品牌繁多,同行业休闲食品加盟店也是明争暗 ...

最新文章

  1. Android Training - 使用IntentService运行任务(Lesson 2 - 发送任务给IntentService)
  2. Spring Boot 启动载入数据 CommandLineRunner
  3. Linux安装及管理程序——RPM和yum学会装软件超简单
  4. 运行Jenkins部署任务
  5. 设计素材模板丨极简风简历模板
  6. jpa入门 ,引自csdn感觉写的很全面
  7. SpringBoot、mybatis、Druid结合使用存储emoji图标
  8. bzoj1113[Poi2008]海报PLA
  9. 画数轴的步骤_上分助手北师大数学七年级上册第二章有理数第二节数轴详细拆解...
  10. mac 向mysql输入 数据_(mac系统下)mysql 入门
  11. 自然语言处理的会议、论文集下载
  12. EXCEL表格复制到空白的EXCEL表格变形 解决方法
  13. 云服务器装桌面后怎么连接,云桌面具体的安装步骤是怎样的
  14. 微信图片去除马赛克_怎么给图片打上马赛克(模糊处理、涂抹)
  15. redis开启rdb和aof后文件正确恢复
  16. mysql infile ignore_mysql导入数据load data infile用法
  17. struts2最近量产漏洞分析
  18. MAXwell应用报错提问:
  19. FFMPEG学习【libavcodec】:编解码器:硬件加速器桥:VDPAU解码器和渲染器
  20. 国产半桥驱动IC屹晶微_EG2014_搭建H桥_立创eda

热门文章

  1. 最简单的java代码【java基本语法】
  2. 【优化求解】基于蝙蝠算法求解最优目标matlab源码
  3. 埃及金字塔之谜最完美的解释
  4. Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)
  5. 2023考研王道计算机408数据结构+操作系统+计算机组成原理+计算机网络
  6. c语言math库正弦余弦函数
  7. 计算机人工智能专业大一新生入学前做点什么
  8. postSQL hash分表
  9. linux工作日志软件,Linux桌面日记本(RedNotebook)
  10. 流媒体传输协议浅析(三)可靠UDP传输方案