随笔分类 - 蓝桥杯
摘要:1. 题目 输入样例:52 6 4 10 20 输出样例:10 2. 分析: 考的就是等差数列的知识,要让包含几个数的数列最短,那肯定是间隔公差大点,包含的数就少点。 下面每个数与第一个数的间隔为2、4、8、18,求这几个数的最大公约数,即公差。求最大公约数用欧几里得算法(辗转相除法) 项数n =
阅读全文
摘要:1. 题目: 下图给出了一个迷宫的平面图,其中标记为1 的为障碍,标记为0 的为可 以通行的地方。 010000 000100 001001 110000 迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这 个它的上、下、左、右四个方向之一。 对于上面的迷宫,从入口开始,可以按DRRU
阅读全文
摘要:#include <iostream> using namespace std; typedef long long ll; //题目最小最大值为10^5,int的范围是-2^9到2^9,所以不能用int int main() { int n; cin >> n; ll a[100010]; for
阅读全文
摘要:直接暴力枚举 #include <iostream> using namespace std; bool check(int i) { while (i) { if (i % 10 == 2 || i % 10 == 0 || i % 10 == 1 || i % 10 == 9) return t
阅读全文
摘要:答案:BYQ 只要发现这种一个个排序求值的,都可以考虑是十进制转R进制。(题目是十进制转26进制,除26取余) #include <iostream> using namespace std; int main() { //十进制转26进制 // cout << 26 * 26 * 2 + 26 *
阅读全文
摘要:答案:4659 #include <iostream> using namespace std; /* 如果直接使用递归则会超时,算不出。 (千万不要漏掉题目中给的任何一点信息) 提示:千位不为0,可以只算前四位,后面就不管它,所以可以考虑÷10000取余 */ int main() { int a
阅读全文
摘要:答案:40785 #include <iostream> using namespace std; bool check(int i) { int x; while (i) { x = i % 10; if (x == 2 || x == 4) return false; i /= 10; } re
阅读全文