30+15+50
三题暴力
水叮当得到了一块五颜六色的格子形地毯作为生日礼物,更加特别的是,地毯上格子的颜色还能随着踩踏而改变。
为了讨好她的偶像虹猫,水叮当决定在地毯上跳一支轻盈的舞来卖萌~~~
地毯上的格子有N行N列,每个格子用一个0~5之间的数字代表它的颜色。
水叮当可以随意选择一个0~5之间的颜色,然后轻轻地跳动一步,地毯左上角的格子所在的联通块里的所有格子就会变成她选择的那种颜色。这里连通定义为:两个格子有公共边,并且颜色相同。
由于水叮当是施展轻功来跳舞的,为了不消耗过多的真气,她想知道最少要多少步才能把所有格子的颜色变成一样的。
对于100%的数据,N<=8,每个测试点不多于20组数据。
n这么小肯定是暴力
IDA*
估价函数的值就是剩下的点的颜色个数,因为至少还需要那么多次才能消完。
还可以优化一下宽搜。记录数组v[x][y]=0~2表示点(x,y)没搜到/搜到过/与搜到的点相邻
vani和cl2在一片树林里捉迷藏……
这片树林里有N座房子,M条有向道路,组成了一张有向无环图。
树林里的树非常茂密,足以遮挡视线,但是沿着道路望去,却是视野开阔。如果从房子A沿着路走下去能够到达B,那么在A和B里的人是能够相互望见的。
现在cl2要在这N座房子里选择K座作为藏身点,同时vani也专挑cl2作为藏身点的房子进去寻找,为了避免被vani看见,cl2要求这K个藏身点的任意两个之间都没有路径相连。
为了让vani更难找到自己,cl2想知道最多能选出多少个藏身点?
对于100% 的数据,N≤200,M<=30000,1<=x,y<=N。
求有向无环图的最大独立集。
题目的模型被称为最长反链,即在有向无环图中求一个点集使其两两不可达(最大独立集)。
Dilworth定理:最长反链长度=最小链覆盖(用最少的链覆盖所有节点,可有点相交)
证明:https://blog.csdn.net/qq_34564984/article/details/52993626
先求出原图的传递闭包( 如果a到b有路, 那么就加边a->b)。
然后把每个点A拆成两个点Ax与Ay,对于原图中的边A−>B,我们在新图中连Ax−>By。
答案就是原图点数-二分图最大匹配。
证明:
一开始每个点都独立为一条路径,在二分图中连边就是将路径合并,每连一条边路径数就减一。因为路径不能相交,所以不能有公共点,这恰好就是匹配的定义。所以有:最少不相交路径覆盖=原图的点数-新图的最大匹配
关于最大匹配,最小点覆盖,最少路径覆盖和最大独立集的总结
赫克托是一个魁梧的粉刷匠,而且非常喜欢思考= =
现在,神庙里有N根排列成一直线的石柱,从1到N标号,长老要求用油漆将这些石柱重新粉刷一遍。赫克托有K桶颜色各不相同的油漆,第i桶油漆恰好可以粉刷Ci根石柱,并且,C1+C2+C3…CK=N(即粉刷N根石柱正好用完所有的油漆)。长老为了刁难赫克托,要求相邻的石柱颜色不能相同。
喜欢思考的赫克托不仅没有立刻开始粉刷,反而开始琢磨一些奇怪的问题,比如,一共有多少种粉刷的方案?
为了让赫克托尽快开始粉刷,请你尽快告诉他答案。
100% K≤15,Ci≤6,T≤2000
有m个种类的球,第i个种类有r[i]个球,把球排成一行使得相邻两个球种类不同,问方案数。
假设我们先放了前i种颜色的球,共sum个。
总共有sum+1个空,其中有的空两端是相同颜色,把它叫做非法空,两端不同颜色的叫做合法空。
设f[i][j]表示放了前i种颜色的球,非法空的个数为j的方案数。
枚举s1,s2表示把第i+1种球放入 前i种球构成的非法空和合法空 的个数
\(f[i+1][j-s1+a[i+1]-(s1+s2)]+=f[i][j]*C_{sum+1-j}^{s2}*C_{j}^{s1}*C_{a[i+1]-1}^{s1+s2-1}\)
j-s1+a[i+1]-(s1+s2)的来历:
本来有j个非法空,放球到其中s1个中就少了s1个非法空。把s1+s2个球刚好塞进每个选定的空中,剩下a[i+1]-(s1+s2)个球怎么塞都会是非法空个数+1。
早上起来一看已经8:05了,再一看宿舍里还有7个人(汗)
转载于:https://www.cnblogs.com/leason-lyx/p/11285227.html
相关资源:8.1 android 串口编程