上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 21 下一页
摘要: 贪心,模拟,线段树,动态规划,线性基,差分数组,bfs,gcd,快速幂 阅读全文
posted @ 2019-02-15 14:22 fishers 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 给出N个整数A1,A2,..,Av,你需要处理区间加,区间求和。 输入格式 第一行两个整数N和Q(1≤N,Q≤105)。 第二行N个整数,表示A1,A2...Av(|A;≤109)的初始值。 接下来Q行,每行一个操作: cabc,表示Aa,Aa+1…Ab每个数加c(lcl≤10000)。 Qab,表 阅读全文
posted @ 2019-02-13 14:50 fishers 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 帕吉的肉钩 在DotA游戏中,帕吉的肉钩是很多英雄最害怕的东西。钩子由连续若干段的等长金属棒制成。 现在帕吉对钩子由一些操作: 我们将金属棒1~n依次编号,帕吉可以把编号x~y的金属棒变成铜棒、银棒、金棒。 每段铜棒的价值是1;每段银棒的价值是2;每段金棒的价值是3。 肉钩的总价值是n段金属棒价值之 阅读全文
posted @ 2019-02-13 14:49 fishers 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 线段树 区间更新 区间和模板 代码: include using namespace std; const int MAX_N = 10010; int s[4 MAX_N],col[4 MAX_N]; void up(int p){ s[p] = s[p 2] + s[p 2 + 1]; } vo 阅读全文
posted @ 2019-02-13 14:48 fishers 阅读(564) 评论(0) 推荐(0) 编辑
摘要: 公告板 蒜厂有一个h×w的矩形公告板,其中h是高度,w是宽度。 现在有若干张1×W的公告,W是宽度,公告只能横着放,即高度为1的边垂直于水平面,且不能互相有重叠,每张公告都要求尽可能的放在最上面的合法的位置上。 若可以放置,输出每块可放置的位置的行号;若不存在,输出一1。行号由上至下分别为1,2…, 阅读全文
posted @ 2019-02-11 21:19 fishers 阅读(395) 评论(0) 推荐(2) 编辑
摘要: 最甜的苹果 蒜头君有很多苹果,每个苹果都有对应的甜度值。 蒜头君现在想快速知道从第i个苹果到第j个苹果中,最甜的甜度值是多少。 因为存放时间久了,有的苹果会变甜,有的苹果会因为腐烂而变得不甜,所以蒜头君有时候还需要修改第i个苹果的甜度值。输入格式 第一行输入两个正整数N,M(0 using name 阅读全文
posted @ 2019-02-11 21:17 fishers 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 线段树,维护区间和 阅读全文
posted @ 2019-02-11 21:15 fishers 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 牛客寒假基础训练营 题目描述 小j开始打工,准备赚钱买煤气灶。 第一天,小j的工资为n元,之后每天他的工资都比前一天多d元。 已知煤气灶需要m元,求小j最少工作几天才能买到煤气灶。 输入描述: 四个整数 n,m,d,x 分别表示小j第一天的工资,煤气灶的价格,工资每天的增长量,答案不超过x 输出描述 阅读全文
posted @ 2019-02-09 17:03 fishers 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 思路一:环形数组拆分成普通数组(通过搬运复制数据到尾部),再求前缀和,找出最大前缀和。因为枚举了每一个起点 所以最大连续和也一定出现在前缀和中! 思路二:1、如果子序列的最大和在 1 到 n 的范围内,直接输出最大和即可 2、如果子序列的最大和横跨了尾部和头部,则先求出连续的最小子序列和然后用总和减 阅读全文
posted @ 2019-02-01 16:03 fishers 阅读(644) 评论(0) 推荐(0) 编辑
摘要: 样例输入: 3 4 5 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 0 1 5 6 1 1 1 1 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 10 10 1 1 1 1 1 1 1 1 1 1 1 0 0 0 阅读全文
posted @ 2019-02-01 15:58 fishers 阅读(526) 评论(0) 推荐(0) 编辑
摘要: 样例输入: 6 1 9 7 3 5 5 样例输出: 4 思路:贪心,选错贪心思路,只能过一小部分数据,正确贪心思路:从前一半遍历,在后一半中找到比当前元素的两倍大的数(因为这里指针不会后移,所以可以采用双指针) 代码: include using namespace std; int arr[500 阅读全文
posted @ 2019-02-01 15:12 fishers 阅读(797) 评论(0) 推荐(0) 编辑
摘要: 样例输入: 3 ba a aba 样例输出: 2 3 1 思路一:暴力,只能过50%数据,枚举每一个字符串,内层枚举其他字符串判断是否以这个字符串为后缀 思路二:哈希表,存储每一个后缀的数目,string.substr函数取后缀 substr用法: 代码一: include using namesp 阅读全文
posted @ 2019-02-01 13:50 fishers 阅读(891) 评论(0) 推荐(0) 编辑
摘要: include using namespace std; const int N = 1e5 + 9; int f[N], a[N]; int n; //二分查找: 在f数组中查找到第一个比x大的数的下标 int find(int l, int r, int x) { while (l 阅读全文
posted @ 2019-02-01 11:39 fishers 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 思路:从l枚举到r肯定超时,这时我们要转变思路!题目让我们求一个区间内的d的倍数,只需要求出r/d l/d就是区间内d倍数的个数。 代码: include using namespace std; long long r = 12302135942453; int l = 1032; int d = 阅读全文
posted @ 2019-02-01 11:23 fishers 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 找质数 思路:数据大,用线性筛,筛选素数表,最后查表:题目让我们查找相加等于n的两个数,那么我们就枚举1个素数a,在素数表中查找是否存在n a也是素数。 注意事项:数据大,不宜用输入输出流,cout、cin、endl这些改成printf scanf 代码: include int t; int n; 阅读全文
posted @ 2019-01-31 21:10 fishers 阅读(723) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 21 下一页