some useful tricks

在这里插入图片描述
异或题思考方向:01trie树,分治
2. 二分图最大匹配,最大独立集互相转换
3. Snow
在这里插入图片描述
4. 在这里插入图片描述
在这里插入图片描述
Code
5. 在这里插入图片描述
Code
6. 在这里插入图片描述
在这里插入图片描述
Code
7. 题目在这里插入图片描述

#include<iostream>
#include<cstdio>
using namespace std;
const int N=100010;
int n,p,nxt[N],no[200];
char s[N];
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%d",&p);
        nxt[i]=i-p;
    }
    s[1]='a';
    for(int i=2;i<=n;i++){
        if(nxt[i]) s[i]=s[nxt[i]];
        else{
            for(int c='a';c<='z';c++) no[c]=0;
            int j=nxt[i-1];
            while(j){no[s[j+1]]=1;j=nxt[j];}
            no[s[j+1]]=1;
            for(int c='a';c<='z';c++){
                if(!no[c]){s[i]=c;break;}
            }
        }
    }
    printf("%s",s+1);
    return 0;
}

  1. AGC019F Yes or No 贪心,期望,网格计数

  2. LGV引理求解不相交路径数

  3. Many Moves(dp,线段树优化,绝对值处理)

  4. 给出 N N N个序列,有 M M M个询问,每个询问给出字符串 s 1 , s 2 s1,s2 s1,s2。我们认为一个序列“拥有” s 1 , s 2 s1,s2 s1,s2,当且仅当 s 1 s1 s1是该序列的前缀的同时, s 2 s2 s2是这个序列的后缀。对于每个询问,求有多少个序列“拥有” s 1 , s 2 s1,s2 s1,s2神牛的养成计划 题解

  5. http://192.168.102.138/JudgeOnline/problem.php?cid=1811&pid=1

  6. 跨过 p i p_i pi的区间容易转化为:以 p i p_i pi为右端点的区间 + + + p i + 1 p_{i}+1 pi+1为左端点的区间

  7. 正序删边 → \to 逆序加边

  8. 树中的一个点到距离它最远的点的距离 一定是 到直径某个端点的距离

  9. 拉格朗日插值优化dp

  10. 极差:先将所有元素按 w w w值排序,用双指针维护所选元素的最小 w w w L L L和最大 w w w R R R,判断是否存在合法方案。

  11. 重复覆盖问题 Code

  12. 线段树优化dp----绝对值/类似绝对值的处理

  13. shopping—树上多重背包,点分治优化树形dp 树剖优化dp

  14. 用折线计数求组合数

  15. [ARC083F] Collecting Balls [二分图建模+环套树定向+建拓扑图+树的拓扑序计数]
    行列支配类的问题,常见做法就是把行和列变成二分图中的点,把矩阵内元素作为边,转化为图论问题
    一棵有 n n n个点的树的拓扑序个数: n ! ∏ s z [ i ] \dfrac{n!}{\prod sz[i]} sz[i]n!

  16. fail树

  17. 社保—拓扑序推论
    把强连通分量缩成点,跑拓扑,假设当前跑到u,此时未删掉的点组成的图中,若有点(u除外)的入度为0,则u一定到不了该点(即使把所有边反向也到不了),否则u在边反向时能够到达拓扑序比它小的所有点。
    在这里插入图片描述

  18. 摸鱼 经典贪心-----给你一个1-n的排列,要你把这个排列分成两个序列,且这个两个序列都满足单调性。

  19. 求最长子序列使得该序列的任意三个相邻元素,中间的元素是三个中最大的或者最小的----贪心/dp

  20. 地中海气候(思维)

  21. 分段,求每段极值和的最大值

  22. count(笛卡尔树,生成函数,卡特兰数)

  23. 断环利器:高斯消元

  24. 妹子—线段树上二分—>sequence(分块,线段树)

  25. 【XSY3333】魔力(差分,哈希)

  26. 保证 ∀ i , a i ≥ 0 \forall i,a_i\geq 0 i,ai0,维护区间内 a i = 0 a_i=0 ai=0的个数相当于维护区间内 a i a_i ai的最小值的个数

  27. 折半枚举

  28. p p p n n n的一个排列,则 i i i p i p_i pi连边,每个点的入度出度都为1 ,形成若干个环

  29. 至少删多少个叶子结点(保证剩下的仍是棵树)才能使树的直径<=k。

  30. 笛卡尔树

  31. 线段树分治维护时间轴

  32. 不重不漏地枚举一个字符串的所有本质不同子序列

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值