小技巧

  1. 我们要算一个点集中所有点到另一个点集中所有点的一些量的时候,可以建立一个超级源点和超级汇点,从多->多变成单->单

  2. 整体二分的时候,操作要可以撤销,才能保证复杂度,每一层到左边区间的过程中先撤销掉当前所有操作

  3. 整体二分的时候,不能当没有询问就返回,要把操作做完询问处理完才能返回

  4. 数形结合,题目中的式子像一个几何上的公式的时候,可以数形结合

  5. 对于某些涉及区间操作的问题的时候,可以考虑差分然后变成单点的问题

  6. 分块暴力,当所有修改对询问的影响都可以 \(O(1)\) 计算的时候,可以分块暴力艹过 \(1e5\) 的数据

  7. 考一棵树里面选了几个点,并且要有一个联通块包含这几个点的时候,我们可以考虑把点按照dfs序排序,然后联通块的最少边数就是 \(\frac {\sum dis(a_i,a_{i+1})} 2,(a_{n+1}=a_1)\)。

  8. 一种常见的dp状态是 \(dp[a][b][c][d]...\) 表示每种物品有几个,假如物品没有区别的时候,我们可以只考虑 \(a \le b \le c \dots\) 的状态,转移的时候也将数量排序再转移,可以大量减少状态数

  9. reverse特别慢,尽量不reverse

  10. char[] 求strlen特别慢,可以记录在变量里,不能反复求,尤其避免

    for(int i=0;i<strlen(s);i++)

    慢成狗。。。

  11. 线性基的小技巧:

    我们要维护 \([l,r]\) 的线性基的时候,可以记录下来线性基的 \(i\) 位对应的序号,然后按照序号顺序更新线性基,像下面这样写:

    int lb[40],at[40];	//线性基及编号
    for(int i=1;i<=n;i++){
    //枚举右端
    int x=nw[i],p=i;
    for(int j=30;j>=0 && x;j--){
    if(x&(1<<j)){
    if(lb[j]==0){lb[j]=x;at[j]=i;break;}
    else if(at[j]<p){swap(at[j],p);swap(lb[j],x);} //把原来的向下更新
    //因为如果两个同时拥有这一位,那么后来的肯定更优
    x^=(1<<j);
    }
    }
    for(int x=head[i];x;x=nxt[x]){
    //枚举右端点为i的查询,可以用邻接表存储
    for(int j=30;j>=0;j--){
    if(at[j]>=q[x].l) q[x].ans=min(q[x].ans,q[x]^lb[j]);
    }
    }
    }
  12. Meet in the middle 极好的想法,当数据范围恰好卡着你两倍左右让你过不去的时候,极有可能是Meet in the middle

  13. 预处理!!!预处理!!!预处理!!!

    好像数数题大部分都要预处理。。。

  14. 某一种dp要求你把所有的东西都消除,配对。。。之类的,可以考虑其中的某一个元素,这个元素一定会被消除,配对。。。然后可能能优化一下复杂度

  15. size把 \(O(n^3)\) 的 \(\text{dp}\) 优化成 \(O(n^2)\)

  16. 一个数与一群数一个个取 \(\gcd\) 只会有 \(\log\) 种不同的答案,因为每次要么不变,要么变成一半或者更少,然后可以优化一些题

  17. 搜索的时候为了不重复可以只搜索单调不降的序列

  18. 当题目要求必须选某一个元素或者必须不选某一个元素的时候,可以用前缀加后缀合并得到答案

  19. 对时间分治的时候注意撤销操作要从后向前做!!!

  20. 合并果子的模型非常常见,当贪心想不出来的时候可以试试看

小技巧(updating)的更多相关文章

  1. 【转载】PHP 开发者该知道的 5 个 Composer 小技巧

    Composer是新一代的PHP依赖管理工具.其介绍和基本用法可以看这篇<Composer PHP依赖管理的新时代>.本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带来方 ...

  2. 50分钟学会Laravel 50个小技巧

    50分钟学会Laravel 50个小技巧 时间 2015-12-09 17:13:45  Yuansir-web菜鸟 原文  http://www.yuansir-web.com/2015/12/09 ...

  3. 5 个 Composer 小技巧

    Composer是新一代的PHP依赖管理工具.其介绍和基本用法可以看这篇<Composer PHP依赖管理的新时代>.本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带来方 ...

  4. PHP 开发者该知道的5个 Composer 小技巧

    Composer是新一代的PHP依赖管理工具.其介绍和基本用法可以看这篇<Composer PHP依赖管理的新时代>.本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带来方 ...

  5. 50分钟学会Laravel 50个小技巧(基于laravel5.2,仅供参考)

    转载请注明:转载自 Yuansir-web菜鸟 | LAMP学习笔记 本文链接地址: 50分钟学会Laravel 50个小技巧 原文链接:< 50 Laravel Tricks in 50 Mi ...

  6. PHP 开发者该知道的 5 个 Composer 小技巧

    From: https://segmentfault.com/a/1190000000355928 Composer是新一代的PHP依赖管理工具.其介绍和基本用法可以看这篇<Composer P ...

  7. php composer 相关及版本约束等小技巧

    对于现代语言而言,包管理器基本上是标配.Java有Maven,Python有pip,Ruby有gem,Nodejs有npm.PHP的则是PEAR,不过PEAR坑不少: 依赖处理容易出问题 配置非常复杂 ...

  8. 「小技巧」使用Git从其他分支merge个别文件

    小明发现在实际项目开发过程中,总会遇到各种各样的情况,比如一个大型的项目或版本迭代可能不是一次上线,可能会分好几次上线,这时候就会涉及创建多个分支,分别开发. 项目背景 产品经理:我们本次开发三个功能 ...

  9. PHP开发者该知道的5个Composer小技巧

    Composer 是新一代的PHP依赖管理工具.本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带来方便. 1. 仅更新单个库 只想更新某个特定的库,不想更新它的所有依赖,很简单 co ...

随机推荐

  1. 如何让你的手机U盘集PE工具、系统安装、无线破解等众多功能于一身

    不久前,手里的U盘坏了,于是乎,又在网上淘了一个Type-C U盘,刚好手机电脑都可以用. 那么现在U有了,我们要做什么呢? 第一:让U盘插在手机上时,可以供手机读写,实现手机存储扩容,随插随用,简单 ...

  2. MySQL Unable to convert MySQL date/time value to System.DateTime的解决办法

    在连接串中加入 Convert Zero Datetime=True

  3. BZOJ 1638 [Usaco2007 Mar]Cow Traffic 奶牛交通:记忆化搜索【图中边的经过次数】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1638 题意: 给你一个有向图,n个点,m条有向边. 对于所有从入度为0的点到n的路径,找出 ...

  4. 【Codeforces】894E.Ralph and Mushrooms Tarjan缩点+DP

    题意 给定$n$个点$m$条边有向图及边权$w$,第$i$次经过一条边边权为$w-1-2.-..-i$,$w\ge 0$给定起点$s$问从起点出发最多能够得到权和,某条边可重复经过 有向图能够重复经过 ...

  5. nginx rewrite 导致验证码不正确

    配置nginx里url rewrite的时候,为了使浏览器地址栏的URL保持不变, 使用proxy_pass反向代理,但发现每次都会生成新的jsessionid 解决方法,配置中增加 proxy_co ...

  6. docker基础用法

    docker 架构: docker 安装前期准备: 安装centos7 ,不要在centos6  [root@node01 yum.repos.d]# uname -a Linux node01 -. ...

  7. XML配置中 引入外部property文件

    新建properties配置文件 内容如下: jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc\:mysql\://localhost\ ...

  8. [HAOI 2011] Problem A

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2298 [算法] 考虑用总人数 - 最多人说真话 显然 , 对于每个人 , 如果他说的 ...

  9. Codeplus2017 11月赛T3——基因

    题目:https://www.luogu.org/problemnew/show/P4059 DP,状态应分为空格或字母,可用0和1表示,据此转移,详见代码. 另:注意初始化,因为有负值所以要先把f数 ...

  10. Win10系统右键添加Sublime Text 3的打开方式

    1.打开注册表编辑器,开始->运行->regedit. 2.在HKEY_CLASSSES_ROOT→ * → Shell 下,在Shell下,新建项命名为Open With Sublime ...