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 ...
随机推荐
- navicat12.0.24破解方法,简单易操作,亲测可行
navicat12.0.24 32bit 链接:https://pan.baidu.com/s/1dakPje0AzwE86p6ZRHfnsQ 密码:f1ve 破解文件 链接:https://pan. ...
- asynctask 异步下载
public class MainActivity extends Activity{ private TextView show; @Override public void onCreate(Bu ...
- jquery获得iframe内容的高度
html: <iframe name="rightgp" id="right_frame_h" src="/Poster/rightgp&quo ...
- LRESULT CALLBACK WndProc 窗口程序的 重点
LRESULT CALLBACK WndProc Windows程序所作的一切,都是回应发送给窗口消息处理程序的消息.这是概念上的主要难点之一,在开始写作Windows程序之前,必须先搞清楚. 窗口消 ...
- 【LeetCode】Reverse Integer(整数反转)
这道题是LeetCode里的第7道题. 题目描述: 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 ...
- iOS-----5分钟学会枚举的正确使用姿势-Enumeration宏
前言 Enum,枚举,相信大部分编程语言都有对应的枚举类型,功能可能有多有少,但是枚举最核心的功能是 “规范的定义代码中的状态.状态码.选项”. 状态.状态码.选项 什么是状态:同时只能出现一个值(状 ...
- 《分布式对象存储》作者手把手教你写 GO 语言单元测试!
第一部分:如何写Go语言单元测试 Go语言内建了单元测试(Unit Test)框架.这是为了从语言层面规范写UT的方式. Go语言的命名规则会将以_test.go结尾的go文件视作单元测试代码. 当我 ...
- [codevs2185]最长公共上升子序列
[codevs2185]最长公共上升子序列 试题描述 熊大妈的奶牛在小沐沐的熏陶下开始研究信息题目.小沐沐先让奶牛研究了最长上升子序列,再让他们研究了最长公共子序列,现在又让他们要研究最长公共上升子序 ...
- Eclipse + Apache Axis2 发布RESTful WebService(二)配置开发环境
1. 下载axis2相关软件地址:http://axis.apache.org/axis2/java/core/download.html 2. 安装插件:将axis2-eclipse-codegen ...
- P1266 速度限制 (最短路,图论)
题目链接 Solution 在最短路转移的时候在队列或者堆中记录状态为 \(f[u][v]\) 代表上一个节点为 \(u\) ,速度为 \(v\) . 然后按部就班转移即可... Code #incl ...