一个数大约有 $O(\sqrt(n)/log^2(n))$ 个约数。

1. 一个棋盘,每个格子最开始都是白的。可以按一个格子,它马跳(日字跳)能到达的 $8$ 个格子反色(当前格不反色)。问有多少种方案使棋盘全部变黑。$n,m\le 200$。

先考虑翻转十字(上下左右四格)只有一排的做法:按 $2$ 个空 $2$ 个。

模 $4$ 余 $0$ 有一种方案(第一个和最后一个不选),余 $1$ 没有方案(有一端格子一定翻不了),余 $2$ 有 $1$ 种方案,余 $3$ 有 $2$ 种方案。

一通尝试后,发现这很像某道扫雷题(本篇T1)。

朴素暴力等于枚举左上角 $1*1$ 的情况……但很显然,这样有两个不确定的格子能影响左上角那一个格子的结果,因此就是龟速暴力了。

而 $2*2$ 的格子中,右上角和左下角那个格子都只被一个不确定的格子影响。这样就能能先确定第一行。然后由于只能在第二行用十字影响第一行的一个格子,因此反过来想,为了让第一行都变黑,第一行也就能唯一确定第二行。列同理。

其实枚举左上角 $2*2$ 的情况,整个棋盘就确定下来了。可以延续上面的思路证明。

由于左上角 $2*2$ 能确定前两行,把棋盘翻转过来想,它就能确定前两列。所以每一行前 $2$ 个都确定了,后面也全都确定了。

马字的话,观察它影响范围的一个角的部分,发现只要枚举左上角 $3*3$ 的情况就可以了。

2. 给你一些节点的度数,问你有多少种 $n$ 棵节点的无根树。均为无向边。

3. 给你一棵 $n$ 个点的树和无向图,现在请你给树编号,使它是无向图的一棵生成树。求总方案数。

树上dp+状态压缩

$f(i,j,s)$ 表示 $i$ 的父亲是 $j$,没有编号的点集是$s$。

4. $n(\le 50)$ 个篮子,$m(m\le 50)$ 种水果,$a_{i,j}\le 50$ 表示第 $i$ 个篮子中第 $j$ 种水果的数量。

现在有两种随机操作:

1.等概率选篮子子集;

2.混合后等概率选一个水果。

问每种水果的占比率。

第 $i$ 种水果的概率:

5. $n*n$ 的图形,挖掉若干个矩阵,使每行每列只能有一段连续挖掉的地方。求总方案数。

肯定是中间挖掉一块,且上、下端是单峰的。

所以 $f(i,j,k,x,y)$ 表示第 $i$ 列的上端为第 $j$ 行,下端为第 $k$ 行,$x,y$ 分别表示上、下端在上升还是下降/下降还是上升。

然后发现每次转移是 $n^2$ 的($j,k$两重枚举),时间爆了。比如:

$f(i,j,k,0,0) \space=\space \sum_{j'\le j}\sum_{k'\le k} f(i-1,j',k',0,0) \space+\space \space \sum_{j'\le j}\sum_{k'\gt k} f(i-1,j',k',0,1)$

发现是俩$sigma$套了起来,二维前缀和优化即可。

【2018.10.27】CXM笔记的更多相关文章

  1. 2018.10.27 bzoj1984: 月下“毛景树”(树链剖分)

    传送门 唉蒟蒻又退化了,这道sb题居然做了20min,最后发现是updcovupdcovupdcov写成了updaddupdaddupdadd我还能说什么233233233 就是让你转边权为点权之后, ...

  2. 2018.10.27 codeforces402D. Upgrading Array(数论+贪心)

    传送门 唉我觉得这题数据范围1e5都能做啊... 居然只出了2000 考完听zxyzxyzxy说我的贪心可以卡但过了? 可能今天本来是0+10+00+10+00+10+0只是运气好T1T1T1骗了10 ...

  3. 2018.10.27 bzoj3209: 花神的数论题(数位dp)

    传送门 数位dpdpdp经典题. 题面已经暗示了我们按照二进制位来数位dpdpdp. 直接dpdpdp多少个数有111个111,222个111,333个111-, 然后快速幂算就行了. 于是我们枚举前 ...

  4. 2018.10.27 洛谷P2915奶牛混合起来Mixed Up Cows(状压dp)

    传送门 状压dp入门题. 按照题意建一个图. 要求的就是合法的链的总数. 直接f[i][j]f[i][j]f[i][j]表示当前状态为jjj,下一位要跟iii连起来的方案数. 然后从没被选并且跟iii ...

  5. 2018.10.27 loj#2292. 「THUSC 2016」成绩单(区间dp)

    传送门 g[i][j][k][l]g[i][j][k][l]g[i][j][k][l]表示将区间l,rl,rl,r变成最小值等于kkk,最大值等于lll时的花费的最优值. f[i][j]f[i][j] ...

  6. 2018.10.27 loj#6035. 「雅礼集训 2017 Day4」洗衣服(贪心+堆)

    传送门 显然的贪心题啊...考试没调出来10pts滚了妙的一啊 直接分别用堆贪心出洗完第iii件衣服需要的最少时间和晾完第iii件衣服需要的最少时间. 我们设第一个算出来的数组是aaa,第二个是bbb ...

  7. POI 2018.10.27

    [POI2015]LOG 维护一个长度为n的序列,一开始都是0,支持以下两种操作:1.U k a 将序列中第k个数修改为a.2.Z c s 在这个序列上,每次选出c个正数,并将它们都减去1,询问能否进 ...

  8. math(2018.10.27)

    20%的数据直接暴搜就行,接下来我们考虑哪些数不能够出现在同一个集合中,就连一 条边,我们会发现前

  9. physics(2018.10.27)

    这道题可以推出\(O(1)\)的算法,但是实际上暴力模拟就可以过了. 代码(暴力模拟): #include<cstdio> #include<algorithm> #inclu ...

随机推荐

  1. POJ 3140 Contestants Division (树形DP,简单)

    题意: 有n个城市,构成一棵树,每个城市有v个人,要求断开树上的一条边,使得两个连通分量中的人数之差最小.问差的绝对值.(注意本题的M是没有用的,因为所给的必定是一棵树,边数M必定是n-1) 思路: ...

  2. FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to controller/192.168.1.183:9000. Exiting. java.io.IOExcep

    2018-01-09 09:47:38,297 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed ...

  3. Servlet The Request

    The Request HTTP Protocol Parameters 所有的HTTP Protocol Parameters都会放在一个Map中, 可以通过getParameterMap得到. 对 ...

  4. Entity Framework插入数据报错:Validation failed for one or more entities

    www.111cn.net 编辑:lanve 来源:转载 今天在处理Entity Framework插入数据库时,报错: Validation failed for one or more entit ...

  5. Eclipse 和 MyEclipse 工程描述符

    有时候在一个Java工程里我们需要加入第三方jar包,这时你加入的最好相对路径, 而不是绝对路径.否则你的工程拿到别处就不行运行了.意思就是说你最好把相关的jar放到工程目录下. 对于Web工程来说相 ...

  6. 解决因为手机设置字体大小导致h5页面在webview中变形的BUG

    首先,我们做了一个H5页面,在各种手机浏览器中打开都没问题.我们采用了rem单位进行布局,通过JS来动态计算网页的视窗宽度,动态设置html的font-size,一切都比较完美. 这时候,你自信满满的 ...

  7. Codeforces 727C Guess the Array

    题目传送门 长度为\(n\)的数组,询问\(n\)次来求出数组中每一个数的值 我们可以先询问三次 \(a[1]+a[2]\) \(a[1]+a[3]\) \(a[2]+a[3]\) 然后根据这三次询问 ...

  8. 纯 CSS 创作一个小球绕着圆环盘旋的动画

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/gKxyWo 可交互视频 ...

  9. mysql启动错误排查-无法申请足够内存

    一般情况下mysql的启动错误还是很容易排查的,但是今天我们就来说一下不一般的情况.拿到一台服务器,安装完mysql后进行启动,启动错误如下: 有同学会说,哥们儿你是不是buffer pool设置太大 ...

  10. MFC CString 和int相互转化

    CString str = _T("123"); int i = _ttoi(str); =============== int i = 123; CString str ; st ...