yd的汇总
因为是我这只蒟蒻个人的汇总嘛,可能有些奇♂怪的东西或者不规范的语言出现啦,见谅见谅
搬了一些到知识汇总里,删了一些过时和无用的,少了好多=。=
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的汇总的更多相关文章
- 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)
前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...
- 异常处理汇总 ~ 修正果带着你的Net飞奔吧!
经验库开源地址:https://github.com/dunitian/LoTDotNet 异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983 ...
- UWP开发必备:常用数据列表控件汇总比较
今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...
- Oracle手边常用70则脚本知识汇总
Oracle手边常用70则脚本知识汇总 作者:白宁超 时间:2016年3月4日13:58:36 摘要: 日常使用oracle数据库过程中,常用脚本命令莫不是用户和密码.表空间.多表联合.执行语句等常规 ...
- Oracle 数据库知识汇总篇
Oracle 数据库知识汇总篇(更新中..) 1.安装部署篇 2.管理维护篇 3.数据迁移篇 4.故障处理篇 5.性能调优篇 6.SQL PL/SQL篇 7.考试认证篇 8.原理体系篇 9.架构设计篇 ...
- Vertica 数据库知识汇总篇
Vertica 数据库知识汇总篇(更新中..) 1.Vertica 集群软件部署,各节点硬件性能测试 2.Vertica 创建数据库,创建业务用户测试 3.Vertica 数据库参数调整,资源池分配 ...
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
- 关于DDD的学习资料汇总
DDD(Domain-Driven Design)领域驱动设计,第一次看到DDD是在学习ABP时,在其中的介绍中看到的.what,DDD是个什么鬼,我不是小白,是大白,没听过.于是乎,度娘查查查,找到 ...
- Oracle 列数据聚合方法汇总
网上流传众多列数据聚合方法,现将各方法整理汇总,以做备忘. wm_concat 该方法来自wmsys下的wm_concat函数,属于Oracle内部函数,返回值类型varchar2,最大字符数4000 ...
随机推荐
- mybatis事务管理机制详解
1.mybatis事务的配置和使用 mybatis事务有两种使用方式: (a):使用JDBC的事务管理机制:即使用java.Sql.Connection对象完成对事务的提交,回滚和关闭操作. (b): ...
- (二)Wireshark的实用表格
主要内容: 1.了解端点概念,学习如何在Wireshark中查询端点信息 2.学习利用端点窗口与会话窗口来分析数据包的特点 3.学会Wireshark的协议分层统计窗口的用法 一.端点概念 和数学里的 ...
- 使用getopts处理输入参数
在编写shell脚本中,需要输入参数,使用过程中,getopts更加方便.可以很好的处理用户输入的参数和参数值. 参加如下一段脚本: #!/bin/bash while getopts ": ...
- Centos rpm包安装PHP所需包
yum -y install php php-devel php-fpm php-xml php-pdo php-ldap php-mysql
- 库存盘点打印功能生成PDF速度太慢使用页面缓存
一.业务需求 二.产品设计 三.UI设计 四.程序设计 1.使用behavior配置页面缓存 class WmsCheckController extends Controller { /** * @ ...
- vue实例相关2
vue data中 对象/数组 不为空,即使定义为[]/{} new Vue({ el: '#main', data: { list: [], current: {}, aa:'' } }) cons ...
- C# 23种设计模式汇总
创建型模式工厂方法(Factory Method)在工厂方法模式中,工厂方法用来创建客户所需要的产品,同时还向客户隐藏了哪种具体产品类将被实例化这一细节.工厂方法模式的核心是一个抽象工厂类,各种具体工 ...
- How to mount HFS EFI on macOS
mount_hfs /dev/disk0s1 /volumes/efi
- Introduction to Dynamic SQL
The idea of using dynamic SQL is to execute SQL that will potentially generate and execute another S ...
- 11/5/2018模拟 Problem C
题面 题解 我有特殊的哈希技巧 以到下一个相同字符的距离为值哈希, 如果不存在或在串外, 就是 \(|T| + 1\). 加入一个新字符 \(S_i\) 时, 同时修改它上一次出现时的值, 由 \(| ...