zoukankan      html  css  js  c++  java
  • NOIP复习(总结套路)

    开始复习,把u盘现存和noip历年题速刷,写题解,总结套路。以下总结考试经验,解题套路,思维套路

    1. 矩阵乘法,高精度等之类的结构体重载运算符的变量要用const type &x
       inline matrix operator * (const matrix &x,const matrix &y) {
    	matrix c;
    	c.n = x.n;
    	c.m = y.m;
    	
    	rep(k, 1, x.m)
    	rep(i, 1, c.n)
    	rep(j, 1, c.m)
    	c.a[i][j] = (c.a[i][j] + 1ll *  x.a[i][k] * y.a[k][j] % mod) % mod;
    	return c;
    }
    

    c是定义在函数里面的矩阵,有个数组,记得初始化!
    循环KIJ更快,访问连续内存
    3. 01字典树取出x的第j位要这样写 (x>>i)&1 ,不能写成((x&(1<<i))>>i),会爆int
    4.一定要多多面向部分分编程
    5.像map,set这种不支持随机访问的不要用lower_bound(s.begin(),s.end(),x),这样是暴力的。。 要用 s.lower_bound(x);
    6.int向上取整要这样写

    if (temp%k == 0)
        result = temp / k ;
    else
        result = (temp / k)+1;
    

    7.不开longlong见祖宗
    8.

    for(int i = head[u]; i; i = nxt[i]) {
        if(to[i] == fa)continue;
        dfs(to[i], u);
        sz[u] += sz[to[i]];
        for(int j = sz[u]; j >= 0; j--) {
            for(int k = 1; k <= min(j, sz[to[i]]); k++) {
                dp[u][j] = max(dp[u][j], dp[u][j - k] + dp[to[i]][k]);
            }
        }
    }
    

    这样计算会大量重复计算,遇到链会卡成三方,下面那种保证点对都在LCA处计算,保证时间复杂度为而二方

    for(int i = head[u]; i; i = nxt[i]) {
        if(to[i] == fa)continue;
        dfs(to[i], u);
        for(int j = sz[u]; j >= 0; j--) {
            for(int k = 1; k <= sz[to[i]]; k++) {
                dp[u][j + k] = max(dp[u][j + k], dp[u][j] + dp[to[i]][k]);
            }
        }
        sz[u] += sz[to[i]];
    }
    

    9.板子一定要熟,特别是数据结构,不能打错,慢慢打。tarjan的板子(dfn,low,各种要求的(割点割边等)的判定方法)!
    10.函数前面一定要有定义类型,非void函数一定要有返回值,等于号不要打成赋值号
    11.注意看警告!
    12.如果题目有个操作,让你对个数字进行操作,次数很大,上1e9的,多半是倍增,矩阵快速幂
    13.边权都是1/0的可以用双端队列bfs O(n)求最短路,1的放后面。0的放前面

    本文来自博客园,作者:{2519},转载请注明原文链接:https://www.cnblogs.com/QQ2519/p/15374023.html

  • 相关阅读:
    2016年回家的大概经过
    [转载][记录]shell 批量修改文件名
    Tinymce4 中Ajax多次加载时,会出现菜单在第二次进入时,显示的下拉菜单在左上角
    PHP生成HTML页面顶部出现空白部分(&#65279字符?)
    tcpdf MultiCell line break
    [转载][记录]javascript生成不重复的随机数
    [转载]PHP 字符串替换中文
    PHP 使用get_class_methods()和array_diff() 兩個相同的類中方法差集
    mysql datetime 排序
    highcharts 去掉右下角链接
  • 原文地址:https://www.cnblogs.com/QQ2519/p/15374023.html
Copyright © 2011-2022 走看看