摘要: 题意: 有 G 种颜色的宝石,放在 B 个袋子里(每种颜色可以放多个)。 两人轮流选袋子(每个袋子只能被选 1 次),每次将选出来的袋子中的宝石放到 cooker 中,cooker 可能会起反应。 反应条件是 cooker 中出现 S 个一样颜色的宝石,而且一旦起反应,每 S 个一样颜色的宝石就会获 阅读全文
posted @ 2016-08-22 16:58 十目 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 下面是精简版,参考自 http://blog.csdn.net/fsss_7/article/details/52210266 阅读全文
posted @ 2016-08-16 14:49 十目 阅读(220) 评论(0) 推荐(1) 编辑
摘要: 二进制数子集的取法,结果不会输出0,且从大到小 题意: 给定一个 N个点的图, 求它的每一个子图的最小染色数 染色方法是所有子图中相连接两点颜色不一致 其中 N≤18 题解: 先状压表示出所有的子集状态,即每个子集取那些点 然后枚举出那些子集是独立集,即没有边相连 然后dp,将每个子集的独立集取出并 阅读全文
posted @ 2016-08-11 22:01 十目 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 题意:问交换两个位置能否使这些括号匹配; 复制航神代码,类似于递归思想 阅读全文
posted @ 2016-08-11 19:39 十目 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 题意: 在一条无限长水平直轨道上有n个相同的球,给出每个球的初速度、起始位置、方向.给出若干询问,每次输出 t 秒时第 k 小的速度是多少.对任意球的任一时刻而言,速度与加速度同方向,且它们的乘积为定值C. 题解: 撞击对于速度没有影响,则对于相对大小也没有影响 a*v=c; dv/dt=a; v* 阅读全文
posted @ 2016-08-11 19:33 十目 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 题意: 有N个盒子,每个盒子最多装一个球. 球的颜色不一定相同.现在要进行m次区间操作:每次操作 [l, r] 后可以随意将区间内的球重新分配回去.问经过上述操作后是否有可能达到给定的状态. 题解: 贪心.为每个球标记它在最终结果中的序号. 对于颜色相同的球:左边的尽量分配小的序号.对于m次区间操作 阅读全文
posted @ 2016-08-11 19:29 十目 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给定n个点,m个询问的无向树(1为根) 下面n个数表示每个点的权值 下面n-1行给出树 操作1:x点权值+v, x的第 i & 1 的儿子-v, 第 !(i&1) 的儿子+v 操作2:询问x点权值 思路:把树上的点用dfs序转换一下就可以用树状数组做了,不过因为更新时有两种更新同时进行所 阅读全文
posted @ 2016-08-08 19:45 十目 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给一个数字串(不超过80位),可以在数字之间添加逗号,分成几个数,要求最后形成一个严格递增的序列,且要求最后一个数尽可能的小,如果有多个满足要求,则使第一个数尽可能大,如果还有多个,则使第二个最大,如此类推。求最后的序列。 先dp求出最后一个数最小可以是多少,然后反向dp求出在最后一个数最 阅读全文
posted @ 2016-08-07 16:59 十目 阅读(450) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个长度为n的序列,至多将序列分成m段,每段序列都有权值,权值为序列内任意两个数两两相乘之和。m<=n<=1000. 令权值最小。 dp[i][j]=max{dp[i][j],dp[i-1][k]+w[k+1][j]},遍历k.dp[i][j]表示将前j个分为i段,w[k+1][j]表 阅读全文
posted @ 2016-08-07 13:50 十目 阅读(237) 评论(0) 推荐(0) 编辑
摘要: for(int i = 2; i < N; ++i) nexte[i] = (i == (i & -i)) ? nexte[i - 1] + 1 : nexte[i - 1];//nexte数组中储存的即是i的二进制最高位的位数 阅读全文
posted @ 2016-08-06 16:19 十目 阅读(464) 评论(0) 推荐(0) 编辑