- 博客(102)
- 收藏
- 关注
原创 【暖*墟】#优化# 读入优化和输出优化
1. 读入优化最易懂的读入优化(正负整数)void read(int &x){ //'&'表示引用,在函数中改变了x的值就意味着在外面x的值也会被改变 int f=1; //标记正负 x=0; //归零 char s=getchar(); //读入第一个字符 while(s<'0'||s>'9'){ //不是数字字符 ...
2018-08-30 08:41:40 240
原创 【缄*默】 #DP# 各种DP的实现方法(更新ing)
DP =「状态」+「阶段」+「决策」基本原理 = 「有向无环图」+「最优子结构」+「无后效性」 目录一. 线性DP{ 1.概念引入 }{ 2.例题详解 }【例题1】caioj 1064 最长上升子序列【例题2】caioj 1068 最长公共子序列【例题3】洛谷 p1216 数字三角形【例题4】poj 2279 Picture Permutations【例...
2018-08-23 11:23:26 1342
原创 【缄*默】 #数论专题# 数论知识点全面总结(更新ing)
数论中最重要的函数:欧拉函数和莫比乌斯函数。目录【一. 整除与约数】1.整除的基本概念2.取整除法(1)取整除法的概念和应用(2)取整除法求和3.因子和约数(1)基础概念(2)求N的正约数集合——试除法(3)试除法的推论(4)求1~N每个数的正约数集合——倍数法(5)倍数法的推论【例题】洛谷 p1403 约数研究【例题】 bzoj 1053 ...
2018-08-21 17:29:40 1230
原创 【浮*光】 #noip总复习# hss_2018noip_rp++
广搜复习题 https://www.luogu.org/problemnew/show/P2324√ 线段树复习题 https://www.luogu.org/problemnew/show/P4041√ 最短路+dp复习题 https://www.luogu.org/problemnew/show/P1772√ 并查集复习题 https://www.luogu.org/problem...
2018-11-09 09:40:35 1038
原创 【浮*光】 #noip模拟10.24#
我真的.真的..真的...炒鸡炒鸡高兴的说!因为,在noip前16天,我快要退役的时候,居然 ...AK辣 ~\(≧▽≦)/~ 啦啦啦好吧我承认我是 295分 ......而且这么高是因为第二题抄了 斜率优化 的模板,第三题和 LRZ大神 讨论了并且抄了他的dfs ......可能是这套题比较符合我的口味吧?而且很快的切掉了第一题...特别顺利的说!反正无论如何,就...
2018-10-24 13:27:10 351
原创 【暖*墟】 #图论# 强连通分量与缩点(tarjan)
tarjan求有向图强连通分量(scc) 【一. 常见概念理解】【二. 常见数组及其使用】【三. tarjan算法的实现过程】【四. 常见例题分析】【一. 常见概念理解】强连通分量:任意两个节点相互可达的强连通图中最大的一个。 tarjan:一个类似dfs的过程,用于寻找有向图中的强连通分量。 缩点:对于具有传导性的关系,把有向图中的"环"缩成点,形成有向...
2018-10-22 13:31:51 340
原创 【暖*墟】 #数据结构# 分块入门训练题1~9
引入 foreword数列分块就是把数列中【每m个元素打包起来】,达到优化算法的目的。把每m个元素分为一块,共有n/m块,区间修改涉及O(n/m)个整块,以及两侧两个不完整的块。每次操作对每个整块直接标记,而由于不完整的块的元素比较少,暴力修改元素的值。每次询问时返回元素的值加上其所在块的加法标记。每次操作的复杂度是O(n/m)+O(m)。根据均值不等式,当m取√n时总复杂度...
2018-10-20 16:55:08 797 1
原创 【暖*墟】 #图论# 二分图匹配
一、二分图的匹配对于一个二分图G的子图M,若M的边集E的任意两条边都不连接同一个顶点,则称M为G的一个匹配。即:“任意两条边没有公共端点”的边的集合。二、最大匹配对于二分图G的一个子图M,若M为其边数最多的子图,则M为G的最大匹配。增广路:也称增广轨或交错轨。若P是图G中【一条连通两个未匹配顶点的(长)路径】,属于M的边和不属于M的边(已匹配和待匹配的边)在P上交替出现(一...
2018-10-11 09:22:04 228
转载 【暖*墟】 #图论# 二分图判定
二分图判断二分图:顶点可以分成两个不相交的集合U和V,使得同一集合内的顶点不相邻的图。无向图为二分图的充分必要条件:G至少有两个顶点,且其所有回路的长度均为偶数。判断某个图是否是二分图可以用着色问题解决。我们从图中任选一个顶点s,并把它着为红色,接着s的邻居必须着为蓝色,然后s邻居的邻居再次作为红色,这样一层一层着色,直到整个图被着色为止;如果在着色过程中产生了冲突,即...
2018-10-10 19:05:52 381
原创 【浮*光】 #树状数组# 洛谷P2161 [SHOI2009]会场预约
题目大意设计一个数据结构,支持两种操作: 1. A i j 添加一个新的预约[i,j],并删除所有与其冲突的预约。 返回此次操作删除的预约的个数。2. B 返回当前的预约总数。方法分析A操作的真实目的:查询一个区间中有多少种颜色。并且清空所有在该区间中的颜色,把区间修改成另一种颜色。因为任何时候区间的末端、都会随始端递增而递增,所以可以用差分的方法。用树状数组维护【始端个...
2018-09-28 16:13:29 261
原创 【浮*光】 #Trie+Hash# 洛谷p3449 [POI2006]PAL-Palindromes
题目描述给出n个回文串s1, s2, …, sn,求如下二元组(i, j)的个数:si+sj仍然是回文串。简要分析注意n个串是回文串的条件,这样会使倒序hash方便很多。所以直接选择字典序hash。把所有串插入一个trie树,记录每个串的hash值。枚举每个串的每个前缀,如果能和其他串的结束点重合,就判断正反hash。正反hash匹配的方式为:代码实现...
2018-09-26 19:25:52 217
原创 【浮*光】 #noip模拟9.26# 2016清北学堂
目录T1 铺瓷砖 ヽ(✿゚▽゚)ノT2 小Y的问题 (๑•̀ㅂ•́)و✧T3 水管工的难题 ╰(*°▽°*)╯T1 铺瓷砖【问题描述】有一面很长很长的墙。你需要在这面墙上贴上两行瓷砖。 你的手头有两种不同尺寸的瓷砖, 你希望用这两种瓷砖各贴一行。 贴在第一行的每块瓷砖长度为A/B,贴在第二行的每块瓷砖长度为C/D。如上图所示,两排瓷砖从同一起始位置开始向右排列...
2018-09-26 15:27:33 373 2
原创 Educational Codeforces Round 51 (Rated for Div. 2) A,B,C,D 题解
目录【A. Vasya And Password】【B. Relatively Prime Pairs】【C. Vasya and Multisets】【D. Bicolorings】【A. Vasya And Password】最少的操作使原串变成有数字+大小写字母的串。#include<iostream>#include<cstdi...
2018-09-21 10:05:05 303
原创 Codeforces Round #509 (Div. 2) A,B,C,D 题解
这是蒟蒻的真·第一场CF...所以其实升了1500+还是不错吧? A. Heist题意:找包含给出的n个数的最短连续序列,输出新加入的数的最小个数。分析:排序+扫描即可。#include<iostream>#include<cstdlib>#include<cstring>#include<cstdio>#inc...
2018-09-17 08:55:59 486
原创 【缄*默】 #图论# 图论知识点全面总结
一. 图的储存结构【1.1 邻接矩阵】图的邻接矩阵存储方式是用两个数组来表示图。一个一维数组存储顶点信息,一个二维数组(邻接矩阵)存储边的信息。设图G有n个顶点,则邻接矩阵是一个n*n的方阵,定义为: 看一个实例,下图左就是一个无向图。 从上面可以看出,无向图的边数组是一个对称矩阵。所谓对称矩阵就是n阶矩阵的元满足a...
2018-09-15 17:12:00 647
原创 【暖*墟】 #动态规划# 四边形不等式
如果对于任意的a1≤a2<b1≤b2,有m[a1,b1]+m[a2,b2]≤m[a1,b2]+m[a2,b1],那么m[i,j]满足四边形不等式。
2018-09-08 16:40:39 215
原创 【暖*墟】 #数论# 矩阵乘法与高斯消元
【矩阵乘法与高斯消元】 目录1.高斯消元的概念方法【具体过程模拟】【具体代码实现】 2.矩阵与矩阵乘法 【例题2】洛谷 p3390 矩阵快速幂 【例题3】poj 3318 随机化算法 【例题4】hdu 2157 How many ways 【例题5】洛谷 p1349 广义斐波拉契数列一. 概念引入1.高斯消元的概念方法根据数学知识可...
2018-09-07 17:28:29 648 1
原创 【暖*墟】 #动态规划# 斜率优化DP方法总结
斜率优化DP方法总结 目录 { 一. 概念入门 } 【洛谷p2365】任务安排1 【poj1180****】任务安排2【大数据】【实现】“及时排除无用决策”的思想 【bzoj2726**】任务安排3【大数据】【负数】 【拓展********】任务安排4【多重负数】...
2018-09-06 18:05:49 362
转载 markdown
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...
2018-09-06 16:06:44 117
原创 【浮*光】 #状压DP# NOI2001&洛谷p2704 炮兵阵地
【NOI2001&洛谷p2704】炮兵阵地一个N*M的地图,每一格可能是山地(用“H” 表示),也可能是平原(用“P”表示)。 在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队)。 每个部队能够攻击到的区域:沿横向左右各两格,沿纵向上下各两格。 两支炮兵部队之间不能互相攻击,即任何炮兵部队都不在其他部队的攻击范围内。 在整个地图区域内最多能够摆放多少我军的炮...
2018-09-05 19:04:42 151
原创 【暖*墟】 #动态规划# 状态压缩DP方法总结
状压DP通常把一类以一个集合内的元素信息作为状态、且状态总数为指数级别的动态规划成为状态压缩DP。通常具有以下两个特点:数据规模的某一维或几维非常小(<25)。 具备DP的基本性质:最优子结构+无后效性。具体解题模式:【找状态】确定每行的M位二进制数中0、1的表示。 【存已知】存入时把初始每行的二进制状态变为一个十进制的数,便于数位操作。 【预处理】结合输入求...
2018-09-05 18:44:12 315
原创 【暖*墟】 #动态规划# 数位DP方法总结
数位DP是一种计数用的dp,一般是要统计一个区间[le,ri]内满足一些条件数的个数。一般问题:求出在给定区间 [ A , B ] 内,符合条件 P ( i ) 的数 i 的个数。条件 P ( i ) 一般与数的大小无关,而与 数的组成 有关。即:给定一些限制条件,求满足限制条件的第K小的数是多少。利用数位的性质,设计log级别复杂度的算法。最基本的思想是”逐位确定“,...
2018-09-04 15:29:58 462
原创 【暖*墟】 #数论# 高次同余方程
高次同余方程题意:求 A^x = B (mod P) 的解,其中A、P互质。【思路分析】因为a、p互质,所以可以在模p意义下执行关于a的乘除法运算。设 t=[√p(下取整)],将 x 转化为:x=i*t-j 。则方程变为:a^(i*t-j)=b (mod p),即 (a^t)^i=b*(a^j) (mod p) 。所以,对于所有的 j 属于[0,t-1],把 b*(...
2018-09-04 10:08:16 211
原创 【暖*墟】 #数论# 乘法逆元
看到了一种很神奇的乘法逆元求法qwqvoid exgcd(ll a,int b){ //求a%b条件下的乘法逆元 if(b==0){ x=1; y=0; return; } exgcd(b,a%b); x^=y^=x^=y; y-=a/b*x;}用的是扩展欧几里得,代码超级简单== 然后又看到了一种更简单的..0v0//求1~maxone的乘法逆元...
2018-09-03 20:07:27 162
原创 【暖*墟】 #快速幂# 快速幂的实现与运用
快速幂引入while(b > 0){ if(b & 1) ans *= base;/*询问此时b(二进制)的最后一位是 1 吗? 是的。这代表 a^{11} = a^8 × a^2 × a^1 中的“ × a^1 ”存在。所以 ans∗=base。注意,base的值是会流动的。 *//*关于 b & 1:“按位与”。x...
2018-09-03 07:50:47 148
原创 【暖*墟】 #图论# 最小生成树
1、最小生成树的概念实际问题:在n个城市中建立一个通信网络,则至少需要布置n-1条通信线路。这个时候我们需要考虑如何在成本最低的情况下建立这个通信网?于是我们就可以引入连通图来解决我们遇到的问题,n个城市就是图上的n个顶点,边表示两个城市的通信线路,每条边上的权重就是我们搭建这条线路所需要的成本,所以现在我们有n个顶点的连通网可以建立不同的n-1条边的生成树。当我们构造这个...
2018-09-01 16:35:22 376
原创 【暖*墟】 #C/C++相关函数# 字符串的操作函数
C: 定义声明:char st[100];1. 字符串长度 strlen(st); 2. 字符串比较 strcmp(st1,st2); strncmp(st1,st2,n); //把st1,st2的前n个进行比较。 3. 字符串附加 strcat(st1,st2); strncat(st1,st2,n); //n表示...
2018-08-31 16:42:47 174
原创 【暖*墟】 #C++相关设定# 转义字符
所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符。因为后面的字符,都不是它本来的ASCII字符意思了。所以,如果有关字符“\”的时候,通常用“\\”表示。如【洛谷 p2243】电路维修 的代码:#include<iostream>#inc...
2018-08-31 15:26:00 198
原创 【暖*墟】 #BFS# 广搜技巧与优化
BFS 广度优先搜索(队列)目录一. 基本实现二. 双端队列普通队列用于边权为定值的最短路搜索。 双端队列可以进行边权为1/0的最短路搜索。【例题】洛谷 p2243 电路维修三. Hash判重1、哈希表的特征 2、哈希表的实现方法:拉链法3、Hash的应用4、散列法【Hash表的常见构造方法】【例题】洛谷 p2730 魔板一....
2018-08-31 14:48:31 859
原创 【暖*墟】 #STL函数库# 各种竞赛常用STL容器
什么是 STL?STL(Standard Template Library)是 C++ 标准模板库,里面提供了大量模板。 vector (不定长数组)加载库:include < vector > 申明:vector < type > name (从0开始)#include<vector>vector<int> a; //相当于...
2018-08-29 14:56:13 163
原创 【浮*光】【Codeforces Round #500 (Div. 2)】A,B,C,D,E,F
题目地址ヽ(✿゚▽゚)ノ 目录【Problem A】Piles With Stones【Problem B】And【Problem C】Photo of The Sky【Problem D】Chemical table【Problem E】Hills【Problem F】AB-Strings 【Problem A】Piles With Stones...
2018-08-28 15:00:27 347
原创 【暖*墟】 #STL函数库# map和set的函数用法
set:集合中的对象不按特定的方式排序,并且没有重复对象。 用法:存放的是对象的引用,没有重复对象。 map:一种把键和值映射的集合,它的每一个元素都包含一对键和值。 特征:map中的元素是自动按key(键值)升序排序。 用法:从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象。 目录 1.count函数总结 ***注意,count寻找的是...
2018-08-28 09:24:45 154
原创 【浮*光】 #多维0/1背包# poj 1015 维护序列
【poj 1015】Jury Compromise---------标签:多维度的0/1背包---------- 从n个人中选m人组成陪审团。办法是:两个人根据对它们的喜欢程度打分。 分值从0到20。选出的m个人得分中,满足第一人总分D和第二人总分P的差的绝对值|D-P|最小。 如果有多种选择方案的|D-P|值相同,那么选两人总分之和D+P最大的方案。 输出:这m个人的第一人总值...
2018-08-27 09:17:54 166
原创 【暖*墟】 #四舍五入# C++的setprecision(n)
C++最简单的四舍五入(setprecision(n)方法 ) setprecision(n)是流格式控制符之一,在 iomanip头文件 中。c++默认的流输出包括整数和小数的有效位是6,若超出,则第七位四舍五入到6位数。fixed:浮点值显示为定点十进制。 默认是小数6位数,不包含整数,若小数位超出6位,则四舍五入到6位数。 1. setprecision(n) :...
2018-08-25 15:56:49 555
原创 【暖*墟】 #数据结构进阶# 主席树超详细解释
主席树【可持久化线段树/函数式线段树/n棵线段树】 目录一. 概念理解1.求所有数字中的第k大数?2.求任意一段区间 [ L , r ]中的第k大数?3.会不会空间超限?超级详细的实现过程分析【戳我戳我qwq】二. 例题演练1 【主席树】第K小的数Ⅰ(caioj1441)2 【主席树】第K小的数Ⅱ(caioj1442)3 【主席树】第K小的数...
2018-08-23 17:29:39 344
原创 【暖*墟】 #数据结构进阶# 点分治
【例题1】poj 1741 Treen个点的树,每条边都有一个权值。 两点路径长度就是路径上各边权值之和。 求长度不超过K的路径有几条。【分析】本题中树的边是无向的,即是一个n个点,n-1条边构成的无向图。这种树可以看成无根树,可以指定节点p为根。对p而言,树上路径可以分为两类:经过根节点p; 包含于p的某一棵子树中。设点 i 的深度为 Depth[i],父亲为 ...
2018-08-22 16:18:39 189
原创 【浮*光】 #noip模拟# 2018.08.22
1.Game【题目描述】明明和亮亮在玩一个游戏。桌面上一行有n个格子,一些格子中放着棋子。轮流选择如下方式中的一种移动棋子(图示中o表示棋子,*表示空格):1) 当一枚棋子的右边是空格子的话,可以将这枚棋子像右移动一格。**o*** -> ***o**2) 当一枚棋子的右边连续两个都有棋子,并且往右边数第3格没有棋子,那么可...
2018-08-22 14:45:48 688
原创 【暖*墟】 #数据结构进阶# 树链剖分
一. 树链剖分原理和实现1.树链剖分的概念用途:在一棵树上进行路径的修改、求极值、求和。树链,就是树上的路径。 剖分,就是把路径分类为 重链 和 轻链 。 树链剖分就是把一些点合成一条路径,使其在线段树中的下标有序,用线段树来维护。 这样就可以使得查询、修改的效率大大提高。 假设我们把路径分好链了,每次询问两个点对(x,y)时, 若 x 和 y 在同一链中,直接询问线段树...
2018-08-21 15:09:44 208
原创 【缄*默】 #DP专题# 缓缓推进的DP练习...
基本是DP的练习题,不会太难qwq 【T1】洛谷 P1164 小A点菜有M(1<=M<=10000)元钱,有N(1<=N<=100)种菜, 第i种卖a[i]元(1<=a[i]<=10000),请你求出花完M元的点菜方法。#include <bits/stdc++.h>using namespace std;typedef lon...
2018-08-21 14:01:34 382
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人