le

【同余最短路】【例题集合】洛谷P3403 跳楼机/P2371 墨墨的等式

匿名 (未验证) 提交于 2019-12-02 23:42:01
接触到的新内容,【同余最短路】。 代码很好写,但思路不好理解。 同余最短路,并不是用同余来跑最短路,而是通过同余来构造某些状态,从而达到优化时间空间复杂度的目的。往往这些状态就是最短路中的点,可以类比差分约束跑最短路( f[i]+w<=f[j] 构造最短路不等式(例题luogu 小k的农场)) ――来自洛谷P3403 Liao_rl 的题解 【P3403跳楼机】 题目背景 DJL为了避免成为一只咸鱼,来找srwudi学习压代码的技巧。 题目描述 经过改造,srwudi的跳楼机可以采用以下四种方式移动: 向上移动x层; 向上移动y层; 向上移动z层; 回到第一层。 一个月黑风高的大中午,DJL来到了srwudi的家,现在他在srwudi家的第一层,碰巧跳楼机也在第一层。DJL想知道,他可以乘坐跳楼机前往的楼层数。 输入输出格式 输入格式: 第一行一个整数h,表示摩天大楼的层数。 第二行三个正整数,分别表示题目中的x, y, z。 输出格式: 一行一个整数,表示DJL可以到达的楼层数。 输入输出样例 输入样例#1: 15 4 7 9 输出样例#1: 9 输入样例#2: 33333333333 99005 99002 100000 输出样例#2: 33302114671 说明 可以到达的楼层有:1,5,8,9,10,12,13,14,15 想不出来不要死磕这一题,先看看第三题。。。。 1

洛谷 P4568 [JLOI2011]飞行路线 题解

耗尽温柔 提交于 2019-12-02 01:51:22
P4568 [JLOI2011]飞行路线 题目描述 Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司。该航空公司一共在 \(n\) 个城市设有业务,设这些城市分别标记为 \(0\) 到 \(n-1\) ,一共有 \(m\) 种航线,每种航线连接两个城市,并且航线有一定的价格。 Alice和Bob现在要从一个城市沿着航线到达另一个城市,途中可以进行转机。航空公司对他们这次旅行也推出优惠,他们可以免费在最多 \(k\) 种航线上搭乘飞机。那么Alice和Bob这次出行最少花费多少? 输入格式 数据的第一行有三个整数, \(n,m,k\) ,分别表示城市数,航线数和免费乘坐次数。 第二行有两个整数, \(s,t\) ,分别表示他们出行的起点城市编号和终点城市编号。 接下来有m行,每行三个整数, \(a,b,c\) ,表示存在一种航线,能从城市 \(a\) 到达城市 \(b\) ,或从城市 \(b\) 到达城市 \(a\) ,价格为 \(c\) 。 输出格式 只有一行,包含一个整数,为最少花费。 输入输出样例 输入 #1 5 6 1 0 4 0 1 5 1 2 5 2 3 5 3 4 5 2 3 3 0 2 100 输出 #1 8 说明/提示 对于30%的数据, \(2 \le n \le 50,1 \le m \le 300,k=0;\) 对于50%的数据, \(2

Bluetooth LE(低功耗蓝牙)

柔情痞子 提交于 2019-12-02 00:34:02
前言 在写这篇文章的时候,谷歌刚刚发布了Android Wear ,摩托罗拉也发布了 Moto 360 智能手表。Android Wear 的API还是相当 基本的 ,是很好的文档材料 ,而且还会不断的更新 , 所以我不打算 写一个关于他们的 教程 ( 至少现在还没有 )。 有趣的是 Moto 360 支持 Android 4.3及之后的版本。 这明显是Bluetooth LE只有在Android 4.3及以后才被支持的原因,这也意味着 Moto 360 支持Bluetooth LE。Bluetooth LE 将 不仅是可穿戴技术的核心技术,而且也是许多物联网设备的核心技术。 在这个系列博客中 我们将了解 Bluetooth LE 在 Android 上的使用 。 Bluetooth 与 Bluetooth LE简介 蓝牙自20世纪90年中后期就已经出现,并已成为短距离设备的对等网络的标准。一个缺点是它需要消耗一点电量,这在移动设备上是一 个问题,而且在电池更小的可穿戴设备中需要消耗更多电。另一个缺点是两个蓝牙设备必须配对才可以相互通信。虽然配对过程只需要执行一次,但对用户来说这是一个痛苦的经历。 Bluetooth Low Energy(低功耗蓝牙),缩写为Bluetooth LE,或BLE,作为蓝牙4.0 (有时称为蓝牙智能)规范的一部分,并针对上述的这些具体问题而被引入

[NOIP2015]子串 题解

半世苍凉 提交于 2019-12-01 07:52:17
题目描述 有两个仅包含小写英文字母的字符串A和B。 现在要从字符串A中取出k个互不重叠的非空子串,然后把这 k 个子串按照其在字符串 A 中出现的顺序依次连接起来得到一个新的字符串,请问有多少种方案可以使得这个新串与字符串 B 相等? 注意:子串取出的位置不同也认为是不同的方案。 输入格式 第一行是三个正整数 n,m,k,分别表示字符串 A 的长度,字符串 B 的长度,以及问题描述中所提到的 k,每两个整数之间用一个空格隔开。 第二行包含一个长度为 n 的字符串,表示字符串A。  第三行包含一个长度为 m 的字符串,表示字符串B。 输出格式 输出共一行,包含一个整数,表示所求方案数。 由于答案可能很大,所以这里要求输出答案对 1,000,000,007 取模的结果。 数据范围 $ 1 \le n \le 1000, \\\\ 1 \le m \le 200,\\\\ 1 \le k \le m\\\\ $ 来源: https://www.cnblogs.com/Rorschach-XR/p/11670766.html

raspberry pi蓝牙4.0低功耗

烈酒焚心 提交于 2019-11-29 18:28:48
raspberry pi上有两个USB口,前面的文章已经用了一个USB wifi适配器实现了一个加载机,今天用另外一个USB口连接蓝牙适配器,在raspberry pi上实现蓝牙功能。硬件上在网上买了一个ORICO的蓝牙适配器,该适配器支持bluetooth4.0标准。在我的raspberry pi上通过命令$lsusb可以看到如下内容: Bus 001 Device 004: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode) 该内容表示系统已经识别出蓝牙适配器。另外通过命令$lsmod | grep "btusb"可以看到如下内容: btusb 15521 0 bluetooth 221259 21 bnep,btusb 该内容表示内核部分已经正确加载usb蓝牙适配器的驱动模块。至于蓝牙协议栈内核模块,可以通过/proc/config.gz文件查看相应的蓝牙协议栈是否编译进内核或编译成模块。 bluez-5以上的版本支持蓝牙4.0的低功耗模式,raspbian的最新镜像(2013-12-20)源上的bluez版本是4.99。因此需要通过源代码编译。从bluez的官方网站上下载最新的bluez-5.13。编译bluez-5.13时需要在raspberry pi上安装如下开发包:libglib2

luogu P5055 【模板】可持久化文艺平衡树

↘锁芯ラ 提交于 2019-11-29 04:56:48
题目背景 这是一道模板题。 题目描述 您需要写一种数据结构,来维护一个序列,其中需要提供以下操作(对于各个以往的历史版本): 在第 p p 个数后插入数 x x 。 删除第 p p 个数。 翻转区间 [l,r] [ l , r ],例如原序列是 \{5,4,3,2,1\} { 5 , 4 , 3 , 2 , 1 },翻转区间 [2,4] [ 2 , 4 ] 后,结果是 \{5,2,3,4,1\} { 5 , 2 , 3 , 4 , 1 }。 查询区间 [l,r] [ l , r ] 中所有数的和。 和原本平衡树不同的一点是,每一次的任何操作都是基于某一个历史版本,同时生成一个新的版本(操作 4 4即保持原版本无变化),新版本即编号为此次操作的序号。 本题强制在线。 输入格式 第一行包含一个正整数 N N,表示操作的总数。 接下来 N N 行,每行前两个整数 v_i,opt_i v i ​ , o p t i ​ , v_i v i ​ 表示基于的过去版本号 (0\le v_i<i) ( 0 ≤ v i ​ < i ), opt_i o p t i ​ 表示操作的序号 (1\le opt_i\le 4) ( 1 ≤ o p t i ​ ≤ 4 )。 若 opt_i=1 o p t i ​ = 1,则接下来两个整数 p_i,x_i p i ​ , x i ​ ,表示操作为在第 p_i

洛谷 U84973 RJJ的水题

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-28 08:23:25
洛谷 U84973 RJJ的水题 题目传送门 题目背景 快要开学了,机房的训练也紧锣密鼓的进行着。这一天,Seaway S e a w a y 的好朋友iamrjj i a m r j j 给Seaway*S e a w a**y*出了一道水题... 题目描述 iamrjj i a m r j j 的题是这样的:给定一张N N 个点,M M 条边的带权无向图,有X X 个景点分布在这N N 个点上(提示:可能有多个景点在同一个点上),显然,一定有一个点到这X X 个景点的距离和最小。现在,给你这张图的情况和这X X 个景点的分布,请你找出这个最小的距离和。 虽然iamrjj i a m r j j 一再声称这是一道水题,但蒟蒻Seaway*S e a w a**y*还是不会了...于是他偷偷地找到你来帮忙,以至于他不会过于难堪...你能帮他解决这个问题么? 输入格式 第一行包含三个整数:X,N,M X , N , M ,意义如题所示。 之后的X X 行,每行一个整数,表示这个景点在哪个点上。 之后的M M 行,每行三个整数U,V,Z U , V , Z ,表示从U U 到V V 有一条长度为Z Z 的边。 输出格式 一行,表示最小的距离和。 输入输出样例 输入 #1 复制 输出 #1 复制 说明/提示 对于全部数据,1\le N \le 800,1\le M \le 10^5,1

【纪中模拟2019.08.18】【JZOJ6309】完全背包

南笙酒味 提交于 2019-11-27 19:23:22
题目链接 题意:   有$n$种物品各有无限个,背包空间为$m$,第$i$种物品的体积为$a_i$,价值为$b_i$。求在不超过背包容量的前提下,取得的最大价值。   $n\le 10^6,\quad m\le 10^{16},\quad a_i,b_i\le 100$且均为正整数。 分析:   贪心一:实际上最多有$100\times 100=10^4$种物品,可以考虑去重,这样$n$的规模下降至$10^4$。   贪心二:如果两种物品的体积相同,我们肯定不会装价值更低的那种物品,这样$n$的规模下降至$100$。   转化法:由于$m$过于巨大,然而$a_i$相比较小,我们可以想到,性价比最优的物品一定会出现极多次,这样最终方案肯定可以分割成很多完全相同的小方案(全部装同一种物品),再在剩下的容量里精打细算。因此我们先做小容量(最大可支持的范围)的背包,再来组成最终方案。   综上,我们先做$n\le 100$,$m\le 2\times 10^5$的完全背包,设$f_i$表示背包容量为$i(1\le i \le 2\times 10^5)$时能取得的最大价值,则有$$f_m=\mathop{max}\limits_{i=1}^{2\times 10^5}\{\lfloor m/i \rfloor \times f_i + f_{m\%i}\}$$ 实现(100分):

DTOJ #2927. Around the world

梦想的初衷 提交于 2019-11-27 18:04:48
【题目描述】 注意,本题内存限制为 24 MiB 。 通过几年的努力,Byteasar最终拿到了飞行员驾驶证。为了庆祝这一事实,他打算买一架飞机并且绕Byteotia星球赤道飞行一圈。 但不幸的是赤道非常长所以需要中途加几次油。现在已知赤道上面所有飞机场,所有飞机从飞机场起飞降落也可以加油。因为买飞机是个十分重大的决定,Byteasar决定寻求你的帮助。他将会让你模拟不同的飞行路线。自然这些飞机一次能走的航程是不同的。 对于每次模拟,他想要知道最少需要降落多少次(包括最后一次)。需要注意的是起点可以任意选取。 【输入格式】 第 $1$ 行有两个正整数 $n$ 和 $s(2 \le n \le 1000000,1 \le s \le 100) $分别代表赤道上面的飞机场个数和询问的航班数。 第 $2$ 行有 $n$ 个正整数 $L_1,L_2,\cdots,L_n (L_1+L_2+\cdots+L_n \le 10^9)$按顺序给出了 $n$ 个相邻机场之间的距离。其中 $L_i$ 是第 $i$ 个与第 $i+1$ 个机场之间的距离,$L_n$ 是第 $n$ 个和第 $1$ 个之间的距离。 第 $3$ 行给出了 $s$ 个正整数 $d_i(1 \le di \le L_1+L_2+...+L_n)$。其中 $d_i$ 代表第 $i$ 个飞机一次能走的航程。 【输出格式】 输出 $s

题解-AtCoder ARC-078F Mole and Abandoned Mine

风流意气都作罢 提交于 2019-11-27 15:16:10
problem ATC-arc078F 题意概要:给定一个 \(n\) 点 \(m\) 边简单无向图(无自环无重边),边有费用,现切去若干条边,使得从 \(1\) 到 \(n\) 有且仅有一条简单路径,求最小化花费。 \(n\le 15, n-1\le m\le \binom n2\) Solution 看到 \(n\leq 15\) 大概就能猜到复杂度是 \(O(3^n)\) 左右的,然后直接思考用斯坦纳树咋解,无果。 开始思考最终局面的情况,一定是有一条 \(1\) 到 \(n\) 的路径,且不能存在其他路径连接这条路径上的两个点。换句话说,就是从每个点出发且只走非路径边的话只能到达一个路径上的点。 考虑原问题要求最小化删边费用,对应上面的做法容易想到要转换为最大化留下来的边权和 把图画出来,大概是说路径上每个点下头都挂上了若干个集合,而由于要最大化比边权和,所以每个集合内部的所有边均予以保留。 那么就很容易得到一个dp:设 \(f[i][S]\) 表示在路径(最终连接 \(1\) 和 \(n\) 的路径)上走到了 \(i\) ,并且集合 \(S\) 内的点已经挂在了前头,那么有两种转移: 在路径上更进一步: \(f[i][S] \rightarrow f[j][S\cup \{j\}]\) ,增加权值为连接 \(i,j\) 的边权 在当前点挂一个集合: \(f[i][S]