随笔分类 - 思维
Gym 100851A Adjustment Office (思维)
摘要:题意:给定一个 n*n 的矩阵,然后有 m 个询问,问你每一行或者每一列总是多少,并把这一行清空。 析:这个题不仔细想想,还真不好想,我们可以根据这个题意,知道每一行或者每一列都可以求和公式来求,然后再送去变成0的数,由于每一行或者每一列, 都是等差数列,所以我们只要记录每一个的第一个元素就好,再记
阅读全文
UVaLive 6854 City (暴力)
摘要:题意:给定一个 n*m 的矩阵,表示有多少条道路与它相连,其中有一个-1,表示未知,道路只能横着和竖着,求-1处的值。 析:根据题意可知,一个点,与其他周围的四个点都可能相连的,也就是说肯定有共用道路的,所以,我们只要算四个点的数就好,然后依次推一下,就得到答案, 也就是说这里面的点可以分为两部分,
阅读全文
UVa 1645 Count (递推,数论)
摘要:题意:给定一棵 n 个结点的有根树,使得每个深度中所有结点的子结点数相同。求多棵这样的树。 析:首先这棵树是有根的,那么肯定有一个根结点,然后剩下的再看能不能再分成深度相同的子树,也就是说是不是它的约数。那么答案就有了, 我们只要去计算n-1的约数有多少棵不同的树,然后就有递推式了。 代码如下:
阅读全文
CCF 201512-4 送货 (并查集+DFS,欧拉路)
摘要:问题描述 为了增加公司收入,F公司新开设了物流业务。由于F公司在业界的良好口碑,物流业务一开通即受到了消费者的欢迎,物流业务马上遍及了城市的每条街道。然而,F公司现在只安排了小明一个人负责所有街道的服务。 任务虽然繁重,但是小明有足够的信心,他拿到了城市的地图,准备研究最好的方案。城市中有n个交叉路
阅读全文
UVa 557 Burger (概率+递推)
摘要:题意:有 n 个牛肉堡和 n 个鸡肉堡给 2n 个客人吃,在吃之前抛硬币来决定吃什么,如果剩下的汉堡一样,就不用投了,求最后两个人吃到相同的概率。 析:由于正面考虑还要要不要投硬币,太麻烦,所以我们先求最后两人吃到不同的概率即可,再用 1 减去就OK。 假设最后两个人吃的不一样,那么前 n-2 个人
阅读全文
UVa 10723 Cyborg Genes (LCS, DP)
摘要:题意:给定两行字符串,让你找出一个最短的序列,使得这两个字符串是它的子串,并且求出有多少种。 析:这个题和LCS很像,我们就可以利用这个思想,首先是求最短的长度,不就是两个字符串长度之和再减去公共的么。那么有多少种呢? 同样也是分两种情况讨论,如果s1[i-1] == s2[j-1] 那么种类数肯定
阅读全文
UVa 1631 Locker (DP)
摘要:题意:有一个 n 位密码锁,每位都是0-9,可以循环旋转。同时可以让1-3个相邻数字进行旋转一个,给定初始状态和目状态,问你最少要转多少次。 析:很明显的一个DP题。dp[i][j][k] 表示前 i 位已经转好,并且第 i+1 位是 j ,第 i+2 位是 k,那么我们先把第 i 位转到指定位置,
阅读全文
CodeForces Gym 100685J Just Another Disney Problem (STL,排序)
摘要:题意:给定你大小未知的n个数,你允许有不超过一万次的询问,每次询问两个数,第i个数是否比第j个数小?然后后台会返回给你一个结果YES或者NO(即一行输入), 然后经过多次询问后,你需要给出一个正确的原未知序列的升序排列。 析:当时是真没看懂题意是啥意思,然后就放过了,如果看懂了,并不是很难么,这不就
阅读全文
CodeForces Gym 100685I Innovative Business (贪心)
摘要:题意:给定一条路的长和宽,然后给你瓷砖的长和宽,你只能横着或者竖着铺,也可以切成片,但是每条边只能对应一条边,问你最少要多少瓷砖。 析:先整块整块的放,然后再考虑剩下部分,剩下的再分成3部分,先横着,再竖着,最后是他们相交的部分。 代码如下:
阅读全文
CodeForces Gym 100685E Epic Fail of a Genie (贪心,控制精度)
摘要:题意:给定 n 个数,然后让从中选取一些数使得它们的总乘积最大。如果有多个,要求这些数尽量少,如果还有多个,随便输出一组即可。 析:一个贪心题,根据乘法的性质,很容易知道,如果一个数大于1,那么肯定要选的,然后如果有两个负数乘积大于1,也要选上,其他的尽量不要选。 最后如果没有这样数,那么就只要计算
阅读全文
CodeForces 711D Directed Roads (DFS判环+计数)
摘要:题意:给定一个有向图,然后你可能改变某一些边的方向,然后就形成一种新图,让你求最多有多少种无环图。 析:假设这个图中没有环,那么有多少种呢?也就是说每一边都有两种放法,一共有2^x种,x是边数,那么如果有环呢?假设x是这个连通块的边数, y是这个环的边数,那么就一共有2^x * (2 ^ y - 2
阅读全文
CodeForces 711C Coloring Trees (DP)
摘要:题意:给定n棵树,其中有一些已经涂了颜色,然后让你把没有涂色的树涂色使得所有的树能够恰好分成k组,让你求最少的花费是多少。 析:这是一个DP题,dp[i][j][k]表示第 i 棵树涂第 j 种颜色恰好分成 k 组,然后状态转移方程是什么呢? 如果第 i 棵已经涂了,那么要么和第 i-1 棵一组,要
阅读全文
POJ 1852 Ants (等价思考)
摘要:题意:在一根杆上有 n 只蚂蚁,速度为1,方向不定,如果相碰,则反向运动,问你最长的时间和最短时间,所有蚂蚁都掉下杆去。 析:换个方法想,如果两只蚂蚁相碰了,会有什么现象?其实就和没有碰撞是一样的,没有区别,那么这个题就简单了,只要全都扫一遍即可。 代码如下:
阅读全文
CCF 201312-4 有趣的数 (数位DP, 状压DP, 组合数学+暴力枚举, 推公式, 矩阵快速幂)
摘要:问题描述 我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次。 2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前。 3. 最高位数字不为0。 因此,符合我们定义的最小的有趣的数是2013。除此以外,4位的有趣的数还有两个:20
阅读全文
CCF 201312-3 最大的矩形 (暴力,离散化)
摘要:问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi。这n个矩形构成了一个直方图。例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3。 请找出能放在给定直方图里面积最大的矩形,它的边要与坐标轴平行。对于上面给出的例子,最大矩形如下图
阅读全文
CodeForces 709C Letters Cyclic Shift (水题)
摘要:题意:给定一个字符串,让你把它的一个子串字符都减1,使得总字符串字典序最小。 析:由于这个题是必须要有一个字串,所以你就要注意这个只有一个字符a的情况,其他的就从开始减 1,如果碰到a了就不减了,如果到最后一位了还没开始减, 就减最后一位。 代码如下:
阅读全文
UVaLive 6602 Counting Lattice Squares (找规律)
摘要:题意:给定一个n*m的矩阵,问你里面有几面积为奇数的正方形。 析:首先能知道的是,大的矩阵是包括小的矩阵的,而且面积为奇数,我们只要考虑恰好在边界上的正方形即可,画几个看看就知道了,如果是3*3的有3个, 5*5有5个,偶数没有,因为面积为奇数。那么结果就有了。 代码如下:
阅读全文
UVaLive 6801 Sequence (计数DP)
摘要:题意:给定一个序列,有 n 个数,只有01,然后你进行k次操作,把所有的1变成0,求有多种方法。 析:DP是很明显的,dp[i][j] 表示进行第 i 次操作,剩下 j 个1,然后操作就两种,把1变成0,把0变成1。也可以用记忆化来做。 代码如下: 记忆化搜索:
阅读全文
UVaLive 6694 Toy Boxes (二分+想法)
摘要:题意:给出n个数,把n个数放在三个盒子里,每个盒子里的数绑在一起,要拿出来任何一个数的时候,所承担的重量是整个盒子的总重量,求最小总重量和。 析:感觉吧,就是轻的放的多一些,拿的次数多一些,大的放的少一些,拿的少一些。分成两堆时一定是连续小的物品在一堆,连续大的在一堆, 也就是其中一堆的任意一个物品
阅读全文
浙公网安备 33010602011771号