zoukankan      html  css  js  c++  java
  • 17.11.06

    • 上午模拟考试
      • Prob.1(AC

        题意:给出一个4*4的黑白棋盘,然后有一个骚操作:选择一个位置,是它和它的上下左右的四个格子的颜色取反。问最后达到全黑或全白状态的最小步数。

        1).BFS计算出到达每种状态的最小步数。O(4*216

        2).刘汝佳先生书上的方法。

        由于每一个位置最多只会被操作一次。(显然啦)

        所以枚举第一行的那些位置被操作,然后后面每一行的操作就是要为了把上一行的异种颜色清干净。所以之后的操作是唯一固定,只需要判断到最后一行是否合法就好了。 O(2n*n2,可以处理更大的数据

      • Prob.2(CE

        并查集维护

        (为了加速,在函数前面写了inline,不仅没啥用,反而因为这个忘记写了函数类型(void,int、、、),cena编译不过。但我的dev是怎么编译过的,还那么正确的运行着???真的是凉了。)

        但读入数据之大(9,000,000++),

        scanf要7~8s,

        普通读入优化要2~3s

        只有写神级读入优化,只要0.8s,附上代码:

        char gc(){ static char s[100005]; static int bit=100000,p,len; if(p>=len) len=fread(s,1,bit,stdin),s[len]=EOF,p=0; return s[p++]; } void read(ll &x){ static int f;static char ch; x=0; f=1; ch=gc(); while(ch<'0'||'9'<ch){if(ch=='-')f=-1;ch=gc();} while('0'<=ch&&ch<='9'){x=x*10+ch-'0';ch=gc();} x=x*f; }
        • Prob.3(AC

    一个状压dp,维护出F[S],表示集合S的最大值

        • Prob.4(不计分)

    一个差分约束。

    (原来相邻的两个点不一定要建边啊。是要看是否有隐含条件的。)

  • 相关阅读:
    那些ubuntu创建用户踩过的坑
    Build tools
    version control(以git为例)讲解
    URI和URL的区别
    HTTP解析过程心得
    函数式编程(functional programming)
    cb45a_c++_STL_算法_删除_(3)_unique(唯一的意思)删除连续性的重复的数据
    cb44a_c++_STL_算法_删除_(2)remove_copy_remove_copy_if
    cb43a_c++_STL_算法_删除_(1)remove_remove_if
    cb42a_c++_STL_算法_替换_replace
  • 原文地址:https://www.cnblogs.com/zj75211/p/7811409.html
Copyright © 2011-2022 走看看