[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 墨墨突然对等式很感兴趣,他正在研究 ...
随机推荐
- [Android Pro] Service (startservice , bindservice , unbindservice, stopService)
1: startService -------stopService (this will call onDestroy) 2: bindService -------unbindService ...
- [Android Pro] Android Fragment getActivity返回null解决
overide FragmentActivity onSaveInstanceState method like this. @Override public void onSaveInstance ...
- jquery阻止事件冒泡的3种方式
第一种:return false, 缺点:直接返回了函数,函数后面的语句没法执行了: $('.btn').on('click',function(event){ do something ... re ...
- iOS小技巧总结,绝对有你想要的
原文链接 在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIV ...
- SAE云平台上传图片和发送邮件
1.远程图片保存至Storage 其中public是Storage中的容器名,"目录1/目录2/"是容器下的路径 $file_content 是得到的文件数据 $s = new S ...
- Android -- java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
使用Bundle 的getParcelableArray 出现了以下错误: Class not found when unmarshallingjava.lang.ClassNotFoundExcep ...
- Java集合源码学习(四)HashMap分析
ArrayList.LinkedList和HashMap的源码是一起看的,横向对比吧,感觉对这三种数据结构的理解加深了很多. >>数组.链表和哈希表结构 数据结构中有数组和链表来实现对数据 ...
- Java后端WebSocket的Tomcat实现
转自:http://blog.chenzuhuang.com/archive/28.html 文章摘要随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了.近年来,随着HTML5 ...
- Java 类装载器
类装载器 基本概念: 顾名思义,类加载器(class loader)用来把Java 类动态的加载到 Java 虚拟机中.也就是说当程序需要某个类时,类加载器就把这个类的二进行加入到虚拟机中. 类加载器 ...
- T-SQL 基础编程
Ø Go批处理语句 用于同时执行多个语句 Ø 使用.切换数据库 use master go Ø 创建.删除数据库 方法1. --判断是否存在该数据库,存在就删除 if (exists (select ...