码迷,mamicode.com
首页 > 其他好文 > 详细

17.11.06

时间:2017-11-09 22:43:17      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:tab   ++   htm   差分   集合   void   固定   编译   它的   

  • 上午模拟考试
    • 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(不计分)
    • 一个差分约束。

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

17.11.06

标签:tab   ++   htm   差分   集合   void   固定   编译   它的   

原文地址:http://www.cnblogs.com/zj75211/p/7811409.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!