02 2019 档案
摘要:【题目背景】 开学了,小奇在回地球的路上,遇到了一个棘手的问题。 【问题描述】 简单来说,它要从标号为 1 的星球到标号为 n 的星球,某一些星球之间有航线。 由于超时空隧道的存在,从一个星球到另一个星球时间可能会倒流,而且,从星 球 a 到 b 耗费的时间和星球 b 到 a 耗费的时间不一定相同。
阅读全文
摘要:【题目背景】 小奇总是在数学课上思考奇怪的问题。 【问题描述】 给定一个长度为 n 的数列,以及 m 次询问,每次给出三个数 l,r 和 P, 询问 (a[l'] + a[l'+1] + ... + a[r']) mod P 的最小值。 其中 l <= l' <= r' <= r。 即模意义下的区间
阅读全文
摘要:【题目背景】 小奇要开采一些矿物,它驾驶着一台带有钻头(初始能力值 w)的飞船,按既定 路线依次飞过喵星系的 n 个星球。 【问题描述】 星球分为 2 类:资源型和维修型。 1. 资源型:含矿物质量 a[i],若选择开采,则得到 a[i]*p 的金钱,之后钻头 损耗 k%,即 p=p*(1-0.01
阅读全文
摘要:本题是练习前缀和的好题!我们可以枚举前端点,确定一个长度为k的区间,然后利用前缀和统计区间内损坏的灯的数量,最后取最小值即可。AC代码: 1 #include <bits/stdc++.h> 2 3 using namespace std; 4 5 inline int read()//快速读入 6
阅读全文
摘要:本题是模拟题。 我们可以用b数组记录每个数字在a数组中出现的最后位置,然后从0到2·10^5依次寻找最后一次出现最早的数(注意是0!),最后统计输出即可。 AC代码: 1 #include <bits/stdc++.h>//万能头文件 2 3 using namespace std;//使用标准名字
阅读全文
摘要:Description 有 n 个矩形,每个矩形可以用两个整数 a, b 描述,表示它的长和宽。矩形 X(a, b) 可以嵌套在矩形 Y(c, d) 中当且仅当 a<c, b<d,或者 b<c, a<d(相当于把矩形 X 旋转了 90°)。例如 (1, 5) 可以嵌套在 (6, 2) 内,但不能嵌套
阅读全文
摘要:本题是很好的双指针练习题。 关于双指针,详见洛谷日报#73。 我们可以用两个指针l和r表示题中两人接下来要比较的数字,用fl标记下一个将要取的人,并分别用两个计数器统计双方的答案。 因此,我们有了如下AC代码: 1 #include <bits/stdc++.h>//万能头文件 2 3 using
阅读全文
摘要:以下选自官方题解: 考虑困难的需求数量,我们将覆盖这些困难, 然后我们将提出新的问题,并准备新的问题来覆盖其他需求。 很明显,如果我们决定满足从n中抽取i的要求,那么最好采用那些复杂性最小的要求。 让我们把最难的问题简化成最简单的要求。 如果一切顺利,我们用n-i更新答案。 时间复杂度为O(n^2)
阅读全文
摘要:本题是排序基础题。 我们可以将a[i]、b[i]分别从小到大排序后,依次枚举比较两两组合是否符合要求,最后输出答案ans即可。 AC代码: 1 #include <bits/stdc++.h>//万能头文件 2 3 using namespace std;//使用标准名字空间 4 5 inline
阅读全文
摘要:3. val【题目描述】 这是一道传统题,源代码的文件名为 val.cpp/c/pas。 有一个值初始为 0,接下来 n 次你可以令其在之前基础上+2 或+1 或-1。你需要保证,这个值在整个过程中达到的最大值减去达到的最小值不大于 k,求方案数,模 1,000,000,007。【输入格式】 从 v
阅读全文
摘要:2. str 【题目描述】 这是一道传统题,源代码的文件名为 str.cpp/c/pas。 构造 n 个 01 字符串 S1...Sn,使得对于任意 i≠j,Si 不是 Sj 的前缀。在最小化串长和的前提下,求方案数,模 1,000,000,007。 【输入格式】 从 str.in 中读入。 仅一行
阅读全文
摘要:1. div【题目描述】 这是一道传统题,源代码的文件名为 div.cpp/c/pas。 给定一棵树,你要判断是否存在一条边,使得割掉这条边后,这棵树被分成了点数相等的两部分,并且如果存在,请你找到这条边。【输入格式】 从 div.in 中读入。 第一行,一个正整数 n。 接下来 n-1 行描述树的
阅读全文
摘要:这道题很明显是区间DP。 为了方便表示,我们可以将‘W’、‘I’、‘N’、‘G’分别设为1、2、3、4。 另外,DP可能有点丑,记忆化搜索可能写起来更容易理解。 AC代码:
阅读全文
摘要:这个题……用循环也是可以的,不过我写了两种循环的题解,供各位dalao参考!O(∩_∩)O谢谢! for循环版本: 1 #include<bits/stdc++.h>//万能头文件 2 using namespace std; 3 double x; 4 int s,i; 5 //把变量定义成全局变
阅读全文
摘要:首先,我们用一个数组s[11]存储每个苹果的高度。 然后,用a表示陶陶的身高。 接着,用a+30与s[i]比较,大于则计数器加一。 最后,输出计数器的值即可。 #include<bits/stdc++.h>//万能头文件 using namespace std; int a,s[11],i,j,k,
阅读全文
摘要:设三个数分别为n1、n2、n3,因为三个数的比为A:B:C,取一份量i,使得A·i=x,B·i=y,C·i=z(·是*的意思)。 所以我们的代码只需要枚举i,并以此判断n1、n2、n3是否为三位数且包含1-9这九个数字即可。 判断是否包含1-9可以用p数组记录每个数字是否出现过,1为出现,0为没出现
阅读全文
摘要:一看题目名字,下意识地认为DP。 打开题目,发现是一道水的贪心,和DP没一分钱关系(毕竟是洛谷最水月赛的T2)。 废话不多说。 看完题面,首先想到排序。要将乱序的石头高度变为有序,才能更好地想题。 C++排序代码:sort(a+1,a+1+n); (STL大法好!) 因为要使耗费的体力值最大,所以距
阅读全文
摘要:这是一道枚举经典题。 本题有三种做法,各位需要根据每个题的数据范围来决定自己用哪种方法。 本题解中统一设最大和为Max。 方法一、 枚举子序列,从起点到终点求和。时间复杂度:O(n^3) 我们可以枚举它的子序列,也就是枚举它的长度、起点和终点。我们不妨设长度为i,起点为j,终点为k,当前子序列的和为
阅读全文
摘要:题面:https://www.luogu.org/problemnew/show/P1332 很容易看出,这是一个典型的广度优先搜索,也就是众多OIer口中的bfs。 先给各位普及一下bfs(部分来自百度): 广度优先搜索(Breadth-First Search),又称作宽度优先搜索,或横向优先搜
阅读全文
摘要:本题是数论好题! 首先我们需要了解一个关于数论的性质: 一个数只要后两位能被25(或4)整除,这个数就能被25(或4)整除。 同理,后三位:125(或8)、后四位:625(或16)亦是如此。 所以,我们只需要判断n中有没有能被25整除的两位数即可。 注意:由于需要判断有没有能被25整除的两位数,应暴
阅读全文
摘要:题意: 给出c1,c2,...cn,问对于任何一个正整数x,给出x%c1,x%c2,...的值x%k的值是否确定; 思路: 中国剩余定理。详见https://blog.csdn.net/acdreamers/article/details/8050018 代码: #include<bits/stdc
阅读全文