QBXT Day2
遭遇
【问题描述】
你是能看到第一题的 friends呢。
—— hja
N座楼房,立于城中 。
第i座楼,高度 hi。
你需要一开始选择座楼,开始跳楼。 在第 i座楼准备跳需要 ci的花费。 每次可以跳到任何一个还没有过的楼上去。但是代价,另外一座楼的代价是两高度差绝对值 ,最后一次从楼上跳到地面不需 要代价(只能跳到地上一次)。为在代价不超过 T的情况下,最多跳几次楼。 (一座楼 只能 跳一次 ,且每次 跳楼 都要 计算 准备 的花费 )
【输入格式】
第一行个整数 N,代表 楼的数量。
接下来一行 N个整数代表 ci。
接下来一行 N个整数代表 hi。
最后一行一个整数 T。
【输出格式】
一行个整数 代表答案 。
【样例输入】
4
3 5 4 11
2 1
3 17
【样例输出】
3
【样例解释】
从1号楼跳到 2号楼再跳到 3号楼是一种 可行 的方案 。
【数据范围与规定】
对于 30%的数据, 1≤n≤5。
对于另外 20%的数据,所有 ℎi相同。
对于另外 20%的数据, ci=0。
对于 100%的数据, 1≤N≤50,1≤ci,ℎi≤106,1≤T≤10^7。
30分:暴力搜索
hi相同的20%:按c为关键字,对数据进行排序。选择花费最小的楼开始跳(贪心)
ci=0的20%:按高度h由大到小进行排序,然后按高度由高到低进行跳跃。
100%:
a.
考虑一个跳楼的集合{1,2,4,5}。
\begin{equation*}cost1=c_1+c_2+c_4+c_5.\end{equation*}
按h对数据排序。
推一下式子:$cost2=h_max - h_min$.
枚举起点和终点(最高的楼和最低的楼),那么只需要确定cost1的代价。
由于假定i是最低的一栋楼,j是最高的一栋楼。所以只需要找到使得len([i,j])最大,且$cost\leq T$的值。
复杂度$O(n^3\log n)$
b.
标程做法:动态规划。
设状态f[i][j]表示现在停留在第i栋楼上,已经跳了j次楼的最小花费是多少。
转移:直接枚举下一次跳的是哪一栋楼。($i<k\leq n$)。转移方程$f[k][j+1]=\min\{f[k][j+1], f[i][j]+f[i][j]+c[k]+h[k]-h[i]\}$
答案:枚举所有的f[i][j],$ans=\max\{f[i][j]\leq T\}$
都市
【问题描述】
你是能看到第二题的 friends呢。
—— laekov
塔立于都市, 攀登上塔,能够到达更远的地方。但是需要破解谜 题。仍然有 N个数,但并不给你 而是了$N\times\frac{N-1}{2}$个数,代表它们两两的和。那么,这 N个数是多少呢?
【输入格式】
一行个整数 N。
接下来一行 $N\times\frac{N-1}{2}$个数,代表两之和。
【输出格式】
第一行个整数 s代表解的个数 。
接下来 s行 ,每行N个数 代表一组解,数从小到大排列。解的顺序按照字典从大到小排列。
【样例输入1】
4
3 5 4 7 6 5
【样例输出1】
1
1 2 3 4
【样例输入2】
4
11 17 21 12 20 15
【样例输出2】
2
4 7 8 13
3 8 9 12
【数据范围与规定】
对于 30%的数据, 1≤N≤5,N个数均不超过 10。
对于 60%的数据, 1≤N≤50,N个数均不超过 100。
对于 100%的数据, 1≤N≤300,N个数均不超过 10^8。
考虑最终的答案为$a_1,a_2,\cdots,a_n$;题目给出的数为$b_1,b_2,\cdots,b_{\frac{n\times(n-1)}{2}}$。
给两个数组排序。易证以上两个数列存在以下性质:
1. $a_1+a_2=b_1$,
2. $a_1+a_3=b_2$.
但是不能保证$a_2+a_3$的值。
设$a_2+a_3=x$,可以算出$a_1,a_2,a_3$,把这三个数从b数组中删掉,可以证明a[1]+a[4]为最小值。计算出a[4]的值,然后可以确定a[1]+a[5]为最小值。然后就可以做了。
现在问题变为求x的值。枚举a[2]+a[3]在是b数组中是哪一个。从头到尾解一遍方程验证是否合法。
或者二分?set/map/手写平衡树?
街灯
【问题描述】
你是能看到第三题的 friends呢。
—— aoao
街上的灯亮起,指引向着远方的路。每个街灯上都有一数, 每次询问,第l个街灯到第 r个街灯上的数模 p等于 v的有几个。
【输入格式】
第一行两个数 N,M,代表街灯的个数 和询问。
接下来一行 N个数,代表 街灯上的数。
接下来M行,每四个数 l,r,p,v代表一组询问。
【输出格式】
对于每次询问,输出一行代表答案 。
【样例输入】
5 2
1 5 2 3 7
1
3 2 2 5 3 0
【样例输出】
2
1
【数据规模与约定】
对于 30%的数据, 1≤N,M≤10^3。
对于另外 30%的 数据,每次询问的p一样。
对于 100%的数据, 1≤N,M≤10^5,街灯上的数不超过 10^4,1≤p≤10^9。
30%:暴力
p相等的30%:
把所有的数先mod p,然后开p个vector ,记录mod p == v的数。然后用线段树。
e.g.
1 5 2 3 4 p==3
1 2 2 0 1
vector<int> v[p];
v=0: 4
v=1: 1,5
v=2: 2,3
二分区间。
100%:
同上60%的做法。可以只考虑$p\leq 10^4$的情况,预处理出p的所有情况(TLE)。
可以只对$p \leq 100$的部分进行预处理。对于所有$p\leq 100$的值,同60%的做法,在对应的数组中二分一下即可。
对于p>100的情况,就不预处理了。容易看出$v+kp\leq 10^4 \rightarrow p\leq 100$.
最多枚举100个数,同60分的做法,在数组中二分即可。$O(n\sqrt n\log n)$
主席树?
洗澡
【问题描述】
你是能看到第一题的 friends 呢。
——hja
洗澡的地方,有一段括号序列,将一个括号修改一次需要1的代价(将左括
号变成右括号或者相反) ,求最小代价使得括号序列合法。
【输入格式】
一行一个括号序列。
【输出格式】
一行一个整数代表答案。
【样例输入】
())(
【样例输出】
2
【数据范围与规定】
50%的数据,括号序列长度不超过100。
对于100%的数据,括号序列长度不超过10 5 且一定为偶数,只包含小括号。
SB原题。栈模拟。然而我zz。
日记
【问题描述】
你是能看到第二题的 friends 呢。
——laekov
日记之中,写满了质数,两个质数之间如果没有其他质数,那么则称为相
邻的质数。给定?,?,询问不超过?的数中能够表示成连续?个质数之和的最大
的数是多少。
【输入格式】
第一行一个整数?代表数据组数。
对于每组数据,一行行两个整数?,?。
【输出格式】
对于每组数据,一行一个整数代表答案。如果不存在,则输出−1。
【样例输入】
3
20 2
20 3
20 4
【样例输出】
18
15
17
【数据范围与规定】
21 ≤ ? ≤ 100。
40%的数据,? = 1。
另外20%的数据,所有的询问的?相等。
对于100%的数据,1 ≤ ? < 2000,1 ≤ ? ≤ 10 6 。
QBXT Day2的更多相关文章
- qbxt Day2 on 19-7-25
qbxt Day2 on 19-7-25 --TGZCBY 上午 1. 矩阵乘法在图论上的应用 有的时候图论的转移方程可以用dp的方式转移 特别是两个数的乘积求和的时候 比如邻接矩阵中f[i][j]表 ...
- QBXT Day2主要是数据结构(没写完先占坑)
简单数据结构 本节课可能用到的一些复杂度: O(log n). 1/1+1/1/.....1/N+O(n log n) 在我们初学OI的时候,总会遇到这么一道题. 给出N次操作,每次加入一个数,或者询 ...
- 【qbxt五一】day2
简单数据结构 入门题: 在初学OI的时候,总会遇到这么一道题. 给出N次操作,每次加入一个数,或者询问当前所有数的最大值. 维护一个最大值Max,每次加入和最大值进行比较. 时间复杂度O(N). 给出 ...
- QBXT T15214 Day2上午遭遇
题目描述 你是能看到第一题的 friends呢. -- hja ?座楼房,立于城中 . 第?座楼,高度 ℎ?. 你需要一开始选择座楼,跳. 在第 ?座楼准备跳需要 ??的花费. 每次可以跳到任何一个还 ...
- Qbxt 模拟题 day2(am) T2 jian
[问题描述] 有N个数,随机选择一段区间,如果这段区间的所有数的平均值在[L,R]中则你比较厉害.求你比较厉害的概率. [输入格式] 第一行有三个数N, l, r,含义如上描述. 接下来一行有N个数代 ...
- qbxt五一数学Day2
目录 1. 判断素数(素性测试) 1. \(O(\sqrt n)\) 试除 2. Miller-Rabin 素性测试 * 欧拉函数 2. 逆元 3. exgcd(扩展欧几里得) 4. 离散对数(BSG ...
- QBXT春季培训酱油记
Day-1: 下午回家收拾东西,明天去JN,先通知一下在JN的lll dalao明天去见他,然而手办到了,心情大好啊有没有,有没有! 晚上单曲循环<初音未来的消失>,睡觉的时候哭得稀里哗啦 ...
- 【从零开始学BPM,Day2】默认表单开发
[课程主题]主题:5天,一起从零开始学习BPM[课程形式]1.为期5天的短任务学习2.每天观看一个视频,视频学习时间自由安排. [第二天课程] Step 1 软件下载:H3 BPM10.0全开放免费下 ...
- NOIp2016 Day1&Day2 解题报告
Day1 T1 toy 本题考查你会不会编程. //toy //by Cydiater //2016.11.19 #include <iostream> #include <cstd ...
随机推荐
- UVA 10905
这题一开始比较错了.两字符串比较应该是 ab和ba两字符串连接起来比较,谁在前面大就排前面. #include <iostream> #include <cstdio> #in ...
- velocity.js 中文文档 (教程)
velocity.js 是一个简单易用.高性能.功能丰富的轻量级JS动画库.它能和 jQuery 完美协作,并和$.animate()有相同的 API, 但它不依赖 jQuery,可单独使用. Vel ...
- 2-2 第二天 利用 QQ 浏览器代理调试端口
在没有域名服务器的情况下微信代理的方案 echo "api_key: N3DYn5356kYDvcd67fRxoecKxQV7fTE0" > ~/.ultrahook gem ...
- Django day15 (二) csrf的 跨站请求伪造 与 局部禁用 , 局部使用
一: csrf 的跨站请求伪造 二: csrf 的局部禁用 , 局部使用
- Java NIO Buffer说明
Buffer 有3个重要的参数:位置(position).容量(capactiy).上限(limit) 位置(position): 写:当前缓冲区的位置,将从position的下一个位置写数据. 读: ...
- BZOJ 1914 计算几何
思路: 我们可以算不合法的 如果三个点都在同一侧 就不合法.. 用总方案数减掉就可以了 (有神奇的实现方法...) //By SiriusRen #include <cmath> #inc ...
- Y - Anton and Letters
Problem description Recently, Anton has found a set. The set consists of small English letters. Anto ...
- jQuery学习笔记之插件开发(4)
jQuery学习笔记之插件开发(4) github源码地址 插件:了让原有功能的增强. 1.插件的种类(3种):局部.全局.选择器插件 1.1封装对象方法的插件 这种类型的插件是把一些常用或者重复使用 ...
- Android 关于Fragment重叠问题分析和解决
一.问题描述 相信大家在使用Fragment的过程中,肯定碰到过Fragment重叠的问题,重启应用就好了.然而原因是什么呢? 二.原因分析 首先,Android管理Fragment有两种方式,使用a ...
- Android 使用SQLite存储以及读取Drawable对象
在进行Android开发过程中,我们经常会接触到Drawable对象,那么,若要使用数据库来进行存储及读取,该如何实现? 一.存储 //第一步,将Drawable对象转化为Bitmap对象 Bitma ...