上一页 1 2 3 4 5 6 7 8 9 10 ··· 16 下一页
摘要: 题意: 有n个城市,一个人选择一个城市开始,游历其它城市,但是他不能到一个城市超过两次。 问是否能游历完这些城市,以及最少的花费。 思路: 一直读错题意,觉得是二进制状压,囧。 不超过两次,那么就是3进制状态压缩,预先把3的进制预处理出来,之后按照二进制同样的处理方法就行了。 还要先把某个数的3进制 阅读全文
posted @ 2018-04-17 00:25 qrfkickit 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 题意: 一个人要送pizza到一些地方,一个地方可以进过两次,这样经过中转的时间可能会更短。 问送完pizza会到原点的最少时间。 思路: 状压dp + Floyd? 经典的tsp问题,不过并没有想到用Floyd求最短距离。 我的做法是,更新一个状态时,更新两次,第一次更新最新的点,第二次更新经过中 阅读全文
posted @ 2018-04-17 00:15 qrfkickit 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一个字符串,求这个字符串可以被划分为最少的回文串的个数。 思路: 首先可以N^2预处理出i到j是不是一个回文串。 之后就是状态转移方程: dp[i] = min(dp[j-1] + 1,dp[i]),如果s[j..i]是回文串。 代码: 阅读全文
posted @ 2018-04-16 23:58 qrfkickit 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一个数列,要求找出一个子序列,长度为2 * n + 1。 要求这个子序列的前n + 1个数为严格递增的,后n + 1个数为严格递减的。 求最长的这样一个子序列。 思路: 首先求出以每一个数结尾的最长上升子序列(从左到右)的长度inc和以每一个数结尾的最长上升子序列(从右到左)的长度dnc 阅读全文
posted @ 2018-04-16 23:54 qrfkickit 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 题意: 中文题意,略。 思路: 一支炮兵部队可以攻击的范围是两格,所以当前行的状态只和前两行的状态有关。 所以就枚举当前行,前一行和前两行的状态,如果用二进制枚举,2^M的三次方,M最大为10,铁定TLE。 其实状态并没有想的那么多,因为隔两格才可以放一个,所以其实真的有效的状态不会超过100个。 阅读全文
posted @ 2018-04-16 23:47 qrfkickit 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出若干种货物及其数量以及价格,然后给出一些优惠信息,一些货物组合在一起的价格一定比它们的原价加起来要低。 现在买到这些货物最少的钱(不能增加货物,即使钱会更少)。 思路: 最多有5种货物,每种货物最多5个。 那么就可以考虑压缩状态,6进制的状态压缩,这样就可以表示每种货物的状态。 然后,对 阅读全文
posted @ 2018-04-14 20:10 qrfkickit 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 题意: n个有能量的原子,每两个原子相碰可以产生能量,之后其中的一个原子会消失。 给出两两相撞的能量表,问只剩一个原子的时候产生的最大的能量是多少。 思路: 由于n的值最大为10,所以考虑压缩状态,就可以进行dp了。 转移方程:dp[i|(1<<k)] = max(dp[i|(1<<k)],dp[i 阅读全文
posted @ 2018-04-14 19:57 qrfkickit 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 题意: 一个游戏,敌人有L的血量,己方可以生产n种武器,每种武器的生产需要花费ti秒,这种武器产生之后的每一秒都可以对敌人的血量造成vi的伤害,并且每种武器的生产数量是没有限制的。 每一秒要么什么都不做,要么用来生产一种武器。 当敌人的血量为0时,己方获胜。 问最少需要多少时间使得己方获胜。 思路: 阅读全文
posted @ 2018-04-13 19:37 qrfkickit 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 题意: 说的是一个电子云的三种状态,但是这不重要。 简单来说,就是在一个升序的序列中找三个数x,y,z,x和z的值之差不超过u,然后使得(z – y) / (z – x)最大。 思路: 使得(z – y)/(z – x)最大,那么y与x要尽量接近,并且z – x尽量大,一个比较显然的例子是8/9大于 阅读全文
posted @ 2018-04-12 18:25 qrfkickit 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一个字符串,要求任意两个相同的字母不能相同,问这个字符串是否能有两种或者两种以上的表现形式。 思路: 简单判断一下: 1.问号在端点; 2.连续两个问号或者以上; 3.一个问号两端的字母是相同的。 不过坑点就是给出的字符串没有问号或者给出的字符串本身就是不满足条件的。 代码: 阅读全文
posted @ 2018-04-12 18:24 qrfkickit 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 题意: A和B在玩一个游戏,首先有一个X0 >= 3,之后选择一个小于X0的质数p,然后在找一个最小的X1 >= X0,并且p可以整除X1;之后再选择一个小于X1的质数p,然后再找一个最小的X2 >= X1,并且p可以整除X2。。。。 总之,每次会选择一个p小于Xi-1,然后找一个最小的Xi >= 阅读全文
posted @ 2018-04-12 18:22 qrfkickit 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出A和B,要求构造出一个具有A个白色连通块和B个黑色连通块的矩阵。 这个矩阵的长和宽最多为100. 思路: 试想如果横着每个点同类的点隔着一个不同的点,竖着每个同类的点隔着一个不同的点,那么就可以很简单的构造了。。。 代码: 阅读全文
posted @ 2018-04-12 18:21 qrfkickit 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出横坐标上一系列的点,一个人从0出发按照下标顺序访问每一个点,再回到0点。 问每次如果去掉一个点,那么访问的距离变为多少。 思路: 去掉这个点,那么就减去这个点到上一点到这一点的距离,减去这个点到下一个点的距离,加上上一个点到下一个点的距离。。。。 代码: 阅读全文
posted @ 2018-04-12 18:20 qrfkickit 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出两个长度N相同的整数序列A和B,有N^2种方式从A中选择一个数Ai,从B中选择一个数Bj,让两个数相加,求这N^2个数的XOR,即异或。 思路: 暴力的求显然是会超时的,因为是异或,就考虑在最后的结果中以二进制表示每一位是0还是1。 在计算第i位是否为1的时候,显然不需要考虑更高位的影响 阅读全文
posted @ 2018-04-12 18:19 qrfkickit 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 题意: 有n个红色的点和n个蓝色的点,如果红色的点的横坐标和纵坐标分别比蓝色的点的横坐标和纵坐标小,那么这两个点就可以成为一对友好的点。 问最多可以形成多少对友好的点。 思路: 裸的二分图匹配,对于满足条件的两个点连边。 wa了两发,板子错了,还是得用果苣的!。 代码: 阅读全文
posted @ 2018-04-12 18:18 qrfkickit 阅读(283) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 16 下一页