diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/0.\345\276\256\347\224\237\347\211\251\345\242\236\346\256\226/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/0.\345\276\256\347\224\237\347\211\251\345\242\236\346\256\226/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..2689cc152fd9482eb034352e0309c251b3384080 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/0.\345\276\256\347\224\237\347\211\251\345\242\236\346\256\226/solution.md" @@ -0,0 +1,49 @@ +# 微生物增殖 + +假设有两种微生物 X 和 Y +X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。 +一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。 +现在已知有新出生的 X=10, Y=89,求60分钟后Y的数目。 +如果X=10,Y=90呢? +本题的要求就是写出这两种初始条件下,60分钟后Y的数目。 + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/1.\350\243\205\351\245\260\347\217\240/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/1.\350\243\205\351\245\260\347\217\240/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..0ea838db4463dc64e7e389776fbe9634ff41daa3 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/1.\350\243\205\351\245\260\347\217\240/solution.md" @@ -0,0 +1,88 @@ +# 装饰珠 + +#### 题目描述 +在怪物猎人这一款游戏中,玩家可以通过给装备镶嵌不同的装饰珠来获取 相应的技能,以提升自己的战斗能力。 + +已知猎人身上一共有 6 件装备,每件装备可能有若干个装饰孔,每个装饰孔有各自的等级,可以镶嵌一颗小于等于自身等级的装饰珠 (也可以选择不镶嵌)。 + +装饰珠有 M 种,编号 1 至 M,分别对应 M 种技能,第 i 种装饰珠的等级为 $L_i$,只能镶嵌在等级大于等于 $L_i$ 的装饰孔中。 +对第 i 种技能来说,当装备相应技能的装饰珠数量达到 $K_i$个时,会产生$W_i$($K_i$)的价值,镶嵌同类技能的数量越多,产生的价值越大,即$W_i$($K_{i-1}$)<$W_i$($K_i$)。但每个技能都有上限$P_i$(1≤$P_i$≤7),当装备的珠子数量超过$P_i$时,只会产生$W_i$($P_i$)的价值。 + +对于给定的装备和装饰珠数据,求解如何镶嵌装饰珠,使得 6 件装备能得到的总价值达到最大。 + +#### 输入描述 +输入的第 1 至 6 行,包含 6 件装备的描述。其中第i行的第一个整数Ni表示第i件装备的装饰孔数量。后面紧接着Ni个整数,分别表示该装备上每个装饰孔的等级L(1≤ L ≤4)。 +第 7 行包含一个正整数 M,表示装饰珠 (技能) 种类数量。 +第 8 至 M + 7 行,每行描述一种装饰珠 (技能) 的情况。每行的前两个整数$L_j$(1≤ $L_j$ ≤4)和$P_j$(1≤ $P_j$ ≤7)分别表示第 j 种装饰珠的等级和上限。接下来$P_j$个整数,其中第 k 个数表示装备该中装饰珠数量为 k 时的价值$W_j$(k)。 +其中$1 ≤ N_i ≤ 50,1 ≤ M ≤ 10^4,1 ≤ W_j(k) ≤ 10^4。$ + +#### 输出描述 +输出一行包含一个整数,表示能够得到的最大价值。 +#### 输入 +``` +1 1 +2 1 2 +1 1 +2 2 2 +1 1 +1 3 +3 +1 5 1 2 3 5 8 +2 4 2 4 8 15 +3 2 5 10 +``` +#### 输出 +``` +20 +``` +#### 样例说明 +按照如下方式镶嵌珠子得到最大价值 20,括号内表示镶嵌的装饰珠的种类编号: +``` +1: (1) +2: (1) (2) +3: (1) +4: (2) (2) +5: (1) +6: (2) +``` +4 颗技能 1 装饰珠,4 颗技能 2 装饰珠 $W_1(4) + W_2(4) = 5 + 15 = 20。W_1(4)+W_2(4)=5+15=20$。 + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/10.\347\211\271\345\210\253\346\225\260\347\232\204\345\222\214/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/10.\347\211\271\345\210\253\346\225\260\347\232\204\345\222\214/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..db3f43e812525c9581551abfa7caf2b4b3af8a38 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/10.\347\211\271\345\210\253\346\225\260\347\232\204\345\222\214/solution.md" @@ -0,0 +1,66 @@ +# 特别数的和 + +#### 题目描述 +小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。 + +请问,在 1 到 n 中,所有这样的数的和是多少? + +#### 输入格式 +共一行,包含一个整数 n。 + +#### 输出格式 +共一行,包含一个整数,表示满足条件的数的和。 + +#### 数据范围 +``` +1≤n≤10000 +``` +#### 输入样例: +``` +40 +``` +#### 输出样例: +``` +574 +``` + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/101.\350\215\222\345\262\233\346\216\242\346\265\213/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/101.\350\215\222\345\262\233\346\216\242\346\265\213/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..d507547c9cbeb3015bd0b3a4a52712c977c3b9a6 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/101.\350\215\222\345\262\233\346\216\242\346\265\213/solution.md" @@ -0,0 +1,82 @@ +# 荒岛探测 + +科学家小蓝来到了一个荒岛,准备对这个荒岛进行探测考察。 + +小蓝使用了一个超声定位设备来对自己进行定位。为了使用这个设备,小蓝需要在不同的点分别安装一个固定的发射器和一个固定的接收器。小蓝手中还有一个移动设备。定位设备需要从发射器发射一个信号到移动设备,移动设备收到后马上转发,最后由接收器接收,根据这些设备之间传递的时间差就能计算出移动设备距离发射器和接收器的两个距离,从而实现定位。 + +小蓝在两个位置已经安装了发射器和接收器,其中发射器安装在坐标($x_A$, $y_A$),接收器安装在坐标($x_B$, $y_B$)。小蓝的发射器和接收器可能在岛上,也可能不在岛上。 + +小蓝的定位设备设计有些缺陷,当发射器到移动设备的距离加上移动设备到接收器的距离之和大于L 时,定位设备工作不正常。当和小于等于L时,定位设备工作正常。为了安全,小蓝只在定位设备工作正常的区域探测考察。 + +已知荒岛是一个三角形,三个顶点的坐标分别为($x_1$, $y_1$),($x_2$, $y_2$),($x_3$, $y_3$) + +请计算,小蓝在荒岛上可以探测到的面积有多大? + +#### 输入格式 +输入的第一行包含五个整数,分别为 $x_A$,$y_A$,$x_B$,$y_B$,L +第二行包含六个整数,分别为 $x_1$,$y_1$,$x_2$,$y_2$,$x_3$,$y_3$ 。 + +#### 输出格式 +输出一行,包含一个实数,四舍五入保留2位小数,表示答案。 +考虑到计算中的误差,只要你的输出与参考输出相差不超过0.01即可。 +#### 样例输入 +``` +10 6 4 12 12 +0 2 13 2 13 15 +``` +#### 输出样例 +``` +39.99 +``` +#### 样例说明 +荒岛的形状和定位设备工作正常的区域如下图所示,蓝色的三角形表示荒岛,红色的曲线围成的区域为定位设备工作正常的区域。  +![](https://img-blog.csdnimg.cn/20210402235557403.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NKTF9hc0xvbmc3Mg==,size_16,color_FFFFFF,t_70#pic_center) + +当输出为 39.98、39.99 或 40.00 时可以得分。 + +#### 评测用例规模与约定 +对于所有评测用例,保证发射器的两个坐标不同,$ -1000 \leq x_A,y_A,x_B,y_B\leq 1000$,$ -1000 \leq x_1,y_1,x_2,y_2,x_3,y_3\leq 1000$, $ -1000 \leq L \leq 1000 $。 + + + + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/102.\346\242\205\346\243\256\347\264\240\346\225\260/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/102.\346\242\205\346\243\256\347\264\240\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..a7cfef2dd07c80f3e693e8a1aab450f612a3b96b --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/102.\346\242\205\346\243\256\347\264\240\346\225\260/solution.md" @@ -0,0 +1,64 @@ +# 梅森素数 + +如果一个数字的所有真因子之和等于自身,则称它为“完全数”或“完美数” + +例如:6 = 1 + 2 + 3 + +28 = 1 + 2 + 4 + 7 + 14 + +早在公元前300多年,欧几里得就给出了判定完全数的定理: + +若 2^n - 1 是素数,则 2^(n-1) * (2^n - 1) 是完全数。 + +其中 ^ 表示“乘方”运算,乘方的优先级比四则运算高,例如:2^3 = 8, 2 * 2^3 = 16, 2^3-1 = 7 + +但人们很快发现,当n很大时,判定一个大数是否为素数到今天也依然是个难题。 + +因为法国数学家梅森的猜想,我们习惯上把形如:2^n - 1 的素数称为:梅森素数。 + +截止2013年2月,一共只找到了48个梅森素数。 新近找到的梅森素数太大,以至于难于用一般的编程思路窥其全貌,所以我们把任务的难度降低一点: + +1963年,美国伊利诺伊大学为了纪念他们找到的第23个梅森素数 n=11213,在每个寄出的信封上都印上了“2^11213-1 是素数”的字样。 + +2^11213 - 1 这个数字已经很大(有3000多位),请你编程求出这个素数的十进制表示的最后100位。 + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/103.\344\271\260\344\270\215\345\210\260\347\232\204\346\225\260\347\233\256/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/103.\344\271\260\344\270\215\345\210\260\347\232\204\346\225\260\347\233\256/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..85b34946a52460ee8b78499cd90ac6ff8fed953b --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/103.\344\271\260\344\270\215\345\210\260\347\232\204\346\225\260\347\233\256/solution.md" @@ -0,0 +1,76 @@ +# 买不到的数目 + +#### 问题描述 + +小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。 + +小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。 + +你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。 + +本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。 + +#### 输入格式 + +两个正整数,表示每种包装中糖的颗数(都不多于1000) + +#### 输出格式 + +一个正整数,表示最大不能买到的糖数 + +#### 样例输入1 +``` +4 7 +``` +#### 样例输出1 +``` +17 +``` +#### 样例输入2 +``` +3 5 +``` +#### 样例输出2 +``` +7 +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/105.\347\273\204\351\230\237/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/105.\347\273\204\351\230\237/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..cd7f95c4c039fc5d78acb9b61f2f18055c798131 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/105.\347\273\204\351\230\237/solution.md" @@ -0,0 +1,45 @@ +# 组队 + +作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员, 组成球队的首发阵容。 每位球员担任 1 号位至 5 号位时的评分如下表所示。请你计算首发阵容 1 号位至 5 号位的评分之和最大可能是多少? + +![](https://img-blog.csdnimg.cn/20200328201519748.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkxMDMyMA==,size_16,color_FFFFFF,t_70#pic_center) + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/107.\346\227\242\347\272\246\345\210\206\346\225\260/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/107.\346\227\242\347\272\246\345\210\206\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..6924838e5f561aa07f41cc5ba0ceb2b84ffcfb0c --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/107.\346\227\242\347\272\246\345\210\206\346\225\260/solution.md" @@ -0,0 +1,45 @@ +# 既约分数 + +如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数。 +例如,3/4 , 2/5, 1/8 , 1/7 都是既约分数。 +请问,有多少个既约分数,分子和分母都是 1 到 2020 之间的整数(包括 1 和 2020)? + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/108.\351\253\230\346\226\257\346\227\245\350\256\260/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/108.\351\253\230\346\226\257\346\227\245\350\256\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..4dfec742cbc21e2e97cb5d32fa3b571f1a4127f3 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/108.\351\253\230\346\226\257\346\227\245\350\256\260/solution.md" @@ -0,0 +1,61 @@ +# 高斯日记 + +大数学家高斯有个好习惯:无论如何都要记日记。 + +他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 + + +后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢? + + +高斯出生于:1777年4月30日。 + +在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。 + + +高斯获得博士学位的那天日记上标着:8113 + + +请你算出高斯获得博士学位的年月日。 +#### 输出格式 +提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21 + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/109.\345\220\216\347\274\200\350\241\250\350\276\276\345\274\217/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/109.\345\220\216\347\274\200\350\241\250\350\276\276\345\274\217/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..987a095e3c97583a798e1bf70ec8708546c1c0f6 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/109.\345\220\216\347\274\200\350\241\250\350\276\276\345\274\217/solution.md" @@ -0,0 +1,70 @@ +# 后缀表达式 + +#### 问题描述 + +给定 N 个加号、M 个减号以及 N + M + 1 个整数 A1,A2,··· ,AN+M+1,小明想知道在所有由这 N 个加号、M 个减号以及 N + M +1 个整数凑出的合法的 后缀表达式中,结果最大的是哪一个? + +请你输出这个最大的结果。 例如使用1 2 3 + -,则 “2 3 + 1 -” 这个后缀表达式结果是 4,是最大的。 + +#### 输入格式 + +第一行包含两个整数 N 和 M。 第二行包含 N + M + 1 个整数 A1,A2,··· ,AN+M+1。 + +#### 输出格式 + +输出一个整数,代表答案。 + +#### 样例输入 +``` +1 1 + +1 2 3 +``` +#### 样例输出 +``` +4 +``` +#### 评测用例规模与约定 + +对于所有评测用例,0≤ N,M ≤100000,−10^9 ≤ Ai ≤10^9。 + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/11.\351\200\206\346\263\242\345\205\260\350\241\250\350\276\276\345\274\217/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/11.\351\200\206\346\263\242\345\205\260\350\241\250\350\276\276\345\274\217/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..0713c2d4e94e0a5ebe744bbd483bd3300b6120f7 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/11.\351\200\206\346\263\242\345\205\260\350\241\250\350\276\276\345\274\217/solution.md" @@ -0,0 +1,57 @@ +# 逆波兰表达式 + +正常的表达式称为中缀表达式,运算符在中间,主要是给人阅读的,机器求解并不方便。 +例如:3 + 5 * (2 + 6) - 1 +而且,常常需要用括号来改变运算次序。 +相反,如果使用逆波兰表达式(前缀表达式)表示,上面的算式则表示为: +``` +- + 3 * 5 + 2 6 1 +``` +不再需要括号,机器可以用递归的方法很方便地求解。 +为了简便,我们假设: +1. 只有 $ + - * $ 三种运算符 +2. 每个运算数都是一个小于10的非负整数 + +下面的程序对一个逆波兰表示串进行求值。 +其返回值为一个数组:其中第一元素表示求值结果,第二个元素表示它已解析的字符数。 + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/110.\345\244\215\346\225\260\345\271\202/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/110.\345\244\215\346\225\260\345\271\202/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..5d0cc3437162abe76f53dfd3628128014b013f69 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/110.\345\244\215\346\225\260\345\271\202/solution.md" @@ -0,0 +1,49 @@ +# 复数幂 + +设i为虚数单位。对于任意正整数n,(2+3i)^n 的实部和虚部都是整数。 +求 (2+3i)^123456 等于多少? 即(2+3i)的123456次幂,这个数字很大,要求精确表示。 + +答案写成 "实部±虚部i" 的形式,实部和虚部都是整数(不能用科学计数法表示),中间任何地方都不加空格,实部为正时前面不加正号。 +(2+3i)^2 写成: -5+12i, +(2+3i)^5 写成: 122-597i + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/111.\344\270\211\347\276\212\347\214\256\347\221\236/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/111.\344\270\211\347\276\212\347\214\256\347\221\236/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..44ffae35493e853e360345438db90e5f5a7f32bc --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/111.\344\270\211\347\276\212\347\214\256\347\221\236/solution.md" @@ -0,0 +1,48 @@ +# 三羊献瑞 + +观察下面的加法算式: + +![](https://img-blog.csdnimg.cn/20200323231451860.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkxMDMyMA==,size_16,color_FFFFFF,t_70#pic_center) + +其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。 +请你填写“三羊献瑞”所代表的4位数字(答案唯一) + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/113.\345\211\252\351\202\256\347\245\250/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/113.\345\211\252\351\202\256\347\245\250/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..4888125abf7406b3c8e2167bd7e31ef74bfa4d24 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/113.\345\211\252\351\202\256\347\245\250/solution.md" @@ -0,0 +1,51 @@ +# 剪邮票 + +如图 +![](https://img-blog.csdnimg.cn/20190313183756434.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1N5bHZpYV9XdTUx,size_16,color_FFFFFF,t_70) +有12张连在一起的12生肖的邮票。 +现在你要从中剪下5张来,要求必须是连着的。 +(仅仅连接一个角不算相连)比如 +![](https://img-blog.csdnimg.cn/20190313183806622.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1N5bHZpYV9XdTUx,size_16,color_FFFFFF,t_70), +![](https://img-blog.csdnimg.cn/2019031318382071.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1N5bHZpYV9XdTUx,size_16,color_FFFFFF,t_70)中,粉红色所示部分就是合格的剪取。 + +请你计算,一共有多少种不同的剪取方法。 + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/115.\346\211\213\351\223\276\346\240\267\345\274\217/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/115.\346\211\213\351\223\276\346\240\267\345\274\217/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..9ea65b03aeccfb281d1e81874a458ccc67046ed5 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/115.\346\211\213\351\223\276\346\240\267\345\274\217/solution.md" @@ -0,0 +1,45 @@ +# 手链样式 + +小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙。 +他想用它们串成一圈作为手链,送给女朋友。 +现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢? + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/116.\345\255\220\344\270\262\345\210\206\345\200\274/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/116.\345\255\220\344\270\262\345\210\206\345\200\274/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..e66ceb838a8180ba9872e78912a96f7f86ae064d --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/116.\345\255\220\344\270\262\345\210\206\345\200\274/solution.md" @@ -0,0 +1,90 @@ +# 子串分值 + +#### 题目描述 +对于一个字符串 S,我们定义 S 的分值 f(S)为 S 中出现的不同的字符个数。 + +例如f(“aba”)=2,f(“abc”)=3,f(“aaa”)=1。 + +现在给定一个字符串 S[0…n−1](长度为 n),请你计算对于所有S的非空子串S[i…j] (0≤i≤j0.846153846153….. 其循环节为[846153] 共有6位。 +下面的方法,可以求出循环节的长度。 + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/160.\345\257\222\345\201\207\344\275\234\344\270\232/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/160.\345\257\222\345\201\207\344\275\234\344\270\232/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..02bbaafed82ab8f5c3d9e8bf1d1d144bbc47d057 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/160.\345\257\222\345\201\207\344\275\234\344\270\232/solution.md" @@ -0,0 +1,68 @@ +# 寒假作业 + +现在小学的数学题目也不是那么好玩的。 +看看这个寒假作业: +``` +□ + □ = □ +□ - □ = □ +□ × □ = □ +□ ÷ □ = □ +``` +每个方块代表1~13中的某一个数字,但不能重复。比如: +``` +6 + 7 = 13 +9 - 8 = 1 +3 * 4 = 12 +10 / 2 = 5 +``` +以及: +``` +7 + 6 = 13 +9 - 8 = 1 +3 * 4 = 12 +10 / 2 = 5 +``` +就算两种解法。(加法,乘法交换律后算不同的方案) + +你一共找到了多少种方案? + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/161.\351\255\224\346\226\271\346\250\241\346\213\237/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/161.\351\255\224\346\226\271\346\250\241\346\213\237/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..ebbd1b5027c4dc45662173d36ac3699cec2f8738 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/161.\351\255\224\346\226\271\346\250\241\346\213\237/solution.md" @@ -0,0 +1,95 @@ +# 魔方模拟 + +魔方可以对它的6个面自由旋转。 +我们来操作一个2阶魔方(如图所示): + +为了描述方便,我们为它建立了坐标系。 + +各个面的初始状态如下: +``` +x轴正向:绿 +x轴反向:蓝 +y轴正向:红 +y轴反向:橙 +z轴正向:白 +z轴反向:黄 +``` +假设我们规定,只能对该魔方进行3种操作。分别标记为: +``` +x 表示在x轴正向做顺时针旋转 +y 表示在y轴正向做顺时针旋转 +z 表示在z轴正向做顺时针旋转 +``` +xyz 则表示顺序执行x,y,z 3个操作 +![](https://img-blog.csdn.net/20170113214548029) + +![](https://img-blog.csdn.net/20170113214552070) + +![](https://img-blog.csdn.net/20170113214558404) + +![](https://img-blog.csdn.net/20170113214602149) + +题目的要求是: +从标准输入获得一个串,表示操作序列。 +程序输出:距离我们最近的那个小方块的3个面的颜色。 +顺序是:x面,y面,z面。 + +例如:在初始状态,应该输出: +绿红白 + +初始状态下,如果用户输入: +``` +x +``` +则应该输出: +``` +绿白橙 +``` +初始状态下,如果用户输入: +``` +zyx +``` +则应该输出: +``` +红白绿 +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/164.\347\275\221\345\217\213\345\271\264\351\276\204/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/164.\347\275\221\345\217\213\345\271\264\351\276\204/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..cb6785050664bba2631c72d3f192de81a67710df --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/164.\347\275\221\345\217\213\345\271\264\351\276\204/solution.md" @@ -0,0 +1,45 @@ +# 网友年龄 + +某君新认识一网友。 当问及年龄时,他的网友说: “我的年龄是个2位数,我比儿子大27岁, 如果把我的年龄的两位数字交换位置,刚好就是我儿子的年龄” +请你计算:网友的年龄一共有多少种可能情况? +提示:30岁就是其中一种可能哦. + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/165.\345\223\252\345\244\251\350\277\224\345\233\236/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/165.\345\223\252\345\244\251\350\277\224\345\233\236/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..fc56e6b7d30a0358d42c04c773372c8accc5af79 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/165.\345\223\252\345\244\251\350\277\224\345\233\236/solution.md" @@ -0,0 +1,48 @@ +# 哪天返回 + +小明被不明势力劫持,后莫名其妙被扔到x星站再无问津。 +小明得知每天都有飞船飞往地球,但需要 108 元的船票,而他却身无分文,他决定在 x 星战打工。 +好心的老板答应包食宿,第 1 天给他 1 元钱,并且,以后的每一天都比前一天多2元钱,直到他有足够的钱买票。 +请计算一下,小明在第几天就能凑够 108 元,返回地球。 + + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/166.\345\245\207\346\200\252\347\232\204\345\210\206\345\274\217/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/166.\345\245\207\346\200\252\347\232\204\345\210\206\345\274\217/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..669bd43d59e9abbb0a5be6c971118bf742f3eeda --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/166.\345\245\207\346\200\252\347\232\204\345\210\206\345\274\217/solution.md" @@ -0,0 +1,55 @@ +# 奇怪的分式 + +上小学的时候,小明经常自己发明新算法。一次,老师出的题目是: +1/4 乘以 8/5 +小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 + +![](https://images2015.cnblogs.com/blog/1139769/201704/1139769-20170406155423800-1872161918.png) + + +老师刚想批评他,转念一想,这个答案凑巧也对啊,真是见鬼! +对于分子、分母都是 1~9 中的一位数的情况,还有哪些算式可以这样计算呢? +请写出所有不同算式的个数(包括题中举例的)。 +显然,交换分子分母后,例如:4/1 乘以 5/8 是满足要求的,这算做不同的算式。 +但对于分子分母相同的情况,2/2 乘以 3/3 这样的类型太多了,不在计数之列! + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/167.\345\277\253\351\200\237\346\216\222\345\272\217/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/167.\345\277\253\351\200\237\346\216\222\345\272\217/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..29f1f93649943c9a9b04ba64cca9563b15d29f00 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/167.\345\277\253\351\200\237\346\216\222\345\272\217/solution.md" @@ -0,0 +1,57 @@ +# 快速排序 + +#### 问题描述 +用递归来实现快速排序(quick sort)算法。快速排序算法的基本思路是:假设要对一个数组a进行排序,且a[0] = x。首先对数组中的元素进行调整,使x放在正确的位置上。同时,所有比x小的数都位于它的左边,所有比x大的数都位于它的右边。然后对于左、右两段区域,递归地调用快速排序算法来进行排序。 +#### 输入格式: +输入只有一行,包括若干个整数(不超过10个),以0结尾。 +#### 输出格式: +输出只有一行,即排序以后的结果(不包括末尾的0)。 +### 输入输出样例 +#### 样例输入 +``` +5 2 6 1 7 3 4 0 +``` +#### 样例输出 +``` +1 2 3 4 5 6 7 +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/168.\347\247\273\345\212\250\350\267\235\347\246\273/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/168.\347\247\273\345\212\250\350\267\235\347\246\273/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..cbf2caf631577c5754351335917cc2ec39a8f94b --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/168.\347\247\273\345\212\250\350\267\235\347\246\273/solution.md" @@ -0,0 +1,74 @@ +# 移动距离 + +X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为1,2,3... +当排满一行时,从下一行相邻的楼往反方向排号。 +比如:当小区排号宽度为6时,开始情形如下: +``` +1 2 3 4 5 6 +12 11 10 9 8 7 +13 14 15 ..... +``` +我们的问题是:已知了两个楼号m和n,需要求出它们之间的最短移动距离(不能斜线方向移动) + +输入为3个整数w m n,空格分开,都在1到10000范围内 +w为排号宽度,m,n为待计算的楼号。 +要求输出一个整数,表示m n 两楼间最短移动距离。 + +例如: +#### 用户输入: +``` +6 8 2 +``` +则,程序应该输出: +``` +4 +``` +再例如: +#### 用户输入: +``` +4 7 20 +``` +则,程序应该输出: +``` +5 +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/169.\345\245\207\346\200\252\347\232\204\346\257\224\350\265\233/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/169.\345\245\207\346\200\252\347\232\204\346\257\224\350\265\233/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..387a0484ad44ca930fdd1156af078a9ccbfef586 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/169.\345\245\207\346\200\252\347\232\204\346\257\224\350\265\233/solution.md" @@ -0,0 +1,50 @@ +# 奇怪的比赛 + +某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪: +每位选手需要回答10个问题(其编号为1到10),越后面越有难度。答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。 +每位选手都有一个起步的分数为10分。 +某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗? +如果把答对的记为1,答错的记为0,则10个题目的回答情况可以用仅含有1和0的串来表示。例如:0010110011 就是可能的情况。 + +你的任务是算出所有可能情况。每个答案占一行。 + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/17.\346\227\245\345\277\227\347\273\237\350\256\241/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/17.\346\227\245\345\277\227\347\273\237\350\256\241/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..0b7895c1b9be17fda1cac4ab5db638145b63c5e5 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/17.\346\227\245\345\277\227\347\273\237\350\256\241/solution.md" @@ -0,0 +1,89 @@ +# 日志统计 + +#### 题目描述 +小明维护着一个程序员论坛。现在他收集了一份”点赞”日志,日志共有 N 行。 + +其中每一行的格式是: +ts id +表示在 ts 时刻编号 id 的帖子收到一个”赞”。 + +现在小明想统计有哪些帖子曾经是”热帖”。 + +如果一个帖子曾在任意一个长度为 D 的时间段内收到不少于 K 个赞,小明就认为这个帖子曾是”热帖”。 + +具体来说,如果存在某个时刻 T 满足该帖在 [T,T+D) 这段时间内(注意是左闭右开区间)收到不少于 K 个赞,该帖就曾是”热帖”。 + +给定日志,请你帮助小明统计出所有曾是”热帖”的帖子编号。 + +#### 输入格式 +第一行包含三个整数 N,D,K。 + +以下 N 行每行一条日志,包含两个整数 ts 和 id。 + +#### 输出格式 +按从小到大的顺序输出热帖 id。 + +每个 id 占一行。 + +#### 数据范围 +``` +1≤K≤N≤10E5, +0≤ts,id≤10E5, +1≤D≤10000 +``` +#### 输入样例: +``` +7 10 2 +0 1 +0 10 +10 10 +10 1 +9 1 +100 3 +100 3 +``` +#### 输出样例: +``` +1 +3 +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/170.\345\271\270\350\277\220\346\225\260/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/170.\345\271\270\350\277\220\346\225\260/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..6e35f48c727f9566ec73cc7573c964b9b17d9997 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/170.\345\271\270\350\277\220\346\225\260/solution.md" @@ -0,0 +1,77 @@ +# 幸运数 + +#### 问题描述 +幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的“筛法”生成。 +首先从1开始写出自然数1,2,3,4,5,6,… +1 就是第一个幸运数。 +我们从2这个数开始。把所有序号能被2整除的项删除,变为: +1 _ 3 _ 5 _ 7 _ 9 … +把它们缩紧,重新记序,为: +1 3 5 7 9 … 。 +这时,3为第2个幸运数,然后把所有能被3整除的序号位置的数删去。注意,是序号位置,不是那个数本身能否被3整除!! 删除的应该是5,11, 17, … +此时7为第3个幸运数,然后再删去序号位置能被7整除的(19,39,…) +最后剩下的序列类似: +``` +1, 3, 7, 9, 13, 15, 21, 25, 31, 33, 37, 43, 49, 51, 63, 67, 69, 73, 75, 79, … +``` +#### 输入格式 +输入两个正整数m n, 用空格分开 (m < n < 1000*1000) + +#### 输出格式 +程序输出 位于m和n之间的幸运数的个数(不包含m和n)。 +#### 样例输入1 +``` +1 20 +``` +#### 样例输出1 +``` +5 +``` +#### 样例输入2 +``` +30 69 +``` +#### 样例输出2 +``` +8 +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/171.\345\212\240\346\263\225\345\217\230\344\271\230\346\263\225/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/171.\345\212\240\346\263\225\345\217\230\344\271\230\346\263\225/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..ae050da651ed4300a163e152ac4bcb5d0f7d93a0 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/171.\345\212\240\346\263\225\345\217\230\344\271\230\346\263\225/solution.md" @@ -0,0 +1,53 @@ +# 加法变乘法 + +#### 题目描述: +我们都知道:1+2+3+ … + 49 = 1225 + +现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015 + +比如: + +1+2+3+…+1011+12+…+2728+29+…+49 = 2015 就是符合要求的答案。 + +请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。 + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/172.\344\277\256\346\224\271\346\225\260\347\273\204/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/172.\344\277\256\346\224\271\346\225\260\347\273\204/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..37073156ed8d1c45b4b8be5332a688fdf4963f9a --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/172.\344\277\256\346\224\271\346\225\260\347\273\204/solution.md" @@ -0,0 +1,67 @@ +# 修改数组 + +#### 问题描述 +给定一个长度为 N 的数组$ A = [A_1; A_2; · · · A_N]$,数组中有可能有重复出现的整数。 +现在小明要按以下方法将其修改为没有重复整数的数组。小明会依次修改$A_2, A_3, · · · , A_N$。 +当修改 $A_i$时,小明会检查 $A_i$ 是否在$ A_1 ∼ A_{i−1} $中出现过。如果出现过,则小明会给$ A_i $加上 1 ;如果新的$ A_i $仍在之前出现过,小明会持续给$ A_i $加 1 ,直到$ A_i $没有在$ A_1 ∼ A_{i−1}$ 中出现过。 +当$ A_N $也经过上述修改之后,显然 A 数组中就没有重复的整数了。 +现在给定初始的 A 数组,请你计算出最终的 A 数组。 + +#### 输入格式 +第一行包含一个整数 N。 +第二行包含 N 个整数$ A_1; A_2; · · · ; A_N $。 + +#### 输出格式 +输出 N 个整数,依次是最终的$ A_1; A_2; · · · ; A_N $。 + +#### 样例输入 +``` +5 +2 1 1 3 4 +``` +#### 样例输出 +``` +2 1 3 4 5 +``` + + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/173.\345\211\215\347\274\200\345\210\244\346\226\255/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/173.\345\211\215\347\274\200\345\210\244\346\226\255/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..1ab2e0e025e8c99abf85d4849fa6048ba8c11a01 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/173.\345\211\215\347\274\200\345\210\244\346\226\255/solution.md" @@ -0,0 +1,44 @@ +# 前缀判断 + +如下的代码判断 needle_start指向的串是否为haystack_start指向的串的前缀,如不是,则返回NULL。 +比如:"abcd1234" 就包含了 "abc" 为前缀 + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/174.\347\272\252\345\277\265\346\227\245/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/174.\347\272\252\345\277\265\346\227\245/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..efc7c73cb3932d3988946acfd973128ebbd31dd9 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/174.\347\272\252\345\277\265\346\227\245/solution.md" @@ -0,0 +1,43 @@ +# 纪念日 + +请问从 1921 年 7 月 23 日中午 12 时到 2020 年 7 月 1 日中午 12 时一共包含多少分钟? + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/176.\346\262\271\346\274\206\351\235\242\347\247\257/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/176.\346\262\271\346\274\206\351\235\242\347\247\257/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..a8ba81462645993cfa17983417e2599ccabab63e --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/176.\346\262\271\346\274\206\351\235\242\347\247\257/solution.md" @@ -0,0 +1,83 @@ +# 油漆面积 + +#### 问题描述 +X星球的一批考古机器人正在一片废墟上考古。 +该区域的地面坚硬如石、平整如镜。 +管理人员为方便,建立了标准的直角坐标系。 +每个机器人都各有特长、身怀绝技。它们感兴趣的内容也不相同。 +经过各种测量,每个机器人都会报告一个或多个矩形区域,作为优先考古的区域。 +矩形的表示格式为(x1,y1,x2,y2),代表矩形的两个对角点坐标。 +为了醒目,总部要求对所有机器人选中的矩形区域涂黄色油漆。 +小明并不需要当油漆工,只是他需要计算一下,一共要耗费多少油漆。 +其实这也不难,只要算出所有矩形覆盖的区域一共有多大面积就可以了。 +注意,各个矩形间可能重叠。 +本题的输入为若干矩形,要求输出其覆盖的总面积。 +   +#### 输入格式 +第一行,一个整数n,表示有多少个矩形(1<=n<10000) +接下来的n行,每行有4个整数x1 y1 x2 y2,空格分开,表示矩形的两个对角顶点坐标。 +(0<= x1,y1,x2,y2 <=10000) +#### 输出格式 +一行一个整数,表示矩形覆盖的总面积面积。 +#### 样例输入 +``` +3 +1 5 10 10 +3 1 20 20 +2 7 15 17 +``` +#### 样例输出 +``` +340 +``` +#### 样例输入 +``` +3 +5 2 10 6 +2 7 12 10 +8 1 15 15 +``` +#### 样例输出 +``` +128 +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/177.\345\257\206\347\240\201\345\217\221\347\224\237\345\231\250/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/177.\345\257\206\347\240\201\345\217\221\347\224\237\345\231\250/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..2804b89d5db27904312f8c22b31d070eb43bc91b --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/177.\345\257\206\347\240\201\345\217\221\347\224\237\345\231\250/solution.md" @@ -0,0 +1,83 @@ +# 密码发生器 + +在对银行账户等重要权限设置密码的时候,我们常常遇到这样的烦恼:如果为了好记用生日吧,容易被破解不安全;如果设置不好记的密码,又担心自己也会忘记;如果写在纸上,担心纸张被别人发现或弄丢了... + +这个程序的任务就是把一串拼音字母转换为6位数字(密码)。我们可以使用任何好记的拼音串(比如名字,喜明,就写:wangximing)作为输入,程序输出6位数字。 + +变换的过程如下: + +第一步. 把字符串6个一组折叠起来,比如wangximing则变为: +wangxi +ming + +第二步. 把所有垂直在同一个位置的字符的ascii码值相加,得出6个数字,如上面的例子,则得出: +228 202 220 206 120 105 + +第三步. 再把每个数字“缩位”处理:就是把每个位的数字相加,得出的数字如果不是一位数字,就再缩位,到变成一位数字为止。例如: 228 => 2+2+8=12 => 1+2=3 + +上面的数字缩位后变为:344836, 这就是程序最终的输出结果! + +要求程序从标准输入接收数据,在标准输出上输出结果。 + +#### 输入格式为: +第一行是一个整数n(<100),表示下边有多少输入行,接下来是n行字符串,就是等待变换的符串。 +#### 输出格式为: +n行变换后的6位密码。 + +#### 输入: +``` +5 +zhangfeng +wangximing +jiujingfazi +woaibeijingtiananmen +haohaoxuexi +``` +#### 输出: +``` +772243 +344836 +297332 +716652 +875843 +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/178.RSA \350\247\243\345\257\206/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/178.RSA \350\247\243\345\257\206/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..70c080a28497ac72bca90dfe34f6fa26dccef467 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/178.RSA \350\247\243\345\257\206/solution.md" @@ -0,0 +1,53 @@ +# RSA 解密 + +RSA是一种经典的加密算法。它的基本加密过程如下。 + +首先生成两个质数p,q, 令$n = p \cdot q$,设d与$(p-1) \cdot (q-1)$互质,则可以找到e,使得$d \cdot e$除以$(p-1) \cdot (q-1)$的余数为1 +n,d,e组成了私钥,n,d构成了公钥。 +当使用公钥加密一个整数X时(X<=n-1),计算$C = X^d$ mod n,则C是加密后的密文。 +当收到密文C时,可以使用私钥解开,计算公式为:$X = C^e$ mod n。 +例如:当p = 5, q = 11, n = 55, e = 27。 +若加密数字24,得$24^3$ % 55 = 19。 +解密数字19,得$19^{27}$ % 55 = 24。 +现在你知道公钥中n = 1001733993063167141,d = 212353,同时,你截获了别人发送的密文C = 20190324,请问,原文是多少? + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/179.\346\225\264\351\231\244\345\272\217\345\210\227/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/179.\346\225\264\351\231\244\345\272\217\345\210\227/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..6f79e8d534e7d1bdf38e0fe5d90fe566ff3fbe90 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/179.\346\225\264\351\231\244\345\272\217\345\210\227/solution.md" @@ -0,0 +1,60 @@ +# 整除序列 + +有一个序列,序列的第一个数是n,后面的每个数是前一个数整除2,请输出这个序列中值为正数的项。 +#### 输入格式 +输入一行包含一个整数n。 +#### 输出格式 +输出一行,包含多个整数,相邻的整数之间用一个空格分隔,表示答案。 +#### 样例输入 +``` +20 +``` +#### 样例输出 +``` +20 10 5 2 1 +``` +#### 评测用例规模与约定 +``` +对于80% 的评测用例,1 < n <= 10^9。 +对于所有评测用例,1 < n <=10^18。 +``` + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/18.\350\267\263\350\232\261\350\234\242/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/18.\350\267\263\350\232\261\350\234\242/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..25778b20fe578f28ded1f687880c1803e03ad2d1 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/18.\350\267\263\350\232\261\350\234\242/solution.md" @@ -0,0 +1,53 @@ +# 跳蚱蜢 + +有 9 只盘子,排成 1 个圆圈。 + +其中 8 只盘子内装着 8 只蚱蜢,有一个是空盘,我们把这些蚱蜢顺时针编号为 1 ~ 8 + +每只蚱蜢都可以跳到相邻的空盘中,也可以再用点力,越过一个相邻的蚱蜢跳到空盘中。 + +请你计算一下,如果要使得蚱蜢们的队形改为按照逆时针排列, + +并且保持空盘的位置不变(也就是 1-8 换位,2-7 换位,…),至少要经过多少次跳跃? + +![](https://img-blog.csdnimg.cn/20200530104930106.png) + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/180.\346\255\246\345\212\237\347\247\230\347\261\215/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/180.\346\255\246\345\212\237\347\247\230\347\261\215/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..fdaeffed8b33de28f388de8029912594b3b28035 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/180.\346\255\246\345\212\237\347\247\230\347\261\215/solution.md" @@ -0,0 +1,44 @@ +# 武功秘籍 + +小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的)。他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上。 +小明只想练习该书的第81页到第92页的武功,又不想带着整本书。请问他至少要撕下多少张纸带走? + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/181.\344\273\230\350\264\246\351\227\256\351\242\230/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/181.\344\273\230\350\264\246\351\227\256\351\242\230/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..c6bf641e5da9d318fe3223e56805635223d8dc7b --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/181.\344\273\230\350\264\246\351\227\256\351\242\230/solution.md" @@ -0,0 +1,97 @@ +# 付账问题 + +#### 题目描述 +几个人一起出去吃饭是常有的事。但在结帐的时候,常常会出现一些争执。 + +现在有 n 个人出去吃饭,他们总共消费了 S 元。其中第 i 个人带了 ai 元。幸运的是,所有人带的钱的总数是足够付账的,但现在问题来了:每个人分别要出多少钱呢? + +为了公平起见,我们希望在总付钱量恰好为 S 的前提下,最后每个人付的钱的标准差最小。这里我们约定,每个人支付的钱数可以是任意非负实数,即可以不是1分钱的整数倍。你需要输出最小的标准差是多少。 + +标准差的介绍:标准差是多个数与它们平均数差值的平方平均数,一般用于刻画这些数之间的“偏差有多大”。形式化地说,设第 i 个人付的钱为 bi 元,那么标准差为 : + ![参见p1.png](https://img-blog.csdnimg.cn/20201015164915888.png#pic_center) + + +#### 输入格式 +从标准输入读入数据。 + +第一行包含两个整数 n、S; +第二行包含 n 个非负整数 a1, …, an。 + +#### 输出格式 +输出到标准输出。 + +输出最小的标准差,四舍五入保留 4 位小数。 +保证正确答案在加上或减去 10^−9 后不会导致四舍五入的结果发生变化。 + +#### 样例1输入 +``` +5 2333 +666 666 666 666 666 +``` +#### 样例输出 +``` +0.0000 +``` +#### 样例解释 +每个人都出 2333/5 元,标准差为 0。 + +#### 样例输入 +``` +10 30 +2 1 4 7 4 8 3 6 4 7 +``` +#### 样例输出 +``` +0.7928 +``` +#### 数据说明 +对于 10% 的数据,所有 ai 相等; +对于 30% 的数据,所有非 0 的 ai 相等; +对于 60% 的数据,n ≤ 1000; +对于 80% 的数据,n ≤ 10^5; +对于所有数据,n ≤ 5 × 10^5, 0 ≤ ai ≤ 10^9。 + +#### 资源约定: +峰值内存消耗(含虚拟机) < 256M +CPU消耗 < 1000ms + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/182.\345\217\244\345\240\241\347\256\227\345\274\217/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/182.\345\217\244\345\240\241\347\256\227\345\274\217/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..5e7e35e37b9def675153e4658f1c6b3a5f1d5a3f --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/182.\345\217\244\345\240\241\347\256\227\345\274\217/solution.md" @@ -0,0 +1,50 @@ +# 古堡算式 + +福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: +ABCDE * ? = EDCBA +他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!” +华生:“我猜也是!” +于是,两人沉默了好久,还是没有算出合适的结果来。 +请你利用计算机的优势,找到破解的答案。 +把 ABCDE 所代表的数字写出来。 + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/183.\345\245\226\345\210\270\346\225\260\347\233\256/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/183.\345\245\226\345\210\270\346\225\260\347\233\256/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..786e1bbf3667e1056ef155ec44f4502708b1df3f --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/183.\345\245\226\345\210\270\346\225\260\347\233\256/solution.md" @@ -0,0 +1,45 @@ +# 奖券数目 + +有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。 +虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。某抽奖活动的奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。 + + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/184.\345\245\207\345\246\231\347\232\204\346\225\260\345\255\227/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/184.\345\245\207\345\246\231\347\232\204\346\225\260\345\255\227/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..d36079b5326a4605733a52df2309642434ddbd21 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/184.\345\245\207\345\246\231\347\232\204\346\225\260\345\255\227/solution.md" @@ -0,0 +1,44 @@ +# 奇妙的数字 + +小明发现了一个奇妙的数字。它的平方和立方正好把0~9的10个数字每个用且只用了一次。 +你能猜出这个数字是多少吗? + +## aop + +### before + +```cpp + +``` + +### after + +```cpp + +``` + +## 答案 + +```cpp + +``` + +## 选项 + +### A + +```cpp + +``` + +### B + +```cpp + +``` + +### C + +```cpp + +``` diff --git "a/data_backup/3.\350\223\235\346\241\245\346\235\257/185.\345\217\226\347\220\203\345\215\232\345\274\210/solution.md" "b/data_backup/3.\350\223\235\346\241\245\346\235\257/185.\345\217\226\347\220\203\345\215\232\345\274\210/solution.md" new file mode 100644 index 0000000000000000000000000000000000000000..d6f9979109421afd950ccba6af7149336e262713 --- /dev/null +++ "b/data_backup/3.\350\223\235\346\241\245\346\235\257/185.\345\217\226\347\220\203\345\215\232\345\274\210/solution.md" @@ -0,0 +1,86 @@ +# 取球博弈 + +#### 问题描述 +两个人玩取球的游戏。 +一共有N个球,每人轮流取球,每次可取集合{n1,n2,n3}中的任何一个数目。 +如果无法继续取球,则游戏结束。此时,持有奇数个球的一方获胜。如果两人都是奇数,则为平局。 +假设双方都采用最聪明的取法,第一个取球的人一定能赢吗? +试编程解决这个问题。 + +#### 输入 +第一行3个正整数n1 n2 n3,空格分开,表示每次可取的数目 (0