BZOJ 2118 Dijkstra
思路:
经典题 不解释
找到最小的数mn
所有都是在mod mn的意义下 搞得
i->(i+a[i])%mn 边权为a[i]
//By SiriusRen
#include <queue>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long ll;
const int N=*,inf=0x3f3f3f3f;
int n,first[N],next[N],v[N],tot,minn=inf,a[],vis[N];
ll BMin,BMax,w[N],dis[N],ans;
void add(int x,int y,int z){w[tot]=z,v[tot]=y,next[tot]=first[x],first[x]=tot++;}
struct Node{int now,dis;}st,jy;
bool operator<(Node a,Node b){return a.dis>b.dis;}
priority_queue<Node>pq;
int main(){
memset(first,-,sizeof(first));
memset(dis,0x3f,sizeof(dis));
scanf("%d%lld%lld",&n,&BMin,&BMax);
for(int i=;i<=n;i++)scanf("%d",&a[i]),minn=min(minn,a[i]);
dis[]=;
for(int i=;i<=n;i++)
for(int j=;j<minn;j++)
add(j,(j+a[i])%minn,a[i]);
pq.push(st);
while(!pq.empty()){
Node t=pq.top();pq.pop();
if(vis[t.now])continue;
vis[t.now]=;
for(int i=first[t.now];~i;i=next[i])
if(dis[v[i]]>dis[t.now]+w[i])
dis[v[i]]=dis[t.now]+w[i],
jy.now=v[i],jy.dis=dis[v[i]],pq.push(jy);
}BMin--;
for(int i=;i<minn;i++){
if(dis[i]<=BMin)ans-=(BMin-dis[i])/minn+;
if(dis[i]<=BMax)ans+=(BMax-dis[i])/minn+;
}printf("%lld\n",ans);
}
BZOJ 2118 Dijkstra的更多相关文章
- 【BZOJ 2118】 墨墨的等式(Dijkstra)
BZOJ2118 墨墨的等式 题链:http://www.lydsy.com/JudgeOnline/problem.php?id=2118 Description 墨墨突然对等式很感兴趣,他正在研究 ...
- BZOJ.2118.墨墨的等式(思路 最短路Dijkstra 按余数分类)
题目链接 题意可以看做,用\(a_1,a_2,...,a_n\),能组成多少个\([L,R]\)中的数. (40分就是个完全背包) 首先如果\(k*a_i+x\)可以组成,那么\((k+1)*a_i+ ...
- 【BZOJ 2118】墨墨的等式
http://www.lydsy.com/JudgeOnline/problem.php?id=2118 最短路就是为了找到最小的$x$满足$x=k×a_{min}+d,0≤d<a_{min}$ ...
- bzoj 2118 墨墨的等式 - 图论最短路建模
墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+…+anxn=B存在非负整数解的条件,他要求你编写一个程序,给定N.{an}.以及B的取值范围,求出有多少B可以使等式存在非负整数解. Input ...
- BZOJ 2118 墨墨的等式(最短路)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2118 [题目大意] 求a1x1+a2y2+…+anxn=B在B的取值范围,有多少B可以 ...
- 数论+spfa算法 bzoj 2118 墨墨的等式
2118: 墨墨的等式 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 1283 Solved: 496 Description 墨墨突然对等式很感兴 ...
- BZOJ 2118 墨墨的等式(最短路)
很开拓眼界的题.. 题意:给出一个n元一次方程形如a1*x1+a2*x2...+an*xn=B,求满足解集为非负整数的B值在[L,R]范围内的种数.(n<=12,ai<=5e5,L< ...
- 【BZOJ 2118】 2118: 墨墨的等式 (最短路)
2118: 墨墨的等式 Description 墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+…+anxn=B存在非负整数解的条件,他要求你编写一个程序,给定N.{an}.以及B的取值范围,求 ...
- [图论训练]BZOJ 2118: 墨墨的等式 【最短路】
Description 墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+…+anxn=B存在非负整数解的条件,他要求你编写一个程序,给定N.{an}.以及B的取值范围,求出有多少B可以使等式存在 ...
随机推荐
- 查询数据表行数 然后循环查找表 添加数据到ITEMS
;i<tbBiao.Rows.Count;i++) { string TableName = (tbBiao.Rows[i]["Table"]).ToString(); tb ...
- 让System.Drawing.Bitmap可以在linux运行
.net core的bitmap使用的是以下类库,但无法在linux运行 https://github.com/CoreCompat/CoreCompat 在linux运行需要安装runtime.li ...
- Mysql命令mysql:连接Mysql数据库
mysql命令格式: mysql -h主机地址 -u用户名 -p用户密码 1) 连接到本机上的MYSQL首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p, ...
- 【原】Python学习_Django搭建环境及创建第一个项目
1.Window 平台安装 Python 下载安装包 https://www.python.org/downloads/windows/ 2.Pyhton环境变量配置 右键点击"计算机 ...
- RESTful API 学习【第1篇】
一. 什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” REST从资源的角 ...
- HDU1465 不容易系列之一&&HDU4535吉哥系列故事——礼尚往来
HDU1465不容易系列之一 Problem Description 大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了!做好“一件”事情尚且不易,若想永远成功而总从不失败,那更是难上加 ...
- Dijkstra算法模板
自己对Dijstra算法的理解是: 首先输入保存点,边的权值(注意无向图和有向图在保存时的区别). 将表示从起点st到顶点 i 的距离的d[ i ]数组的每一个值初始化为INF,令d[st] = 0. ...
- [网络收集]20190528华为数通网络工程师认证HCIA-VRP的操作指导思维导图
>> >0 VRP基础 >1 命令行基础 >2 文件系统基础 >3 VRP系统管理
- Restful传递数组参数的两种方式
第一种,直接传递数组 js直接传递数组 var data = ["123","456"];that.loadDictionarys(data).subscrib ...
- Linux下几种文件传输命令
Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具 ...