因为是我这只蒟蒻个人的汇总嘛,可能有些奇♂怪的东西或者不规范的语言出现啦,见谅见谅

搬了一些到知识汇总里,删了一些过时和无用的,少了好多=。=

1.STL_queue

经实践验证,!qs.empty()快于qs.size()

2.luogu p2114 起床困难综合症

if(位运算) 括号++;

update on 2018.7.2:

发现位运算的优先级比小于号那一堆还低。。。

3.luogu p1853 投资的最大效益

当背包问题中代价/价值为$kn$时可以在循环中用$kn/k$来表示,这样可以压缩dp数组空间从而缩小常数

4.luogu p1284 三角形牧场

用计算函数时注意接受/返回的变量类型

5.二分答案(个人写法)

整数域上二分:1.卡死上下界 2.当合法时用变量记录答案 3.用$mid+/-1$移动左/右边界(用l<=r作为循环条件)

实数域上二分:1.卡死上下界 2.直接输出合法时的边界 3.用mid移动左右边界(用r-l>eps作为循环条件)

或者实数域二分看情况可以直接限定次数

6.luogu p1498 南蛮图腾

输出字符'\'时要写成'\\',因为'\'单独用是转义字符,'%'同理,它是输出时的标识符

7.luogu p1022 计算器的改良

float/double型的变量值为$0$时被负数除会变为$-0$,输出时注意判

8.long long

永恒的真理:不开long long见祖宗

9.STL

栈和队列取/弹元素时注意判断是否为空

10.luogu p2746 Networks of schools

缩点时注意判断图是强连通图的情况

11.竞赛图缩点

缩完了是条链

12.pow函数

cmath库里的pow函数就是个垃圾,永远都不要用

13.背包方案数

做这类问题时注意全都能买的情况下只有一种方案

14.luogu p3265 装备购买

有时精度误差可以通过拆开计算式的方式解决

15.左偏树

记得Gettop

16.CF474F Ant colony

线段树查询区间$gcd$时不能进入完全不包含的区间,不然返回什么都不是=。=

17.luogu p1867 钉子与小球

算术左移时注意爆int的问题

18.luogu p2233 公交车路线

调不出来的时候就回去仔细读题

19.luogu p2197 单选错位

当范围达到$1e7$的时候就该注意内存限制了

20.调试语句

一定要记得删!!!

21.SCC

Tarjan缩点后建新图后一定要区分好新旧图

22.luogu p1365 WJMZBMR打osu!/Easy

读入字符尽量读字符串后取出来,因为有换行符这个东西。。。

23.luogu p3498 Beads

挂链哈希表用新模数区分哈希值时注意和哈希表的模数区分开

24.边界问题

不要含糊,一定搞清楚,不然说卡死你就卡死你。。。

25.期望

对于OSU类问题(雾,详见洛谷p1654 osu),如果用滚动数组/变量统计答案,注意答案自己是这样的(以将除法转化为模意义下乘逆元为例)

$exp_{ans}+=(exp_1*k_1+exp_2*k_2+...+exp_n*k_n)\%mod$

26.差分约束

可以不要超级源点,将每个点手动入队+手动赋值

27.序列问题的一个套路

统计某种性质的区间时可以维护某个值然后一路扫过去,当这个值出现两次时说明中间这一段有某种性质

28.一个奇怪的东西

①$log_ca^b=blog_ca$  ②$log_ab=\frac{log_cb}{log_ab}$(文化课太差,捂脸

29.均摊复杂度

①当一个暴力的复杂度是$m$,另一个暴力的复杂度是$n/m$时,我们可以把它们拼起来,就得到了一个$nsqrt(n)$的解

②当算法的两部分复杂度相差很大时,尝试通过某种手段把复杂度均摊

30.最短路状态爆炸

分层/拆点

31.一个找规律的套路

尝试把下标放在分子/分母上

32.manacher

correct:r[i]=(maxr>=i)?min(r[2*mid-i],maxr-i+1):1;

wrong:r[i]=(maxr>=i)?min(r[2*mid-i],maxr-1+1):1;

不知道为什么我总是写成底下那个(捂脸

33.一个图上问题的套路

求以某个点为起点的某些信息可以考虑拓扑排序,求以某个点为终点/经过某个点的某些信息可以考虑记忆化搜索

34.当你因为限制太多被卡死时

不妨试试枚举吧=。=

35.一个合并区间信息的套路

正反都做一遍,然后前后拼起来

36.一个可行性dp的套路

套上bitset立刻获得$\frac{1}{32}$常数!

37.一个当你会设状态而不太会DP的时候的做法

直接记忆化搜索,非常有用

38.当你对一个题的策略不太确定时

不妨牺牲一些常数和可读性而写得更严密一些

39.Tarjan_CV

一个点可能会在好几个儿子被算成割点,需要打标记记录(建议)或者去重'

40.vector定点插入

举例:在vector<int> ve第$k$个元素之后插入元素$x$: ve.insert(ve.begin()+k,x);

41.不开O2时vector极慢

rt,慎用

42.莫队

加入是++x/--x,删除是x++/x--

43.一个bitset $bset$在$O(\frac{len}{32})$内查询是否能凑出某个数$x$

方法是从尾到头再维护一个反着的bitset $rset$

作差:$bset\&(bset<<x)$

求和:$bset\&(rset>>(Maxn-x))$,其中$Maxn$表示最大的数

44.叉积判斜率大小

斜率小的叉斜率大的得负,反之亦然

45.数论题经常挂的地方

爆int/long long

46.不要上头

在尝试翻译一份指针版FHQ_Treap写的LCT一晚上失败后得出的教训

47.LCT

Getroot之后要记得Splay

48.该传参传参,别老开全局

于2018.12.19上午调了两个小时后得出的教训

49.快读快输一场空,不判负数见祖宗

考试爆一道题得出的教训

50.暴力与优化

拿不准的时候,先把暴力写出来再优化

51.大概是背包的问题

可以考虑转成桶存储之后用多项式卷积优化

52.组合数记得判n<m

调了一个多小时这个=。=?

53.长代码要分块写

就是每块搞一个函数这样

54.输出保留若干位小数

一般需要你强制输出到应有的位数

55.FFT

乘的时候是两个复数相乘,别不知道怎么写成两个x相乘(不应该是手顺啊,明明代码更多了)

我居然调这个调了两个小时(其实是因为样例的写错和写对的答案太像了,我以为哪里丢精度了

56.图同构的一个套路

先把图看成完全图,然后把有/无边看做黑白染色

57.static

意思是静态内存,只有第一次赋值,以后都还用这一块,默认是之前的值

58.lyd快速乘

 long long bmul(long long a,long long b,long long m)
{
long long tmp=((long double)a/m*b+1e-);
long long ret=a*b-tmp*m;
return ret<?ret+m:ret;
}

59.一个标记操作

异或一个随机值

60.权值线段树

要用右移操作取mid,因为当l=-1,r=0时,(l+r)/2=-1/2=0,而右移的话-1右移完还是-1,这样才不会无限递归下去

61.关于C++的模运算(?)

在C++中,模运算结果的符号和被除数的符号一致

62.树形DP联通块

一般做的时候后是默认强制选根的

63.调试

可以不断删优化,经常的情况是优化挂了=。=

64.一种构造题

要你去叉人的那种构造题一定要限制一个条件,使得在这个条件下能推出要叉的代码的式子

65.感觉不可做的问题不要扔

离线/莫队/差分/统计贡献/分块/记搜/容斥/二分/枚举/随机化/倒着做/启发式合并/拆解问题 一下,也许还能抢救

66.决策单调性

决策单调性并不代表代价函数是凸的或者递增的

67.计数DP的一个套路

枚举某个属性最大是几,然后处理缩小一级的问题,可以保证不重复计数

68.树上统计的一个套路

联通块大小的乘积可以转化为从每块中选一个点的方案数

69.权值线段树

注意是不是该开long long

70.线段树

如果是奇怪操作一定要考虑加上限制的暴力是不是就是对的

71.统计贡献

如果状态可以步步变化,可以考虑组合数

72.瞪眼

当状态维数较高的时候可以先固定几维再打表

73.unordered_map

注意它的内部是哈希表实现的,所以空间比map要大

74.priority_queue

定义了比较函数也不能直接在外面改影响比较函数的变量,不然堆会乱

(当然可以把跟更改的变量有关的全删了重新插)

75.线段树下放标记

记得取地址,wsl

76.推递推式的时候

可以尝试使用高中数学知识(雾

77.组合数

注意超过模数时上Lucas定理

78.一个套路

答案与顺序无关

79.LCT求LCA

Access(x)再Access(y),最后一个点就是lca

80.计数去重的套路

钦定和第一个部分有关的信息

81.NTT

对一个数组不断NTT会有一些神奇的现象发生

82.多项式卷积的一个思路

可以尝试寻找子结构

83.map

只要访问过就能count到

84.树状数组

可以反着维护后缀和

85.多项式求逆和开根

注意清数组,用清数组,还有Prework的大小

86.动态DP

写的时候注意分清=和+=

inf.原来有的,考完NOIP2018删了,我真tm是能毒奶

NOIP2018考了三道原题(原来大意是提醒自己要注重思考,然后我***奶了一句“正式考试不可能考原题”)

yd的汇总的更多相关文章

  1. 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)

    前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...

  2. 异常处理汇总 ~ 修正果带着你的Net飞奔吧!

    经验库开源地址:https://github.com/dunitian/LoTDotNet 异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983 ...

  3. UWP开发必备:常用数据列表控件汇总比较

    今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...

  4. Oracle手边常用70则脚本知识汇总

    Oracle手边常用70则脚本知识汇总 作者:白宁超 时间:2016年3月4日13:58:36 摘要: 日常使用oracle数据库过程中,常用脚本命令莫不是用户和密码.表空间.多表联合.执行语句等常规 ...

  5. Oracle 数据库知识汇总篇

    Oracle 数据库知识汇总篇(更新中..) 1.安装部署篇 2.管理维护篇 3.数据迁移篇 4.故障处理篇 5.性能调优篇 6.SQL PL/SQL篇 7.考试认证篇 8.原理体系篇 9.架构设计篇 ...

  6. Vertica 数据库知识汇总篇

    Vertica 数据库知识汇总篇(更新中..) 1.Vertica 集群软件部署,各节点硬件性能测试 2.Vertica 创建数据库,创建业务用户测试 3.Vertica 数据库参数调整,资源池分配 ...

  7. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  8. 关于DDD的学习资料汇总

    DDD(Domain-Driven Design)领域驱动设计,第一次看到DDD是在学习ABP时,在其中的介绍中看到的.what,DDD是个什么鬼,我不是小白,是大白,没听过.于是乎,度娘查查查,找到 ...

  9. Oracle 列数据聚合方法汇总

    网上流传众多列数据聚合方法,现将各方法整理汇总,以做备忘. wm_concat 该方法来自wmsys下的wm_concat函数,属于Oracle内部函数,返回值类型varchar2,最大字符数4000 ...

随机推荐

  1. Oracle创建及调用存储过程

  2. 临时的ThisCall

    // 获取当前定位 changeCity: function () { let that = this; that.locationClose(); Upj._changeCity().then((d ...

  3. js尾递归函数

    普通递归: function fac(n) { if (n === 1) return 1; return n * fac(n - 1); } fac(5) // 120 这是个阶乘.但是占用内存,因 ...

  4. 用户认证--------------auth模块

    一.auth模块 from django.contrib import auth 1 .authenticate()   :验证用户输入的用户名和密码是否相同 提供了用户认证,即验证用户名以及密码是否 ...

  5. Hbase数据结构模型

  6. java.util.concurrent.TimeoutException: Idle timeout expired: 300000/300000 ms

    Request idle timed out at 123000 ms. That means there was no activity (read or write) for 123000 ms ...

  7. 莫烦theano学习自修第二天【激励函数】

    1. 代码如下: #!/usr/bin/env python #! _*_ coding:UTF-8 _*_ import numpy as np import theano.tensor as T ...

  8. sqlserver数据库性能测试方法

    测试计划-添加jdbc jar 地址(数据驱动) jdbc configuration 地址 jdbc:sqlserver://127.0.0.1:1433;databasename=XSData j ...

  9. vscode git设置远程仓库码云

    https://www.cnblogs.com/klsw/p/9080041.html

  10. linux下ssh无法连接的原因

    在虚拟机上安装了ubuntu16.04 server,用本机 ssh 连接的时候 无法连接上: 忽然想起在安装的时候有个openssh好像没有勾选,所以在虚拟机上 apt install openss ...