摘要: 题意:给定p=1e9+7,构造x,y使其满足(x+y) mod p = b,(x*y) mod p = c . 思路:不考虑取模的情况下, 。在取模的意义下,,因为a是模p的二次剩余的充分必要条件为 ,所以可以根据二次剩余求出x-y。 https://www.cnblogs.com/lfri/p/1 阅读全文
posted @ 2019-10-30 17:35 Young-children 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 概念: 离散化,把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。 通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。例如: 原数据:1,999,100000,15;处理后:1,3,4,2; 离散化,把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空 阅读全文
posted @ 2019-10-30 17:32 Young-children 阅读(560) 评论(0) 推荐(0) 编辑
摘要: 树状数组定义: 是一个查询和修改复杂度都为log(n)的数据结构。可以用于处理前缀和的问题,动态维护前缀和的工具 区间修改和区间查询用树状数组会显得很麻烦 相对而言用线段树会更灵活。 基本操作:求数列区间和,可以对数列单点进行操作。 前置知识: 差分数组 lowbit()操作:返回非负整数x 在二进 阅读全文
posted @ 2019-10-28 13:21 Young-children 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 一、差分数组的定义及用途1.定义:对于已知有n个元素的数列d,建立记录它每项与前一项差值的差分数组f:显然,f[1]=d[1]-0=d[1];对于整数i∈[2,n],我们让f[i]=d[i]-d[i-1]。 2.简单性质:(1)计算数列各项的值:观察d[2]=f[1]+f[2]=d[1]+d[2]- 阅读全文
posted @ 2019-10-27 21:27 Young-children 阅读(7643) 评论(1) 推荐(4) 编辑
摘要: 线段树可以分为四个部分 :单点更新 ,成段更新 ,区间合并 ,扫描线。 单点更新:即只更新叶子节点,可以单点用PushUP(int rt )来更新。 题目: hdu1166 敌兵布阵 update 单点增加 query 区间求和 /*输入 t样例 N(N<=50000) 第i个正整数ai代表第i个工 阅读全文
posted @ 2019-10-27 10:14 Young-children 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题目: 特大背包问题 (20分)C时间限制:1000 毫秒 | C内存限制:10000 Kb题目内容:现在有一个容量为C的背包和N个重量和价值已知的物品. 现在要从这n个物品中挑选出一些物品, 使得选择的物品的总重量不超过背包的容量, 且总价值最大.此题的数据范围:1 <= C <= 10^8(10 阅读全文
posted @ 2019-10-26 11:25 Young-children 阅读(2519) 评论(0) 推荐(0) 编辑
摘要: 参考博客:线段树详解 线段树入门&lazy思想 模板: #define Mid ((l+r)>>1) //注意括号 #define lson rt<<1,l,Mid //左结点 #define rson rt<<1|1,Mid+1,r //右结点 //线段树模板(单点更新) #define Mid 阅读全文
posted @ 2019-10-09 23:57 Young-children 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 组长大大辛辛苦苦整理的周任务,当然要好好完成啦。比较喜欢单调栈详解的博客,嘿嘿嘿。 相关博客收藏:单调栈原理及应用 详解 附各种类型的题目练习 std::stack 基本操作 个人理解: 单调栈简单来说就是根据栈的特点,保持栈内单调递增或递减。(栈:后进先出(LIFO-last in first o 阅读全文
posted @ 2019-09-27 22:00 Young-children 阅读(141) 评论(0) 推荐(0) 编辑
摘要: F Greedy Sequence You're given a permutation aa of length nn (1 \le n \le 10^51≤n≤105). For each i \in [1,n]i∈[1,n], construct a sequence s_isi​ by th 阅读全文
posted @ 2019-09-04 09:02 Young-children 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 渐近符号 基本的渐近符号:O 表示上界,即小于等于 ≤ o 表示小于 < Ω 表示下界,即大于等于 ≥ (与O相反) ω 表示大于 > (与o相反) Θ 表示渐近等于 = O( f(n) ) : 给出了算法运行时间的上界 , 也就是最坏情况下的时间复杂度Ω( f(n) ) : 给出了算法运行时间的下 阅读全文
posted @ 2019-09-02 20:11 Young-children 阅读(1409) 评论(0) 推荐(0) 编辑