题目出来了,作者把答案发出来(只能写T1+T2,T3+T4要写吐了)
T1:P14357 [CSP-J 2025] 拼数 / NUMBER(民间数据)
题意
给定一个包含小写字母和数字的字符串 sss,要求从小写字母及数字的字符串 sss 中选出任意多个数字 ,并按任意顺序将它们拼接成一个正整数。每个数字只能使用一次。求出所有能拼成的正整数中的最大值。
1≤∣s∣≤1061 \le|s|\le10^61≤∣s∣≤106
解析:以发现,最终数字的最高位越大,这个数就越大,因而只需挑出字符串中的所有数字,再按大小降序排序即可。
答案:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T2:P14358 [CSP-J 2025] 座位 / SEAT(民间数据)
题意:
考场共有 nnn 行 mmm 列座位,共有 共 n×mn × mn×m名考生。考生按照成绩由高到低,以“蛇形”顺序分配座位。蛇形分配的规则是:先从第1列第1行向下到第 nnn 行,然后转向第2列第 nnn 行向上到第1行,再转向第3列第1行向下到第 nnn 行,以此类推。给定考场的行数 nnn 、列数 mmm 和所有考生的成绩 a1a_{1}a1 , a2a_{2}a2 ,…… , an×ma_{n × m}an×m (其中a_{1}是小R的成绩),要求确定小R的座位所在的列数 ccc 和行数 rrr
1≤n,m≤101≤n,m≤101≤n,m≤10
解析:
根据其他同学的成绩,可以很轻松的求出小 R 的排名(统计有多少人分数不小于他即可)。假设小 R 排名为 x,则他将位于第 (x−1)/n+1(x - 1) / n + 1(x−1)/n+1 列,第 (x−1)取余n+1(x - 1) 取余 n + 1(x−1)取余n+1 , 当行数为奇数时,恰位于 (x−1)取余n+1(x - 1) 取余 n + 1(x−1)取余n+1 行,否则将位于第 m−(x−1)取余nm - (x - 1) 取余 nm−(x−1)取余n 行。分类讨论得出答案。
答案