
---------思维技巧---------
笑对这个世界的志贵
这个作者很懒,什么都没留下…
展开
-
【bfs && 反向建边】2016-2017 ACM-ICPC, Egyptian Collegiate Programming Contest (ECPC 16) Jumping
Problem Description 输入T代表有T组测试数据,输入n代表有n个商城分别是1-n。每个商城都有一个值num,在这个商城可以直接跳到i-num的商城 or i+num的商城。问你每个商城到n这个商城最少需要跳几次,如果不能到输出-1。思路: 看到这个题第一反应想到的是记忆化搜索,因为求的一个商城的最少跳跃距离,就可以用数组保存起来,下次在访问到直接返回值就可以了。也许是个人翻译 2017-10-03 15:55:57 · 435 阅读 · 0 评论 -
【中国剩余定理 && 枚举 && 思维】UVA 11754 Code Feat
Problem Decription 有一个正整数N满足C个条件,每个条件都形如“它除以X的余数在集合{y1, y2, …, yk}中”,所有条件中的X两两互素,你的任务是找出最小的S个解。思路: “除以X的余数在集合{Y1, Y2, …, Yk}中”这个条件很不好处理。如果我们知道这个余数具体是Y1,Y2,…Yk中的哪一个,问题就会简单很多。一种容易想到的方法是枚举每个集合中取那个元素,翻译 2017-10-19 19:49:19 · 282 阅读 · 0 评论 -
【状态压缩 && 思维转换】Codeforces Round #438 868C Qualification Rounds
Problem Description 输入n, k代表有n个问题,k个队伍。接下来输入一个n*k的矩阵,如果为1代表第j个队伍知道第i个题如何做,0代表不知道如何做。你想要找到一个关于这n道题的非空子集,每个参加队伍知道的题目不超过总数的一半。问是否能找到这么个子集。 思路: 如果存在一道题全部队伍都不知道,那么yes,否则就得找两道题,如果为yes,最坏情况就是每个队伍都知道一道题。如翻译 2017-10-06 17:01:03 · 232 阅读 · 0 评论 -
【数论 && 公式转换】HDU - 5584 LCM Walk
Problem Description 输入T代表有T组测试数据,每组测试数据输入x,y代表终点。问你有多少个不同的起始点能到达终点?假设一个点(x0, y0)那么它下一步可以走(x0 + lcm(x0, y0), y0) 或者 (x0, y0 + lcm(x0, y0));思路 假设令当前点为(x1, y1),我们可以转换一下x1 = p*t, y1 = q*t其中(t 为 gcd(x1翻译 2017-10-06 16:05:11 · 266 阅读 · 0 评论 -
【前缀和 && 思维转换】ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined)Molly's Chemicals
Problem Description 输入n, k代表有n个元素,问你任意取一段区间和 满足k的m次方(m是任意正整数)让你求出:有多少段不同的区间和?思路: 第一想法能想到的就是前缀和然后 sum[i] - sum[j] = pow[k] i: 1 to n; j : 0 to (i - 1); k : 0 to m;这样复杂度肯定会超时。于是就没想到了,然后百度借鉴借鉴。将公式转化成翻译 2017-10-03 10:42:19 · 712 阅读 · 0 评论 -
【bfs && 如何想到bfs】2014 Benelux Algorithm B - Button Bashing
Problem Description 输入T,代表有T组测试数据。每组测试数据输入n, t代表有n个按钮,煮好食物需要t秒以上。接下来n个数,代表每个按钮能够增加烹饪的时间。问你煮好食物至少需要按多少次按钮,至少超出几秒。优先接近t秒,秒数一样,再考虑按钮次数少的。思路: 一开始也有思考到bfs, 第一反应认为状态太多,是不是应该有目的性搜索,敲个A*,但是自己A*不稳,没敲过几次。所以翻译 2017-10-10 20:43:06 · 276 阅读 · 0 评论 -
【前缀和 && 子矩阵的中位数】Gym - 101778F Median and Queries
Step1 Problem: 有一个 n * m 的矩阵,每个位置都有一个值 a[i][j]. 有 q 个询问。 对于每个询问给你一个子矩阵: 子矩阵的 左上角(x1, y1),右下角(x2, y2),求该子矩阵的中位数。 中位数:所有数排序后,中间的那一个。如果有两个中位数,选靠左边的那一个。 数据范围: 1<=n, m<=100, 1<=...翻译 2018-09-06 11:09:23 · 438 阅读 · 3 评论