随笔分类 - OIer的算法乱写
写一写NOIP/NOI/CTSC的通用算法和模板
摘要:脑补了一下今天的比赛难度和之前zju-lzw出的题目画风迥异。 难度完全不是一个水平的好伐。 Probem A palindrome 给出一个$n$个元素的数组,可以任意指定一个数字$m$让所有$a_i = a_i \% m$。 使得最终得出的数组成为形如$\{1,2,3,2,1\}$的回文数组,求
阅读全文
摘要:(这里是Splay基础操作,reserve什么的会在下一篇里面讲) 好久之前就说要学Splay了,结果苟到现在才学习。 可能是最近良心发现自己实在太弱了,听数学又听不懂只好多学点不要脑子的数据结构。 感觉Splay比Treap良心多了——代码真的好写。 对于Splay显然可以维护Treap的所有操作
阅读全文
摘要:Nim游戏在ACM中碰到了,就拎出来写写。 一般Nim游戏:有n堆石子,每堆石子有$a_i$个,每次可以取每堆石子中$[0,a_i-1]$,问先手是否有必胜策略。 泛Nim游戏:每堆石子有$a_i$个,每次可以取每堆石子中若干个且有一定限制,问先手是否有必胜策略。 我们定义 : P 表示 先手必败局
阅读全文
摘要:NOIP-NOI-ZJOI基础模板总结 C++语言和STL库操作 重载运算符操作 算法类: sort swap next_permutation max,min 容器类: list 双端链表 bitset stack queue deque priority_queue(重载优先级) vector
阅读全文
摘要:https://www.xoj.red/contests/show/1231 下面会写一些题目的解析什么的,当然不会粘贴题目只是简单提一下 (部分题目简单的题目就不概括了) 其实难度应该前面比较低. 问题A: 3894: Out of Sorts 本题求出冒泡排序需要几趟。 考虑一次冒泡排序的交换,
阅读全文
摘要:这里学习一下DP的正确姿势。 也为了ZJOI2019去水一下做一些准备 题解就随便写写啦. 后续还是会有专题练习和综合练习的. P1005 矩阵取数游戏 给出$n \times m$矩阵每次在每一行取n个数,一共取m次, 第i次取数的权值是$2^i$,给出一个取数的顺序,最大化取完所有数的贡献和。
阅读全文
摘要:前言 这个...博客园右边实在是太窄太窄了! 而且不能分类 ..这里放一波友链... 感谢一路有你!!! WLOI (我们曾经度过的OI岁月) oycy0306 欧阳创宇 Daekleaf 林士涵 翠竹叶飞 叶卓睿 HGOI (一起拼搏的OI故事) dasxxx 周长赫 excited frog 翁
阅读全文
摘要:数据结构中的一块内容:$CDQ$分治算法。 $CDQ$显然是一个人的名字,陈丹琪(NOI2008金牌女选手) 这种离线分治算法被算法界称为"cdq分治" 我们知道,一个动态的问题一定是由"更改""查询"操作构成的,显然,有些“更改”会改变"查询的结果",而有些不能 如果我们合理安排一个次序,把每一个
阅读全文
摘要:引子 我们在生活中可能会遇到这样的问题,要是某一变化是基于某一个历史版本而来的变化。 这样处理的过程就比较困难。(然而对于暴力这个一点都不困难) 有什么是暴力算法解决不了的呢? 又有什么暴力算法是优化不了的呢? 我们分析暴力算法的复杂度(裸暴力我们就不说了) 考虑有点技术含量的暴力:我开M个数据结构
阅读全文
摘要:/*今天的基础数论我觉得我还是重新温习一下比较好!*/ 时光真的是个迷,第二次重新听当年初二XX学堂讲数论突然觉得好亲切! 我还是写写吧,应该很清楚!希望对大家有点用! 知识点1:快速幂(卡粟米) 求ap其实可以用分治的思想来求 就是不断的分治,直到p=0,返回1. 递归写法: 非递归写法: 知识点
阅读全文
摘要:数位DP学习笔记 什么是数位DP? 数位DP比较经典的题目是在数字Li和Ri之间求有多少个满足X性质的数,显然对于所有的题目都可以这样得到一些暴力的分数 我们称之为朴素算法: 所有的算法都是为了减少运算步骤这一个基本原理来优化的,我们考虑这样暴力的优化,显然数的位数上面满足X性质,有些时候X性质并不
阅读全文
摘要:浅谈普通平衡树Treap 平衡树,Treap=Tree+heap这是一个很形象的东西 我们要维护一棵树,它满足堆的性质和二叉查找树的性质(BST),这样的二叉树我们叫做平衡树 并且平衡树它的结构是接近于比较均衡的。 考虑Treap解决的问题:插入,删除,排名(排名为x的数,数x的排名)、前驱和后继
阅读全文
摘要:40 pts: 考场上打了40分暴力,理论的话就是概率树,把每一个状态去去到各个带权(概率)的和就是答案 最终处理的话就是dfs出01序列0代表没有幻象,1代表出现幻象然后在每一次dfs出一段序列的时候双指针check一下更新答案 代码并不难,就是这样写的复杂度O(2n) code: (40pts)
阅读全文
摘要:整除分块 HGOI20181027模拟题: 给定n,m,快速求出 FHT(n,m) % (1e9+7)的值。 对于100%的数据: n,m <= 1,000,000,000 然后为了这个问题我们去找了整除分块的算法: (例题) [CQOI2007]余数求和 https://www.luogu.org
阅读全文
摘要:NOIP2018在即,20181009总结一些易错的知识点和解题方法 ——by ljc20020730 HGOI NOIP2018 No regrets youth ! NOIP2018 No regrets youth ! NOIP2018 No regrets youth ! 解题方法概述 选择
阅读全文
摘要:莫队算法是优雅的暴力而不是什么神奇的数据结构。 只要是区间离线可以算的莫队几乎都可以达到O(n sqrt (n) )的时间复杂度 为什么叫莫队算法呢?据说这是2010年国家集训队的莫涛在作业里提到了这个方法。 由于莫涛经常打比赛做队长,大家都叫他莫队,该算法也被称为莫队算法。 一个例题:给出数组n个
阅读全文
摘要:竞赛题目欣赏: 一道完整的竞赛题包含如下信息: Preblem Name: Hello World! Program Name:helloworld.cpp/.pas/.c Background: Special for beginners, ^_^ Hello World 中文意思是『你好,世界』
阅读全文
摘要:【字符串算法1】 字符串Hash(优雅的暴力) 【字符串算法2】Manacher算法 【字符串算法3】KMP算法 这里将讲述 【字符串算法1】 字符串Hash 老版原文: RK哈希(Rabin_Karp 哈希) 仅仅具有参考价值 新版题目:【字符串算法1】 再谈字符串Hash(优雅的暴力) 概念 -
阅读全文
摘要:【字符串算法1】 字符串Hash(优雅的暴力) 【字符串算法2】Manacher算法 【字符串算法3】KMP算法 这里将讲述 字符串算法2:Manacher算法 问题:给出字符串S(限制见后)求出最大回文子串长度 Subtask1 对于10%的数据 |S|∈(0,100] Subtask2 对于30
阅读全文
摘要:【字符串算法1】 字符串Hash(优雅的暴力) 【字符串算法2】Manacher算法 【字符串算法3】KMP算法 这里将讲述 【字符串算法3】KMP算法 Part1 理解KMP的精髓和思想 其实KMP我也不太懂。。有可能会误人子弟qwq 好的吧现在开始 KMP处理这样一个问题: 给出两个字符串s1和
阅读全文