luogu

题意

给出\(n,a_i,B_{min},B_{max}\),求使得\(a_1x_1+a_2x_2+...+a_nx_n=B\)存在一组非负整数解的\(B\in[B_{min},B_{max}]\)的数量。

\(n\le12,0\le a_i \le 5*10^5,1\le B_{min}\le B_{max}\le 10^{12}\)

sol

和之前那个Luogu3403跳楼机差不多啊。

无非就是拿\(a_i\)的最小值来当模数就好了。

理论上是需要去掉\(a_i=0\)的,然而直接写并没有\(WA\)。所以不要想着手造一组数据把我的代码hack掉

code

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
#define ll long long
#define pli pair<ll,int>
#define mk make_pair
const int N = 5e5+5;
int n,a[12],to[N*12],nxt[N*12],ww[N*12],head[N],cnt,vis[N];
ll L,R,f[N],ans;
priority_queue<pli,vector<pli>,greater<pli> >Q;
void link(int u,int v,int w)
{
to[++cnt]=v;nxt[cnt]=head[u];ww[cnt]=w;
head[u]=cnt;
}
void Dijkstra()
{
memset(f,63,sizeof(f));
f[0]=0;Q.push(mk(0,0));
while (!Q.empty())
{
int u=Q.top().second;Q.pop();
if (vis[u]) continue;vis[u]=1;
for (int e=head[u];e;e=nxt[e])
if (f[to[e]]>f[u]+ww[e])
f[to[e]]=f[u]+ww[e],Q.push(mk(f[to[e]],to[e]));
}
}
int main()
{
scanf("%d%lld%lld",&n,&L,&R);L--;
for (int i=0;i<n;++i) scanf("%d",&a[i]);
sort(a,a+n);
for (int i=0;i<a[0];++i)
for (int j=1;j<n;++j)
link(i,(i+a[j])%a[0],a[j]);
Dijkstra();
for (int i=0;i<a[0];++i) if (f[i]<=R) ans+=(R-f[i])/a[0]+1;
for (int i=0;i<a[0];++i) if (f[i]<=L) ans-=(L-f[i])/a[0]+1;
printf("%lld\n",ans);
return 0;
}

最新文章

  1. 如何利用脚本实现MySQL的快速部署以及一机多实例的部署
  2. fstream文件操作
  3. [转]细说SQL Server中的加密
  4. eclipse的使用一
  5. 数据结构--树状数组(黑龙江省第八届大学生程序设计竞赛--post office)
  6. python lambda表达式简单用法
  7. hdu2527哈夫曼编码
  8. jQuery ajax - get(),getJSON(),post()方法
  9. 繁华模拟赛 Evensgn剪树枝
  10. su成别的用户后仍以原来私钥访问远程机器
  11. vs2010的11个调试技巧和方法
  12. Codevs 4189 字典(字典树Trie)
  13. 属性&quot;XmlFileName&quot;的代码生成失败
  14. nodejs爬虫系统
  15. 第7章 DNS &amp; bind从基础到深入
  16. ArrayList迭代过程删除问题
  17. CSS中的定位与浮动
  18. ORM规约变更经典案例---mysql军规
  19. 在树莓派是安装并配置NTP服务
  20. Github 基本操作

热门文章

  1. hadoop本地运行与集群运行
  2. 每天一个Linux命令(55)systemctl命令
  3. hadoop04---shell
  4. hadoop03---nginx+keepalived
  5. sql备份命令
  6. 【HackerRank】Gem Stones
  7. P4317 花神的数论题
  8. jQuery图片下滑切换焦点图
  9. awk中的常用关于处理字符串的函数
  10. Python3.4 用 pip 安装lxml时出现 “Unable to find vcvarsall.bat ”