摘要: 给出5*6的位置,每个位置有一个灯,一开始每个灯有各自的状态,你可以选定一些位置使得所有与这个位置相邻以及位置本身的灯都取反。输出合法方案。本来是找高斯消元找到这个题目的,可是。。。。我发现可以直接状态压缩dfs,于是就水过了,高斯消元还是不会。怒坑。枚举是这样的,当前6位数表示这一行每个灯的状态,... 阅读全文
posted @ 2014-07-28 23:04 092000 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 给一个无向图,如果第i个点连接第j条边,那么mat[i][j]=1,否则mat[i][j]=0。求mat的转置乘以本身得到的矩阵每个位置的和是多少?理解矩阵的意义就比较好做了。mat[i][j]表示i点可以连接到j边,转置后相乘的意义是第i边和第j边有公共点。这样,我们只需要统计每个点的度数,这样我... 阅读全文
posted @ 2014-07-28 22:59 092000 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 给出一些数组a[i],每次询问为li,ri,定义f[li]=a[li],f[li+1]=a[li+1],对于其他不超过ri的位置,f[x]=f[x-1]+a[x]*f[x-2] 。题目有着浓浓的矩阵气息。f[x]=f[x-1]+a[x]*f[x-2]f[x-1]=f[x-1]+0根据上面两个我们就可... 阅读全文
posted @ 2014-07-28 18:03 092000 阅读(1144) 评论(0) 推荐(0) 编辑
摘要: 给一棵树,每次每次询问一个点是否是另一个点的祖先?首先,题目的读入就有点坑爹,注意,每个节点的值是说明它下面有多少个儿子节点,直接对于每个下标保存一个值即可。对于查询是否是祖先,我们可以对于每一个节点打上两个dfs标记,如果一个点是另一个点的祖先,那么它的两个标记一定在祖先的范围之内。还要注意,由于... 阅读全文
posted @ 2014-07-28 17:56 092000 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 给出n个循环位置,每个位置有一定数量的盒子,每次操作可以使一个盒子转移到相邻位置,问最少需要转移多少次使得所有位置上的盒子的数量不会超过1个。简单题。对于每个位置,加边(s,i,a[i],0),(i,t,1,0)。对于相邻的位置加边(i,i+1,inf,1),(i,i-1,inf,1) 。显然最后我... 阅读全文
posted @ 2014-07-28 09:19 092000 阅读(1221) 评论(0) 推荐(0) 编辑
摘要: 给你若干个区间,每个区间有一个权值,你可以选出某些区间,使得在保证没有任何一段的覆盖次数超过k的前提下,总的权值最大。这个建模真的十分神奇,赞一个。对于给出的每一个区间,离散化,最终我们可以知道所有区间的端点的个数不会超过2n,然后我们加边,(i,i+1,k,0),对于每个区间我们加边(li,ri,... 阅读全文
posted @ 2014-07-28 09:16 092000 阅读(551) 评论(0) 推荐(0) 编辑