随笔分类 - 思维
HDU 1052 Tian Ji -- The Horse Racing (贪心)
摘要:题意:田忌赛马,问你田忌最多能赢多少银子。 析:贪心,绝对贪心的题,贪心策略是: 1.如果田忌当前的最快的马能追上齐王的,那么就直接赢一局 2.如果田忌当前的最慢的马能追上齐王的,那么就直接赢一局 3.如果田忌当前的最慢的马不能超过齐王的,那么就输一局,并把齐王最快的干掉 通过以上策略,就是田忌赢的
阅读全文
CodeForces 732C Sanatorium (if-else)
摘要:题意:某人去旅游,记录了一共吃了多少顿饭,早中晚,但是有可能缺少,问你最少缺少了多少顿。 析:每把三个数排序,然后再一一对比,肯定是以最大数为主,其他两个肯定是缺少了。 代码如下:
阅读全文
CodeForces 743C Vladik and fractions (数论)
摘要:题意:给定n,求三个不同的数满足,2/n = 1/x + 1/y + 1/z。 析:首先1是没有解的,然后其他解都可以这样来表示 1/n, 1/(n+1), 1/(n*(n+1)),这三个解。 代码如下:
阅读全文
CodeForces 743B Chloe and the sequence (递归)
摘要:题意:给定n和k,求第n个序列中第k个数是多少,序列是这样构造,原来只有1,然后再copy一遍放在到后面再在中间放上一个没有出现过的最小整数,就变成了 121,下次就成了1213121。 析:很明显是用递归来做,如果k在前半部分,那么就再递归,如果是在后半部分,那么就是先减一半再递归。 代码如下:
阅读全文
HDU 4336 Card Collector (期望DP+状态压缩 或者 状态压缩+容斥)
摘要:题意:有N(1<=N<=20)张卡片,每包中含有这些卡片的概率,每包至多一张卡片,可能没有卡片。求需要买多少包才能拿到所以的N张卡片,求次数的期望。 析:期望DP,是很容易看出来的,然后由于得到每张卡片的状态不知道,所以用状态压缩,dp[i] 表示这个状态时,要全部收齐卡片的期望。 由于有可能是什么
阅读全文
UVaLive 7143 Room Assignment (组合数+DP)
摘要:题意:有 n 个客人,m个房间,每个房间可住ci个人,这 n 个人中有 t 对双胞胎,sum{ci} = n 问你有多少种住房方法。 析:计数DP,dp[i][j] 表示前 i 个房间,还剩下 j 对双胞胎未住,第 i+1 个房间,就从剩下的 j 对双胞胎中选 k 对,然后再从不是双胞胎的人选剩下的
阅读全文
HDU 5024 Wang Xifeng's Little Plot (DP)
摘要:题意:给定一个n*m的矩阵,#表示不能走,.表示能走,让你求出最长的一条路,并且最多拐弯一次且为90度。 析:DP,dp[i][j][k][d] 表示当前在(i, j)位置,第 k 个方向,转了 d 次变的最多次数,然后用记忆化搜索就好。 代码如下:
阅读全文
HDU 1885 Key Task (BFS + 状态压缩)
摘要:题意:给定一个n*m的矩阵,里面有门,有钥匙,有出口,问你逃出去的最短路径是多少。 析:这很明显是一个BFS,但是,里面又有其他的东西,所以我们考虑状态压缩,定义三维BFS,最后一维表示拿到钥匙的状态,然后再BFS,就简单了。 代码如下:
阅读全文
UVa 11440 Help Tomisu (数论欧拉函数)
摘要:题意:给一个 n,m,统计 2 和 n!之间有多少个整数x,使得x的所有素因子都大于M。 析:首先我们能知道的是 所有素数因子都大于 m 造价于 和m!互质,然后能得到 gcd(k mod m!, m!) = 1,也就是只要能求出不超过 m!且和 m! 互质的个数就好,也就是欧拉函数呗,但是,,,m
阅读全文
UVa 1363 Joseph's Problem (数论)
摘要:题意:给定 n,k,求 while(i <=n) k % i的和。 析:很明显是一个数论题,写几个样例你会发现规律,假设 p = k / i.那么k mod i = k - p*i,如果 k / (i+1) 也是p,那么就能得到 : k mod (i+1) = k - p*(i+1) = k mod
阅读全文
HDU 4349 Xiao Ming's Hope (Lucas)
摘要:题意:给定一个 n,问你在 C(n, 0) - C(n , n) 中有多少个奇数。 析:Lucas定理,C(b[i], a[i]),只要不为0,那么就是奇数,然后b[i],是固定的,也就是说a[i] 只有 b[i]+1种情况。最后乘起来就好。 代码如下:
阅读全文
HDU 3944 DP? (Lucas定理)
摘要:题意:在杨辉三角中让你从最上面到 第 n 行,第 m 列所经过的元素之和最小,只能斜向下或者直向下走。 析:很容易知道,如果 m 在n的左半部分,那么就先从 (n, m)向左上,再直着向上,如果是在右半部分,那么就是先直着向上,再斜着左上。这样对应到, 左半部分:C(n, m) + C(n-1, m
阅读全文
Gym 100548F Color (数论容斥原理+组合数)
摘要:题意:给定 m 种颜色,把 n 盆花排成一直线的花涂色。要求相邻花的颜色不相同,且使用的颜色恰好是k种。问一共有几种涂色方法。 析:首先是先从 m 种颜色中选出 k 种颜色,然后下面用的容斥原理,当时没想出来,如果是只用一种颜色,那么肯定不行,如果用两种颜色,可以有这么方法, 2 * (2-1) ^
阅读全文
Gym 100548K Last Defence (数论)
摘要:题意:给定两个数,然后从第三个开始,每个数都是前两个数的差的绝对值,问这个序列中有多少个不同的元素。 析:这个和辗转相除法差不多,假设a > b那么a-b之间就有a/b个数,然后再计算a%b-b之间的,直到最后算到0. 代码如下:
阅读全文
HDU 3304 Interesting Yang Yui Triangle (Lucas定理)
摘要:题意:求杨辉三角中第 n+1行不能整除 p的数目。 析:运用Lucas定理,只要统计C(ni, mi)中全都不是0的数目即可,因为是第 n+1行,所以ni每次都不变,也就是mi <= ni,那么C(ni, mi),就不是0. 所以就有ni+1种答案,最后乘起来即可。 代码如下:
阅读全文
HDU 3037 Saving Beans (数论,Lucas定理)
摘要:题意:问用不超过 m 颗种子放到 n 棵树中,有多少种方法。 析:题意可以转化为 x1 + x2 + .. + xn = m,有多少种解,然后运用组合的知识就能得到答案就是 C(n+m, m)。 然后就求这个值,直接求肯定不好求,所以我们可以运用Lucas定理,来分解这个组合数,也就是Lucas(n
阅读全文
UVa 1161 Objective: Berlin (最大流)
摘要:题意:给定一些航班,每个航班有人数,和起始终止时间,每次转机要花半小时,问限制时间内最多能有多少人从起始城市到终点城市。 析:差不多是裸板网络流的最大流问题,把每个航班都拆成两个点,这两个点之间连接一条流量为这个航班的容量,然后再暴力去查看能不能连接,如果能, 那么就连接一条容量无限的边,然后在源点
阅读全文
Vijos P1951 玄武密码 (AC自动机)
摘要:描述 在美丽的玄武湖畔,鸡鸣寺边,鸡笼山前,有一块富饶而秀美的土地,人们唤作进香河。相传一日,一缕紫气从天而至,只一瞬间便消失在了进香河中。老人们说,这是玄武神灵将天书藏匿在此。 很多年后,人们终于在进香河地区发现了带有玄武密码的文字。更加神奇的是,这份带有玄武密码的文字,与玄武湖南岸台城的结构有微
阅读全文
LA 4670 Dominating Patterns (AC自动机)
摘要:题意:给定一个一篇文章,然后下面有一些单词,问这些单词在这文章中出现过几次。 析:这是一个AC自动机的裸板,最后在匹配完之后再统计数目就好。 代码如下:
阅读全文
HDU 5510 Bazinga (KMP)
摘要:题意:给定 n 个 字符串,让你找出最大的 r,使得存在一个 sl 不是sr的子串(l < r)。 析:KMP算法,不过直接暴力就别想了,肯定TLE,所以我们考虑一下,用两个指针 l, r,如果sl 不是 sr的字串,那么们就可以更新r,继续往后,直到找到最后。 代码如下:
阅读全文
浙公网安备 33010602011771号