trick点
1、问题里有取模操作的时候,最后输出(ans+mod)%mod
2、涉及到输出实数0的时候要特判输出的会不是是-0.000000(因为0.00乘一个负的浮点数结果是-0.000000,乘一个正的浮点数结果是0.000000)
3、遇见问题中有|x-c|,min(x,c-x),max(x,c-x)的时候,考虑分类讨论其贡献,一般一个位置都答案的贡献只会分成两段,这个分界线可能是常数,也有可能是一个式子。如果是式子的时候,要尤其注意:比如k<=f(x)时,贡献是a,k>f(x)时,贡献是b,那么f(x)在变动的时候,要考虑f(x)<0,f(x)>n的情况,这时候一般都是和下界取max,和上界取min,要让k有意义。
4、概率dp的时候,有概率和期望两种,尽可能使用概率去做,用期望做的话,加的权值有可能会出错,期望dp加一个权值时候,不能直接加,要乘上这个权值的发生概率
即f[u]表示概率,g[u]表示期望
那么f[u]=Σf[v]
但g[u]=Σg[v] + value[u] * f[u] (注意千万不能写成g[u]=Σg[v] + value[u] )
其实如果要求期望,可以dp它的概率,最后求期望
即E=Σf(i)*value[i] = Σg(i)
5、比如求dp[i]=min(dp[j]*a[j]*b[j]),最后结果对mod取模,不能写成dp[i]=min(dp[j]*a[j]%mod*b[j]%mod),因为中间有个取min操作,取min操作是不支持的取模的
6、Trie树边对应的信息放在下面的点上;Trie树也可以存数字,也是个有序的数据结构,要注意多个数字重复的情况,可能走到叶子节点的路程上对ans没有贡献,要最后判断叠加;Trie树可以支持整体异或,具体的就是询问的时候如果遇到某位是1,那么就swap(lchild,rchild)就行了
7、要注意无意义的清零和无意义的反复求字符串长度,这样可能会带来超时
8、分解质因数最后留下的可能不是1,是个大素数
9、区间筛的时候要注意r-l<=1e6,那么其实中间有1e6+1个数
10、将double类型的数字以int输出时:printf("%d",(int)(number+0.5));
11、遇见多组数据一定要记得检查有没有清空干净(如Trie树自动机什么),有时候甚至会导致MLE!!!
12、数组开小可能会导致TLE
13、cdq分治排序的之后注意坐标一样时,要比较操作类型,一般的修改操作在查询操作前面
14、遇见分组计数的问题记得考虑meet in middle
15、多次FFT、NTT的时候要记得将A[n..len]清0
16、二分分数区间$[\frac {a} {b},\frac {c} {d}]$的时候,$mid=\frac {a+c} {b+d}$
17、当遇到要计算$\frac {p_1+p_2+p_3+...+p_n} {q}$的值的时候,保证结果不超过$2^63$,分母q不超过$2^30$,这样计算就有个问题,就是分子相加的时候会爆long long,有个技巧就是$ans=\lfloor \frac{ans}{q}\rfloor *q+ans \, mod \, q$所以可以记录整除数和余数,这样就不会超过longlong了
18、若干个0和若干个1(1存在)能异或出的2^n个结果中,一定有一半是1,一半是0
19、计算几何一直WA也许不是精度的问题,而是因为小数据边界没有特判
20、==、!=的优先级要高于位运算(包括^),所以位运算要打括号
21、莫队算法的时候记得先移r再移l,否则可能会有的数字出现次数为负数带来数组越界
22、分层图最短路在外面把图先建好,后面直接跑最短路
23、树链剖分处理边权的时候尤其要注意,向上爬到最后,lca的点权不能要
24、处理可撤销并查集时候所用的按秩合并并查集在find的时候不能维护其它信息,其它信息必须另开一个函数get_val()用log(n)的时间求出来
25、当数据量很大的时候注意减少容器和递归的使用
26、当结果对1e9+7取模的时候,一般可以直接用int去做,但是如果数据范围是[-1e9,1e9]那就要小心了,可能会爆掉
27、一个都是整数的数列经过ufwt形成的变化中的数不一定都是整数(因为有/2操作),可以认为并没有一个整数数列对应的fwt的结果是这个数列,要注意。但是如果是fwt(a),fwt(b),a=a*b,ufwt(a),那样是没问题,因为一定有解。
28、数组开大大容易超时,能滚动数组就滚动数组,比如决策单调性优化dp
29、在区间赋值的线段树里,注意tag=0的意思是给区间全部赋为0,而不是没有标记
30、取整数部分用floor,而不要用(int)
trick点的更多相关文章
- EEG preprocessing - A Trick Before Doing ICA
EEGLab maillist My ICs don't have high power in low frequency is b/c I do a small trick here. before ...
- Trick蠕虫病毒来袭!幕后主使竟是一名高中生“黑客”!
黑客一直是美国电影中的重要元素,很多经典大片中都有黑客的身影,如战争游戏.黑客帝国等.电影中黑客总是神通广大.行侠仗义,<战争游戏>中的年轻黑客大卫•莱特曼利用黑客技术避免引爆核武器,&l ...
- csuoj 1392: Number Trick
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1392 1392: Number Trick Time Limit: 1 Sec Memory L ...
- 关于C语言的一些trick
很多东西已经记不起来了,想到一点写一点,碰到一点写一点,慢慢累积. 关于# #在宏定义中用于替换传入变量的字符,例如: #define whole_operation(n) do { printf( ...
- 让gcc支持成员函数模板的trick
让gcc支持成员函数模板的trick 罗朝辉 (http://www.cnblogs.com/kesalin/) 本文遵循“署名-非商业用途-保持一致”创作公用协议 gcc 4.7.3 不支持成员 ...
- [HIHO1062] 最近公共祖先·一(lca, 并查集, 二分, 神trick)
题目链接:http://hihocoder.com/problemset/problem/1062 题意裸,有个trick,导致我当年做的时候一直在WA... 那就是出现这种没有出现在关系中,但是依然 ...
- hdu 1057 (simulation, use sentinel to avoid boudary testing, use swap trick to avoid extra copy.) 分类: hdoj 2015-06-19 11:58 25人阅读 评论(0) 收藏
use sentinel to avoid boudary testing, use swap trick to avoid extra copy. original version #include ...
- Hashing Trick
本博客已经迁往http://www.kemaswill.com/, 博客园这边也会继续更新, 欢迎关注~ 在机器学习领域, kernel trick是一种非常有效的比较两个样本(对象)的方法. 给定两 ...
- HDU 4930 Fighting the Landlords --多Trick,较复杂模拟
题意:两个人A和B在打牌,只有题目给出的几种牌能出若A第一次出牌B压不住或者A一次就把牌出完了,那么A赢,输出Yes,否则若A牌没出完而且被B压住了,那么A输,输出No. 解法:知道规则,看清题目,搞 ...
- POJ 3207 Ikki's Story IV - Panda's Trick
Ikki's Story IV - Panda's Trick Time Limit: 1000MS Memory Limit: 131072K Total Submissions: 7296 ...
随机推荐
- python GIL锁、进程池与线程池、同步异步
一.GIL全局解释器锁 全局解释器锁 在CPython中,全局解释器锁(GIL)是一个互斥锁,它可以防止多个本机线程同时执行Python代码.之所以需要这个锁,主要是因为CPython的内存管理不是线 ...
- HDU:2255-奔小康赚大钱(KM算法模板)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2255 奔小康赚大钱 Time Limit: 1000/1000 MS (Java/Others) Mem ...
- zoj 4049
Halting Problem Time Limit: 1 Second Memory Limit: 65536 KB In computability theory, the haltin ...
- 【转】MySQL innodb_autoinc_lock_mode 详解 ,并发插入时主键冲突的解决方案
本文转载于 http://www.cnblogs.com/JiangLe/p/6362770.html innodb_autoinc_lock_mode这个参数控制着在向有auto_increment ...
- 【Alpha】Scrum Meeting 5-end
第一天:2019/6/19 前言: 第5次会议在6月19日由PM在教9C-501召开. 总结项目,进行单元测试并进行简单的整合.时长60min. 团队GitHub仓库 仓库连接 1.1 今日完成任务情 ...
- Python 前端的第三方库
sweetalert sweeralert:地址 这个使用很简单,需要在在他们的,css和js文件. 酷炫的结果 datatables datatables:地址 已https://datata ...
- luogu2580 于是他错误的点名开始了 Trie树
模板题 #include <iostream> #include <cstring> #include <cstdio> using namespace std; ...
- stl vector 类
目录 [-]说明构造方法例子vector 类中定义了4中种构造函数: · 默认构造函数,构造一个初始长度为0的空向量,如:vector<int> v1; · 带有单个整形参数的构造函数,此 ...
- python之路 --- python文件模式
文件模式: 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加模式.[可读: 不存在则创建:存在则只追加内容:] "+&quo ...
- Educational Codeforces Round 20 A. Maximal Binary Matrix
A. Maximal Binary Matrix time limit per test 1 second memory limit per test 256 megabytes input stan ...