同余类BFS的一些瞎吹】的更多相关文章

同余类BFS的题,是个OIer基本上都会见过一些,最好的例子就是NOIP 2018 day1  T2---货币系统 虽然这题其实是什么背包就能解决的题目,但数据一变大,出题人坏一点,就没了.... 同余类BFS最早从国家集训队里被搞了出来:当时感觉好神奇,后来就变成了烂大街的套路题....------------cyr的经典名言 记得当时好像考试是还真有人打,好像还怪快的.... 推荐一个差不多就是模板的集训队题(传送门) 题目描述 墨墨突然对等式很感兴趣,他正在研究a_1x_1+a_2x_2+…
题目:http://poj.org/problem?id=3539 题目大意是给定 a, b, c,求 1~h 内有多少个数可以被 a, b, c 通过加减法组成: 这是今天刚讲的神奇的——同余类 bfs 问题! 大概就是选定一个模数,就选最小的(常数可能会比较小?),不妨令作 a,构建一系列点,组成 mod a 剩余系: 然后我们要找到每个点的最小可达数,然后它加上若干个 a 就都是可达的: 对于一个点 x,它可以转移到 (x + b) % b,代价是 b :c 同理: 从起点开始 bfs,对…
2118: 墨墨的等式 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 2944  Solved: 1206[Submit][Status][Discuss] Description 墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+…+anxn=B存在非负整数解的条件,他要求你编写一个程序,给定N.{an}.以及B的取值范围,求出有多少B可以使等式存在非负整数解. Input 输入的第一行包含3个正整数,分别表示N.BMin.BMax分别表示…
Description Edward works as an engineer for Non-trivial Elevators: Engineering, Research and Construction (NEERC). His new task is to design a brand new elevator for a skyscraper with h floors. Edward has an idée fixe: he thinks that four buttons are…
题意 有一部电梯,最初停在1层. 电梯有4个按键,上升a,b,c层,回到一层. 求从一层出发.能到达1~h的哪些楼层. (h<=1018,a,b,c<=105) 题解 这种h能大的图论,一眼就知道是同余类. 以模a[1]的余数为下标建立数组,数组的意义是模a[1]为下标的最小的能到达的值. 显然之后的相同模数的楼层都可以达到.统计答案即可. 处理数组用最短路就行. #include<iostream> #include<cstring> #include<algo…
题目:http://poj.org/problem?id=3539 考虑把层数分为模a剩余系.同类内可通过+若干个a走到. 不同类之间需要通过+b.+c来走到. 需要求出每一类中最小的能走到的.即最短路. 注意memset成0x3f!不要直接memset成1! 仔细一看,long long下赋1是17位,赋0x3f是19位.而h是18位. #include<iostream> #include<cstdio> #include<cstring> #include<…
传送门 豪华升级版同余类最短路-- 官方题解 主要写几个小trick: \(1.O(nm)\)实现同余类最短路: 设某一条边长度为\(x\),那么我们选择一个点,在同余类上不断跳\(x\),可以形成一个环. 显然只有在同一个环上的两点之间才可能通过\(x\)进行转移.我们选择环上答案最小的点,它一定不会在当次更新时被更新答案,所以直接从这个点开始依次遍历环上的所有点,每一个点尝试从前面的一个点更新答案. \(2.\)将\(\mod n\)的同余类最短路变为\(\mod d\)的同余类最短路: 令…
题意 给出两个互质的数a,b问最大的不能被xa+yb(x,y>=0)表示的数.(a,b<=109) 题解 NOIPday1T1一道数论题,不知埋葬了多少人的梦想. 用同余类去解释. 我们依旧用数组来表示最小的模a等于下标的数.答案为这些数中最大的数-a. 设这些数中最大的数为x,在此之前其他的模数全都能表示,所以前a-1个数都可以被表示,所以x-a是第一个不能表示的数. 又因为a,b互质所以x为(a-1)*b. 故答案为 a*b-a-b.输出答案就可以了.然而我打了高精.…
声明:关于这题的$O(mn)$尚且未深入理解,虽然之前有跟这位神仙聊过做法但并没太懂.. $O(mn\log m)$同余最短路做法: 首先不妨抽出最小的$a_i=m$,那么剩余的$a$如果可以表示出$x$,那么$x+km$的所有数都可以表出.所以对于$m$的同一个同余类$i\in[0,m)$,我们希望求出$f_i=\min\{h|h\mod m=i\}$其中$h$是可以用其他$a$表出的,也就是用其他东西来表示出最小的.可以$\mod m=i$的数,这样,所有$h+km(k\in N)$都可以表…
题目链接 一开始看到这题,我的内心是拒绝的. 以为是同余类bfs,一看数据1e9,发现只能允许O(1)的算法,数学还不太好,做不出来,其实应该打表找规律. 看到网上的题解,如果两个都必须拿,结果一定是a*b,由于对称性,如果可以不拿,就减(a+b). 结果就是a*b-a-b. #include<iostream> #include<cstdio> using namespace std; long long a,b; int main() { scanf("%lld%ll…
  还好吧, 好像回归之后 还是有时间去机房转一转的 一个特别生动的例子就是 体育会考就去机房呆了一上午. 这里又要吐槽一下信息技术会考 stm我拿到的第一道题就是 https://www.luogu.org/problemnew/show/P1579 的改编版, 而 且 数 据 范 围 开 到 了 n <= 1000000 !!!!!! 妈也,全民线性筛啊QWQ 考试的时候顺便教了教左右两边线性筛是啥23333   然后,突然发现,已经在异世界征战了两个星期了, 有点熟悉了呢, 但是三天用完两…
Time Limit: 4000MS   Memory Limit: 65536KB   64bit IO Format: %lld & %llu Description Edward works as an engineer for Non-trivial Elevators: Engineering, Research and Construction (NEERC). His new task is to design a brand new elevator for a skyscrap…
http://poj.org/problem?id=3539 给定一个电梯,可以上升a,b,c层和回到1层,给定楼高h,求可达层数 lyd讲的同余类BFS,方法是先把三个量压成两个,即把h%a,因为对于一个x∈{h%a},若x可达,则x+ak一定可达. 然后考虑在这个模a的剩余系中,b和c的情况. 从1开始连边,从点i连向(i+w)%a,代价为w,其中w为b或c. 意义就是,对于一个楼层x,从x到达最近x+w层的代价为w,这很显然. 从1开始做单源最短路,然后只需要统计dis小于等于h的,大于的…
POJ3126 Prime Path 一开始想通过终点值双向查找,从最高位开始依次递减或递增,每次找到最接近终点值的素数,后来发现这样找,即使找到,也可能不是最短路径, 而且代码实现起来特别麻烦,后来搜了一下解题报告,才发现是bfs(). 想想也是,题目其实已经提示的很清楚了,求最短的路径,对于每一个数,每次可以把4位中的任意一位,  换成与该位不相同的0-9中的任意一位,对于迷宫类 bfs每次转移数为上下左右四个状态,而此题就相当于每次可以转移40个状态(其实最低位为偶数可以排除,不过题目数据…
exgcd入门以及同余基础 gcd,欧几里得的智慧结晶,信息竞赛的重要算法,数论的...(编不下去了 讲exgcd之前,我们先普及一下同余的性质: 若,那么 若,,且p1,p2互质, 有了这三个式子,就不用怕在计算时溢出了. 下面我会用与分别表示a与b的最大公约数与最小公倍数. 首先会来学扩欧的同学肯定都会欧几里得算法(即辗转相除法)了吧 而通过观察发现:,先除后乘防溢出. 所以与的代码如下: inline int gcd(int a,int b) {)?a:gcd(b,a%b);} inlin…
题意: 给一个n*m的矩阵作为地图,0为通路,1为阻碍.只能向上下左右四个方向走.每一年会在一个通路上长出一个阻碍,求第几年最上面一行与最下面一行会被隔开. 输入: 首行一个整数t,表示共有t组数据. 每组数据首行两个整数n, m,表示矩阵大小. 接下来输入矩阵. 接下来输入一个整数q,表示一共q年. 接下来q行,第i行为两个整数xi, yi,表示在第i年会在xi, yi长出一个阻碍.数据保证只会在通路上生成阻碍. 输出: 如果在第i年被隔开,则输出i.如果始终无法隔开,则输出-1. 吐槽: 我…
组合即将各个部分组合在一起.程序设计中就是用已有类的对象来产生新的类. 桌子由木板和钉子组合而成,台灯使用灯座,灯管,电线,接头等拼起来的.我们发现自己周围的很多东西都是由更小的其它东西拼凑构成的,就像积木一样.相信你小的时候也曾拆开过许多你觉得好奇的东西,去一看究竟.去看看这个新的类(class)到底是由那些其他的类构成的.其实在你很小的时候你已经理解了组合. 程序设计中,组合体现在生成的新类里用到了现有类的实例.组合使生成新类更加简便和直观,实现也非常容易,相比继承这种通过已有类构造新类的方…
目录 定义 同余类与剩余系 费马小定理 欧拉定理 证明: 欧拉定理的推论 证明: 应用: 定义 若整数 $a$ 和整数 $b$ 除以正整数 $m$ 的余数相等,则称 $a,b$ 模 $m$ 同余,记为: $$a \equiv b(mod \text{ } m)$$ 同余类与剩余系 对于 $\forall a\in [0,m-1]$ ,集合 $\{ a+km \}$ $(k \in \mathbb{N})$ 的所有数模 $m$ 同余,余数都是 $a$ .该集合称为一个模 $m$ 的同余类,简记为…
这题以前就被灌输了“打表找规律”的思想,所以一直没有好好想这道题,过了一年还不太会qwq.虽然好像确实很简单,但是还是带着感觉会被嘲讽的心态写这个题解...而且还有一个log做法不会... 法1:(一开始没看懂,后由hkk神仙教导ORZ) 因为$ax+by=k$如果无视$\{x,y\}$非负整数解的条件的话,显然由于$gcd(a,b)=1$,所以所有$k$都可以表出.那么依题意如果有$k$不可以表出,是因为受了题目非负整数解条件的限制,也就是$x<0,y<0$,又因为$x,y$不可能同时$&l…
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特征. 继承 如果用.Net写一个A类继承B类的话,写法会是大致如下: Public Class A : B{ ....... } Java的话却要通过extends关键字在声明类的时候指定其父类(基类),所以上面的.Net写法要转换成Java的话应该是下面的样子: Public clas A ext…
https://www.maplesoft.com/products/maple/ Maple高级应用和经典实例: https://wenku.baidu.com/view/f24696210722192e4536f65d.html Maple高级应用和经典实例: http://vdisk.weibo.com/s/dbLrQxb6KthZA Maple是目前世界上最为通用的数学和工程计算软件之一,在数学和科学领域享有盛誉,有“数学家的软件”之称.Maple 在全球拥有数百万用户,被广泛地应用于科…
虽然去年做了挺多了也写了篇一句话题解了但一年过去也忘得差不多了$kk$ 所以重新来整理下$kk$ $2018(4/6$ [X]积木大赛 大概讲下$O(n)$的数学方法. 我是从分治类比来的$QwQ$.考虑对每个点,如果它左侧比它高,显然可以在左侧被消的时候顺便把它消了. 否则只能消到左侧那个高度. 所以答案为$\sum max(0,a_i-a_{i-1})$ [X]货币系统 一个结论:显然是从原来的集合中选出一个子集来. 我也不记得我怎么在考场上就突然想到这个结论了,,,感觉也挺显然的.所以也没…
1.spring的缓存,mybatis缓存a.基于注解的方式 三种注解b.mybatis分为一级session和二级缓存mapperc.采用LRU算法(近期最少使用) http://www.iteye.com/topic/1112327/ 对缓存并发同步采用jdk的ReadWriteLock 读写锁源码:mapper调用.代理mapper调用.mapper的方法.sqlsession.缓存(二级没有到一级,一级没有到数据库搜)2.介绍下dubbo.A服务调用B服务,B服务又调用C服务,这种情况怎…
Linux就这个范儿 第15章 七种武器  linux 同步IO: sync.fsync与fdatasync   Linux中的内存大页面huge page/large page  David Cutler  Linux读写内存数据的三种方式 台湾作家林清玄在接受记者采访的时候,如此评价自己30多年写作生涯:“第一个十年我才华横溢,‘贼光闪现’,令周边黯然失色:第二个十年,我终于‘宝光现形’,不再去抢风头,反而与身边的美丽相得益彰:进入第三个十年,繁华落尽见真醇,我进入了‘醇光初现’的阶段,真正…
填坑 为了打击胡吹瞎吹恶势力 具体考试情况略了 题解 Day1 D1T1 100分 状压dp 考虑用点的存在状态转移边的情况的思想 D1T2 100分 虚树+ntt 假设在最下方的斯坦纳树上统计答案,虚树+ntt就可以啦 D1T3  从pkuwc2018,pkusc2018,到pkuwc2019我打牌相关总分为0呢 zblzbl 再也没机会硬钢pku的斗地主6排列了 100分 大力搜索?2333 Day2 D2T1  22分直接暴力 48分是TopcoderSRM的原题 D2T2  67分 强连…
1.白银莲花池 LUOGU 2411 第一种思路:当然我们可以写三个bfs a掉这个题,这写下来一二百行要有了吧: 第二种:我们可以在一个bfs中维护所有的信息,一个方向数组,从起点开始,向八个方向扩展,如果添加的莲花需要少,就更新当前的值,如果添加莲花一样多但所需步数更少,也更新,目标点方案数等于当前点方案数.特别地,如果添加莲花和步数一样多,目标点方案数加上当前点方案数.以上三种情况目标点皆需入队: int add[50][50],bs[50][50],vis[50][50],sx,sy,t…
目录 图论 知识点 二分图相关 DFS找环 并查集维护二分图 二分图匹配的不可行边 最小生成树相关 最短路树 最短路相关 负环 多源最短路 差分约束系统 01最短路 k短路 网络流 zkw费用流 做题经验 同余类最短路 边权是max的形式 图论模型的转换 边定向 树上点覆盖 两树叠图的最小割及方案数 一类BFS最小生成树做法 图论模板库 Tarjan相关 割边 割点 圆方树 2-SAT TarjanLCA 最短路相关 SPFA判负环 Dijkstra 网络流 最大流 费用流 图论 Tags:No…
传送门 首先这个题目显然就是先求出所有的 \(border\),问题转化成一个可行性背包的问题 一个方法就是同余类最短路,裸跑 \(30\) 分,加优化 \(50\) 分 首先有个性质 \(border\) 分成的等差数列的个数不超过 \(log\) 和回文树的性质的证明类似瞎画图一下就行了 我们注意到可以一个一个等差数列的更新最短路 要做到这个,必须能从之前的等差数列的模数 \(n\) 转移到当前等差数列的 \(x\) 假设模 \(n\) 的最短路为 \(f\),模 \(x\) 的为 \(g\…
Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 1488  Solved: 578 Description 墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+…+anxn=B存在非负整数解的条件,他要求你编写一个程序,给定N.{an}.以及B的取值范围,求出有多少B可以使等式存在非负整数解. Input 输入的第一行包含3个正整数,分别表示N.BMin.BMax分别表示数列的长度.B的下界.B的上界.输入的第二行包含N个整数,即数列{an}的值…
原创文章,转载请注明出处:http://www.cnblogs.com/hongfei/archive/2012/07/07/2580776.html 简单工厂模式:①抽象基类:类中定义抽象一些方法,用以在子类中实现②继承自抽象基类的子类:实现基类中的抽象方法③工厂类:用以实例化对象 看完文章再回头来看下这张图,效果会比较好 1 采用封装方式 2 3 <?php 4 class Calc{ 5 /** 6 * 计算结果 7 * 8 * @param int|float $num1 9 * @pa…