bzoj 2118 墨墨的等式
来源:互联网 发布:手机紫外线灯软件 编辑:程序博客网 时间:2024/04/30 03:16
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<cmath>
#define md
#define ll long long
#define inf 1000000000000000LL
#define eps 1e-8
#define N 500010
using namespace std;
int q[N];
ll dis[N];
bool vis[N];
int mn,n;
int a[20];
void spfa()
{
int h=0,w=1,x,y; q[1]=0; vis[0]=1;
while (h!=w)
{
h++; if (h>mn+5) h=1; x=q[h];
for (int i=1;i<=n;i++)
{
y=(x+a[i])%mn;
if (dis[y]>dis[x]+a[i])
{
dis[y]=dis[x]+a[i];
if (!vis[y])
{
vis[y]=1;
w++; if (w>mn+5) w=1; q[w]=y;
}
}
}
vis[x]=0;
}
}
ll query(ll x)
{
ll ans=0;
for (int i=0;i<mn;i++)
if (dis[i]<=x) ans+=(x-dis[i])/mn+1;
return ans;
}
int main()
{
mn=(1e9);
ll L,R;
scanf("%d%lld%lld",&n,&L,&R);
for (int i=1;i<=n;i++) { scanf("%d",&a[i]); if (a[i]==0) { i--; n--; continue;} mn=min(mn,a[i]);}
for (int i=1;i<mn;i++) dis[i]=inf;
spfa();
printf("%lld\n",query(R)-query(L-1));
return 0;
}
- 【BZOJ】2118 墨墨的等式
- bzoj 2118 墨墨的等式
- bzoj 2118: 墨墨的等式
- BZOJ 2118 墨墨的等式[Waiting]
- 【BZOJ 2118】 墨墨的等式
- BZOJ 2118 墨墨的等式
- BZOJ 2118 墨墨的等式
- BZOJ 2118墨墨的等式
- BZOJ 2118 墨墨的等式
- BZOJ 2118: 墨墨的等式
- bzoj 2118 墨墨的等式 dijkstra
- BZOJ 2118 墨墨的等式 堆优化Dijkstra
- bzoj 2118: 墨墨的等式 最短路建模
- 2118: 墨墨的等式
- BZOJ 2118 墨墨的等式 最短路 同余类分析
- BZOJ-2118 墨墨的等式(好题) 最短路+乱搞
- 墨墨的等式
- 2118: 墨墨的等式 最短路
- bzoj 2084 反对称子串
- 网络流刷题列表
- cube闹钟
- Jenkins入门系列之——02第二章 Jenkins安装与配置
- bzoj 1414 对称的正方形
- bzoj 2118 墨墨的等式
- bzoj 3029 守卫者的挑战
- ft5x06获取PROJECT_ID/ FW_VER /VENDOR_ID/ glass_vendor
- bzoj 4152 the camptin (dis[x][y]=min(|x.x-y.x|,|x.y-y.y|),求1,n最短路)
- bzoj 1251 序列终结者
- bzoj 1500 维修数列 bzoj 1507 editor
- bzoj 3130 费用流
- bzoj 3532 lis
- java代码封装