From d92be769b7725c869e4c59b9d8fa4afaebe55aed Mon Sep 17 00:00:00 2001 From: ken <1598584570@qq.com> Date: Sun, 19 Oct 2025 20:25:09 +0800 Subject: [PATCH 1/2] =?UTF-8?q?Add=20problem:=20K=E8=BF=9B=E5=88=B6?= =?UTF-8?q?=E5=90=8E=E7=BD=AE=E9=9B=B6=E4=B8=AA=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- exercise1.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 exercise1.md diff --git a/exercise1.md b/exercise1.md new file mode 100644 index 0000000..e9efb2d --- /dev/null +++ b/exercise1.md @@ -0,0 +1,21 @@ +# 题目:K进制后置零个数 + +花生可很讨厌数学,尤其是各种奇奇怪怪的定义。 +导师让花生可去找一串实验数据的中位数,花生可大声叫“就你是中位数,实验数据有问题就删你”, +结果不小心被导师听到了,导师默默说出“就你不喜欢中位数是吧,实验数据有问题就练你”。 + +计算机拿二进制存数据,但是有的时候会有很多后置零,如2^31就有31个0。 +导师想把后置零单独存储以缩减内存,同时为了未来三进制、四进制电脑的兼容性,导师要求你在 **K进制下求 n 的后置零个数**。 + +## 输入描述 +一行两个整数 `n k`,表示计算 n 的 K 进制表示末尾零的个数。 +- 1 ≤ n ≤ 10^12 +- 2 ≤ k ≤ 10 + +## 输出描述 +输出一个整数,表示 n 在 K 进制下的末尾零个数。 + +## 样例输入 +8 2 +## 样例输出 +3 \ No newline at end of file From b71d50db5a33370d410c4b348fe2d863496f77df Mon Sep 17 00:00:00 2001 From: ken <1598584570@qq.com> Date: Wed, 22 Oct 2025 20:49:51 +0800 Subject: [PATCH 2/2] Add new problem solutions for week 1 --- week1-exercise1 .in | 235 ++++++++++++++++++++++++++++++++++++++++++++ week1-exercise1 .md | 32 ++++++ week1-exercise1.out | Bin 0 -> 18944 bytes week1-exercise2.in | 71 +++++++++++++ week1-exercise2.md | 56 +++++++++++ week1-exercise2.out | 10 ++ week1-exercise3.in | 10 ++ week1-exercise3.md | 48 +++++++++ week1-exercise3.out | 10 ++ 9 files changed, 472 insertions(+) create mode 100644 week1-exercise1 .in create mode 100644 week1-exercise1 .md create mode 100644 week1-exercise1.out create mode 100644 week1-exercise2.in create mode 100644 week1-exercise2.md create mode 100644 week1-exercise2.out create mode 100644 week1-exercise3.in create mode 100644 week1-exercise3.md create mode 100644 week1-exercise3.out diff --git a/week1-exercise1 .in b/week1-exercise1 .in new file mode 100644 index 0000000..1a5650b --- /dev/null +++ b/week1-exercise1 .in @@ -0,0 +1,235 @@ +"40 5 +1682 +172 +4137 +346 +2663 +3951 +4980 +3194 +4566 +1554 +2245 +4254 +4878 +1055 +2386 +2301 +4401 +85 +3853 +2360 +1389 +2829 +2784 +2593 +570 +638 +2361 +1707 +4555 +1616 +3716 +880 +4272 +2918 +1200 +2495 +4783 +3508 +4757 +286" +"20 4 +1010 +103 +2483 +208 +1598 +2371 +2988 +1916 +2740 +932 +1347 +2552 +2927 +633 +1432 +1381 +2641 +51 +2312 +1416 +" +"8 1 +1075 +199 +2500 +300 +1644 +2392 +2989 +1952" +"20 6 +1015737 +112436 +2483848 +216707 +1602226 +2372511 +2988000 +1919477 +2740437 +938857 +1352039 +2553297 +2926894 +640583 +1436424 +1385628 +2641515 +60537 +2313708 +1420844" +"9 2 +114183 +29592 +251665 +39357 +169105 +241239 +298877 +198814 +275693" +"100 7 +127455 +48907 +255117 +57974 +178455 +245436 +298957 +206042 +277430 +120770 +156699 +261157 +293643 +94833 +164037 +159620 +268828 +44394 +240323 +162682 +112214 +187063 +184752 +174789 +69604 +73128 +162764 +128723 +276834 +123994 +233232 +85756 +262139 +191706 +102353 +169724 +288675 +222387 +287351 +54865 +73024 +54785 +78434 +267187 +254709 +73441 +280355 +87522 +271930 +107710 +211506 +240124 +158367 +258992 +170128 +172408 +120152 +184535 +99196 +77766 +295003 +206228 +234785 +234534 +187029 +107071 +84123 +171411 +196455 +193225 +208802 +244564 +279026 +218936 +271322 +106860 +295778 +179129 +230626 +298653 +46339 +69471 +134055 +261278 +146524 +94859 +74669 +110300 +249363 +88776 +188731 +285705 +180524 +168049 +167517 +213526 +72643 +74237 +188469 +102073" +"5 4 +140728 +68222 +258570 +76591 +187804" +"8 2 +174365 +71648 +341307 +83505 +241056 +328647 +398636 +277131" +"6 1 +40 +13 +85 +16 +58 +81" +"8 5 +343 +43 +829 +78 +537 +793 +997 +642" diff --git a/week1-exercise1 .md b/week1-exercise1 .md new file mode 100644 index 0000000..41c40b1 --- /dev/null +++ b/week1-exercise1 .md @@ -0,0 +1,32 @@ +# K + +## 题目描述 + +现有 $n$ 个正整数,要求出这 $n$ 个正整数中的第 $k$ 个最小整数(相同大小的整数只计算一次)。 + +## 输入格式 + +第一行为 $n$ 和 $k$; 第二行开始为 $n$ 个正整数的值,整数间用空格隔开。 + +## 输出格式 + +第$k$个最小整数的值;若无解,则输出 `NO RESULT`。 + +## 输入输出样例 #1 + +### 输入 #1 + +``` +10 3 +1 3 3 7 2 5 1 2 4 6 +``` + +### 输出 #1 + +``` +3 +``` + +## 说明/提示 + +$n \leq 10000$,$k \leq 4000$,正整数均小于 $30000$。 diff --git a/week1-exercise1.out b/week1-exercise1.out new file mode 100644 index 0000000000000000000000000000000000000000..f3479649aaf2a26ed8d9b3b205672f62a5f4df40 GIT binary patch literal 18944 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 literal 0 HcmV?d00001 diff --git a/week1-exercise2.in b/week1-exercise2.in new file mode 100644 index 0000000..2828524 --- /dev/null +++ b/week1-exercise2.in @@ -0,0 +1,71 @@ +"3 +336366944 +34259552 +827373662" +"5 +34 +4 +83 +7 +54" +"10 +3364 +343 +8274 +692 +5326 +7902 +9960 +6387 +9132 +3107" +"6 +33636695 +3425956 +82737367 +6913302 +53251719 +79013748" +"3 +67273455 +6852006 +165474750" +"8 +10157 +1124 +24839 +2167 +16022 +23725 +29880 +19195" +"10 +10290 +1317 +24873 +2353 +16116 +23767 +29881 +19267 +27422 +9526" +"7 +134746 +13993 +331002 +27932 +213147 +316118 +398396" +"6 +67472 +7141 +165527 +14105 +106644 +158091" +"3 +6747248 +714163 +16552652" diff --git a/week1-exercise2.md b/week1-exercise2.md new file mode 100644 index 0000000..7dbe30e --- /dev/null +++ b/week1-exercise2.md @@ -0,0 +1,56 @@ +# GCD? GCD! + +## 题目描述 + +awk喜欢 $\mathrm{gcd}$,也就是 **最大公约数**。如果你不知道什么叫做最大公约数,你可以访问 [最大公约数 - OI Wiki](https://oi-wiki.org/math/gcd/)。 + +awk给了你一个正整数 $n$,要你把它分成三个 **互不相等的** 正整数 $a,b,c$ 之和,使得 $\mathrm{gcd}(a,b,c)$ 最大。 + +## 输入格式 + +**本题有多组数据**。 + +第一行一个正整数 $T$,表示数据组数。 + +接下来 $T$ 行,每行一个正整数 $n$。 + +## 输出格式 + +对于每组数据,一行一个整数,表示答案,即最大的 $\mathrm{gcd}(a,b,c)$ 。 + +特别地,如果 $n$ 无法分成三个互不相等的正整数之和,请输出 `-1`。 + +## 输入输出样例 #1 + +### 输入 #1 + +``` +3 +12 +27 +5 +``` + +### 输出 #1 + +``` +2 +3 +-1 +``` + +## 说明/提示 + +【样例解释】 + +将 $12$ 分成 $2+4+6$,可以证明 $\gcd(2,4,6)=2$ 为可能达到的最大值。 + +将 $27$ 分成 $3+6+18$,可以证明 $\gcd(3,6,18)=3$ 为可能达到的最大值。 + +$5$ 无法分成三个互不相等的正整数之和,输出 `-1`。 + +--- + +【数据范围】 + +对于 $100\%$ 的数据,$1\le T \le 100$,$1\le n\le 10^9$。 \ No newline at end of file diff --git a/week1-exercise2.out b/week1-exercise2.out new file mode 100644 index 0000000..9d73fab --- /dev/null +++ b/week1-exercise2.out @@ -0,0 +1,10 @@ +42045868 4282444 8032754 +2 -1 1 1 9 +116 49 1379 4 2 1317 1660 3 1522 239 +1462465 7804 103811 1152217 872979 13168959 +4484897 1142001 27579125 +1451 4 421 197 2 1825 4980 1745 +1715 3 3 181 2686 1 1 1 2 866 +1514 1999 55167 4 23683 28738 2908 +8434 193 1 2015 17774 3 +843406 1 15172 diff --git a/week1-exercise3.in b/week1-exercise3.in new file mode 100644 index 0000000..d233bb4 --- /dev/null +++ b/week1-exercise3.in @@ -0,0 +1,10 @@ +0-670-82162-4 +0-670-82552-3 +9-670-82552-3 +0-445-82599-3 +0-445-81120-3 +0-445-81120-X +9-670-87777-6 +9-670-87757-4 +9-222-87757-4 +9-222-11101-4 diff --git a/week1-exercise3.md b/week1-exercise3.md new file mode 100644 index 0000000..ca8c1ab --- /dev/null +++ b/week1-exercise3.md @@ -0,0 +1,48 @@ +# 识别码吗 + +## 题目描述 + +每一本正式出版的图书都有一个 ISBN 号码与之对应,ISBN 码包括 $9$ 位数字、$1$ 位识别码和 $3$ 位分隔符,其规定格式如 `x-xxx-xxxxx-x`,其中符号 `-` 就是分隔符(键盘上的减号),最后一位是识别码,例如 `0-670-82162-4`就是一个标准的 ISBN 码。ISBN 码的首位数字表示书籍的出版语言,例如 $0$ 代表英语;第一个分隔符 `-` 之后的三位数字代表出版社,例如 $670$ 代表维京出版社;第二个分隔符后的五位数字代表该书在该出版社的编号;最后一位为识别码。 + +识别码的计算方法如下: + +首位数字乘以 $1$ 加上次位数字乘以 $2$ ……以此类推,用所得的结果 $ \bmod 11$,所得的余数即为识别码,如果余数为 $10$,则识别码为大写字母 $X$。例如 ISBN 号码 `0-670-82162-4` 中的识别码 $4$ 是这样得到的:对 `067082162` 这 $9$ 个数字,从左至右,分别乘以 $1,2,\dots,9$ 再求和,即 $0\times 1+6\times 2+……+2\times 9=158$,然后取 $158 \bmod 11$ 的结果 $4$ 作为识别码。 + +你的任务是编写程序判断输入的 ISBN 号码中识别码是否正确,如果正确,则仅输出 `Right`;如果错误,则输出你认为是正确的 ISBN 号码。 + +## 输入格式 + +一个字符序列,表示一本书的 ISBN 号码(保证输入符合 ISBN 号码的格式要求)。 + +## 输出格式 + +一行,假如输入的 ISBN 号码的识别码正确,那么输出 `Right`,否则,按照规定的格式,输出正确的 ISBN 号码(包括分隔符 `-`)。 + +## 输入输出样例 #1 + +### 输入 #1 + +``` +0-670-82162-4 +``` + +### 输出 #1 + +``` +Right +``` + +## 输入输出样例 #2 + +### 输入 #2 + +``` +0-670-82162-0 +``` + +### 输出 #2 + +``` +0-670-82162-4 +``` + diff --git a/week1-exercise3.out b/week1-exercise3.out new file mode 100644 index 0000000..c555af9 --- /dev/null +++ b/week1-exercise3.out @@ -0,0 +1,10 @@ +Right +0-670-82552-2 +9-670-82552-0 +0-445-82599-5 +0-445-81120-X +Right +Right +9-670-87757-1 +9-222-87757-8 +9-222-11101-X