题目链接

考虑将所有的\(a_1x_1+a_2x_2+……+a_nx_n=B\)对\(a_1\)取模,那么所有可达到的B就分为了\(0\)~\(a_1-1\)类

如果对\(a_1\)取模为\(k\)的一类\(B\)中最小的\(B\)为\(dis[k]\),那么\(dis[k]+a_1,dis[k]+a_1*2,……\)都是可以取到的,

所以对于每一类求最短路,最后统计答案就行了

#include<iostream>
#include<cstring>
#include<cstdio>
#define int long long
using namespace std; const int N=15;
const int M=500010;
const int INF=0x3f3f3f3f; int n,a[N],Bmin,Bmax,am=INF;
int dis[M],que[5000010],head,tail;
bool inque[M]; signed main()
{
scanf("%lld%lld%lld",&n,&Bmin,&Bmax);
for(int i=1;i<=n;++i)
scanf("%lld",&a[i]),am=min(am,a[i]);
memset(dis,0x3f,sizeof(dis));
dis[0]=0;
que[++tail]=0;
while(head<tail){
int u=que[++head];
inque[u]=0;
for(int i=1;i<=n;++i){
int v=(u+a[i])%am;
if(dis[v]>dis[u]+a[i]){
dis[v]=dis[u]+a[i];
if(!inque[v]){
que[++tail]=v;
inque[v]=1;
}
}
}
}
int ans=0;
for(int i=0;i<am;++i)
if(dis[i]<=Bmax){
ans+=(Bmax-dis[i])/am+1;
if(dis[i]<Bmin)
ans-=(Bmin-1-dis[i])/am+1;
}
printf("%lld\n",ans);
return 0;
}

【luoguP2371】 [国家集训队]墨墨的等式的更多相关文章

  1. 洛谷P2371 [国家集训队]墨墨的等式

    P2371 [国家集训队]墨墨的等式 题目描述 墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+-+anxn=Ba_1x_1+a_2y_2+-+a_nx_n=Ba1​x1​+a2​y2​+-+a ...

  2. 【同余最短路】【例题集合】洛谷P3403 跳楼机/P2371 墨墨的等式

    接触到的新内容,[同余最短路]. 代码很好写,但思路不好理解. 同余最短路,并不是用同余来跑最短路,而是通过同余来构造某些状态,从而达到优化时间空间复杂度的目的.往往这些状态就是最短路中的点,可以类比 ...

  3. BZOJ2118墨墨的等式[数论 最短路建模]

    2118: 墨墨的等式 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 1317  Solved: 504[Submit][Status][Discus ...

  4. Bzoj2118 墨墨的等式

    Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 1488  Solved: 578 Description 墨墨突然对等式很感兴趣,他正在研究a1x1+ ...

  5. 数论+spfa算法 bzoj 2118 墨墨的等式

    2118: 墨墨的等式 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 1283  Solved: 496 Description 墨墨突然对等式很感兴 ...

  6. bzoj 2118: 墨墨的等式

    Description 墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+-+anxn=B存在非负整数解的条件,他要求你编写一个程序,给定N.{an}.以及B的取值范围,求出有多少B可以使等式存在 ...

  7. bzoj 2118 墨墨的等式 - 图论最短路建模

    墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+…+anxn=B存在非负整数解的条件,他要求你编写一个程序,给定N.{an}.以及B的取值范围,求出有多少B可以使等式存在非负整数解. Input ...

  8. 【BZOJ2118】墨墨的等式(最短路)

    [BZOJ2118]墨墨的等式(最短路) 题面 BZOJ 洛谷 题解 和跳楼机那题是一样的. 只不过走的方式从\(3\)种变成了\(n\)种而已,其他的根本没有区别了. #include<ios ...

  9. 【BZOJ2118】墨墨的等式 最短路

    [BZOJ2118]墨墨的等式 Description 墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+…+anxn=B存在非负整数解的条件,他要求你编写一个程序,给定N.{an}.以及B的取值 ...

  10. BZOJ2118: 墨墨的等式(同余类BFS)(数学转为图论题)

    2118: 墨墨的等式 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 2944  Solved: 1206[Submit][Status][Discu ...

随机推荐

  1. AutoFac的简单使用教程

    Autofac可以对代码进行依赖注入,实现控制反转.以下是本菜鸟在初次入门时的代码配置,其源码,内部原理都还有待日后研究.目前也只是仅仅做到了能够使项目正常使用而已. 跟我一样刚刚入门的菜鸟朋友们可以 ...

  2. dump net core windbg 安装

    安装 1.下载工具windbg 地址:https://www.microsoft.com/zh-cn/p/windbg-preview/9pgjgd53tn86?SilentAuth=1&rt ...

  3. AngularJS重型前端框架

    一.AngularJs AngularJs是一种前端的重型框架,而现在正在被Aue.js所取代.而Aue的和AngularJs大同小异. AngularJs核心功能有MVC.模块化.自动化双向数据绑定 ...

  4. Oracle与SQL Server等数据库的区别

    Oracle与SQL Server等数据库的区别 在Oracle中提倡使用一个连接 Oracle处理多个并发语句使用一个连接,大大提升系统能支持的并发量 Oracle运行在32为单进程平台上SGA和P ...

  5. Radmin入侵

    Radmin (Remote Administrator)是一款屡获殊荣的远程控制软件,它将远程控制.外包服务组件.以及网络监控结合到一个系统里,提供目前为止最快速.强健而安全的工具包 生成被控端 点 ...

  6. Android为TV端助力之无法依赖constraint-layout:1.1.3(转发)

    原文地址 http://fanjiajia.cn/2018/09/25/Android%20Studio%20Could%20not%20resolve%20com.android.support.c ...

  7. Spring的核心容器

    Spring框架的主要功能是通过其核心容器来实现的.Spring提供了2种核心容器:BeanFactory.ApplicationContext. BeanFactory BeanFactory是一个 ...

  8. scrapy 爬虫中间件 httperror中间件

    源码 class HttpErrorMiddleware(object): @classmethod def from_crawler(cls, crawler): return cls(crawle ...

  9. linux绝大部分命令集合(自己需要的时候方便查找)

    原网页:https://www.linuxidc.com/Linux/2018-04/151726.htm 系统信息显示命令arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构 ...

  10. mysql应用

    1.  简述 MySQL是开源的关系型数据库.官网:https://dev.mysql.com/. 2.  安装及应用 可通过https://dev.mysql.com/downloads/下载MyS ...