[bzoj2118]墨墨的等式【dijk+堆】
10/30的update:如果是冲着dijk的板子来的,建议看多校联考contest中第二场day2的T2,那边的写法比较优秀。。。
--------------------------------------------
编译器真是神经了 k=k*2打成了k*2居然都不报错 还一点事情没有
害我改一晚上
一开始忘记了c++的数组默认从0开始
后来又把dijk写T了。。。。。重申一遍,这里是先把所有点加进去然后依次pop()
至于这道题,大家都说它是一道数论好题
而狗王一定要把它当作spfa专题来讲给小朋友们听
---erh。。。
网上题解有很多 首推po姐的
#include<cstdio>
#define ll long long
#define inf 1<<29
#include<algorithm>
#include<iostream>
#define N 500100
#include<cstring>
using namespace std;
int n,q[N],pos[N];ll a[N],f[N];ll bmin,bmax;
int top;
void push_up(int kk)
{
int k=kk;
>&&f[q[k]]<f[q[k/]])
{
pos[q[k]]=k/;pos[q[k/]]=k;
swap(q[k],q[k/]);
k/=;
}
}
void push_down()
{
;
<=top)
{
+<=top&&f[q[k]]>f[q[k*+]]&&f[q[k*+]]<f[q[k*]])
{
pos[q[k]]=k*+;pos[q[k*+]]=k;
swap(q[k],q[k*+]);
k=k*+;
}]])
{
pos[q[k]]=k*;pos[q[k*]]=k;
swap(q[k],q[k*]);
k=k*;
}else break;
}
}
void ins(int x)
{
top++;q[top]=x;pos[x]=top;push_up(top);
}
void dijk()
{
;i<a[];i++)f[i]=inf;
f[]=;;i<a[];i++)ins(i);
while(top)
{
];q[]=q[top];top--;
pos[q[]]=;push_down();
;i<=n;i++)
]]>f[u]+(u+a[i])/a[])
{
f[(u+a[i])%a[]]=f[u]+(u+a[i])/a[];
];
push_up(pos[xx]);
}
}
}
ll max(ll a,ll b)
{
if(a>b)return a;else return b;
}
long long calc(long long x)
{
int i;
;
;i<a[];i++)
re+=max(0ll,x/a[]+(x%a[]>=i)-f[i]);
return re;
}
int main()
{
scanf("%d%lld%lld",&n,&bmin,&bmax);
;i<=n;i++)scanf("%lld",&a[i]);
dijk();
printf());
}
这里是一个很懒的博主。。。相信po姐大家都知道我就不贴传送门了yep
[bzoj2118]墨墨的等式【dijk+堆】的更多相关文章
- 【BZOJ2118】墨墨的等式(最短路)
[BZOJ2118]墨墨的等式(最短路) 题面 BZOJ 洛谷 题解 和跳楼机那题是一样的. 只不过走的方式从\(3\)种变成了\(n\)种而已,其他的根本没有区别了. #include<ios ...
- 【BZOJ2118】墨墨的等式 最短路
[BZOJ2118]墨墨的等式 Description 墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+…+anxn=B存在非负整数解的条件,他要求你编写一个程序,给定N.{an}.以及B的取值 ...
- BZOJ2118墨墨的等式[数论 最短路建模]
2118: 墨墨的等式 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 1317 Solved: 504[Submit][Status][Discus ...
- Bzoj2118 墨墨的等式
Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 1488 Solved: 578 Description 墨墨突然对等式很感兴趣,他正在研究a1x1+ ...
- BZOJ2118: 墨墨的等式(同余类BFS)(数学转为图论题)
2118: 墨墨的等式 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 2944 Solved: 1206[Submit][Status][Discu ...
- BZOJ2118:墨墨的等式(最短路)
Description 墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+…+anxn=B存在非负整数解的条件,他要求你编写一个程序,给定N.{an}.以及B的取值范围,求出有多少B可以使等式存在 ...
- p2371&bzoj2118 墨墨的等式
传送门(bzoj) 题目 墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+…+anxn=B存在非负整数解的条件,他要求你编写一个程序,给定N.{an}.以及B的取值范围,求出有多少B可以使等式存 ...
- BZOJ2118: 墨墨的等式(最短路 数论)
题意 墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+…+anxn=B存在非负整数解的条件,他要求你编写一个程序,给定N.{an}.以及B的取值范围,求出有多少B可以使等式存在非负整数解. So ...
- BZOJ2118: 墨墨的等式(最短路构造/同余最短路)
Description 墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+…+anxn=B存在非负整数解的条件,他要求你编写一个程序,给定N.{an}.以及B的取值范围,求出有多少B可以使等式存在 ...
- 【BZOJ 2118】 墨墨的等式(Dijkstra)
BZOJ2118 墨墨的等式 题链:http://www.lydsy.com/JudgeOnline/problem.php?id=2118 Description 墨墨突然对等式很感兴趣,他正在研究 ...
随机推荐
- python数据库(mysql)操作
http://fantefei.blog.51cto.com/2229719/1282443
- struts2文件上传和下载
1. struts系统中的拦截器介绍 过滤器:javaweb中的服务器组件,主要针对的请求和响应进行拦截. 拦截器:主要针对方法的调用,进行拦截器,当使用代理对象调用某个方法时候 对方法的调用进行拦截 ...
- September 27th 2016 Week 40th Tuesday
Friends are lost by calling too often and calling seldom. 交往过密过疏,都会失去朋友. Please mind your own busine ...
- 重写List集合的ToString方法
重写方法: public class MyList<T> : List<T> where T : IConvertible { public override string T ...
- 实现iOS前台时的推送弹窗效果
原文链接 或许很多童鞋还不知道,在 iOS 中收到推送通知时,如果 App 处于前台运行的情况下,推送的顶部弹窗是不会弹出来的. 然而就是有很多**的产品经理都会提出类似这样的**需求:那就是在 Ap ...
- backBarButtonItem 替换
最上级vc里面加 下级设置生效 UIImage* image = [UIImage imageNamed:@"back_button.png"]; [item setBackBut ...
- iOS中的两种主要架构及其优缺点浅析
凡是程序的开发者,应该对程序的架构都不陌生.一个程序的架构的好坏对这个程序有着非常重要的作用.今天我们来看一下iOS开发中用要的两种主流的程序架构.这个过程中我们主要以例子的形式展开. 我们来看第一种 ...
- hdu 2057 A+B
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2057 For each test case,print the sum of A and B in h ...
- JAVA一些常用的时间操作
项目中经常有对时间进行处理的需求,下面是一些常用的操作整理,方便以后再次使用以及做相关复习. 1.字符串转换为日期 /** * 字符串转换为日期 * @param dateStr 需要转换的日期 * ...
- 数据结构和算法 – 3.堆栈和队列
1.栈的实现 后进先出 自己实现栈的代码 using System; using System.Collections.Generic; using System.Linq; using ...