每个测试的时间限制为2秒,每个测试的内存限制为256兆字节。你很幸运知道世界上所有重要问题的答案。这次,答案是字符串 s,只由小写英文字母组成。你想隐藏这个字符串。你还有另一个字符串 t,也只由小写英文字母组成。你需要打乱 t 中的字母,使字符串 s 至少在 t 中以子序列* 的形式出现一次。在所有包含 s 作为子序列的 t 的重排中,找到字典序最小† 的一个。 * 如果一个序列 a 可以通过从序列 b 删除若干个(可能为零或全部)任意位置的元素得到,那么序列 a 是序列 b 的子序列。 † 如果以下情况之一成立,则字符串 a 的字典序小于字符串 b:a 是 b 的前缀,但 a≠b;或者在 a 与 b 第一次不同的位置,字符串 a 的字母在字母表中先于字符串 b 的对应字母。 输入 每个测试包含多个测试用例。第一行包含测试用例的数量 T (1≤T≤104 )。接下来是测试用例的具体描述。 每个测试用例的第一行包含字符串 s (1≤|s|≤105 ),其中 |s| 是字符串 s 的长度。 每个测试用例的第二行包含字符串 t (|s|≤|t|≤105 )。 两个字符串都只包含小
```cpp #include<bits/stdc++.h> using namespace std; const int MAXN=100005; int cnt[26]; char s[MAXN],t[MAXN]; int main(){ ios::sync_with_stdio(false); cin.tie(0); int T; cin>>T; while(T--){ cin>>(s+1)>>(t+1); int n=strlen(s+1); int m=strlen(t+1); memset(cnt,0,sizeof(cnt)); for(int i=1;i<=m;i++){ cnt[t[i]-'a']++; } bool possible=true; for(int i=1;i<=n;i++){ if(cnt[s[i]-'a']==0){ possible=false; break; } cnt[s[i]-'a']--; } if(!possible){ cout<<"Impossible\n"; continue; } int pos=2; while(pos<=n&&s[pos]==s[1]){ pos++; } bool putFirstBefore=false; if(pos<=n&&s[pos]<s[1]){ putFirstBefore=true; } string result=""; for(int i=0;i<26;i++){ if(putFirstBefore&&i==s[1]-'a'){ for(int j=1;j<=n;j++){ result+=s[j]; } } for(int j=0;j<cnt[i];j++){ result+=char('a'+i); } if(!putFirstBefore&&i==s[1]-'a'){ for(int j=1;j<=n;j++){ result+=s[j]; } } } cout<<result<<"\n"; } return 0; } ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 字符数组索引从1开始时,strlen要传入s+1计算正确长度 2. 字典序比较时,要考虑s中第一个字符之后字符的大小关系 3. 处理完s中字符后,剩余的t字符要按字母顺序排列 [2025-12-23 18:13:05 | AI写代码神器 | 457点数解答]
- [DeepSeek] - ItemId: 12720 #道具id A级赛车 雷诺 ItemNum: 1 #数量 ObtainTime: 1 #时间 AvailPeriod: -1 #0显示数量 -1显示永久 - ItemId: 127758 #道具id 宠物 冰凤 ItemNum: 1 #数量 ObtainTime: 1 #时间 AvailPeriod: -1 #0显示数量 -1显示永久 - ItemId: 21980 #道具id 效率宝珠LV4 ItemNum: 100 #数量 ObtainTime: 1 #时间 AvailPeriod: 0 #0显示数量 -1显示永久 - ItemId: 21986 #道具id 重生宝珠LV4 ItemNum: 100 #数量 ObtainTime: 1 #时间 AvailPeriod: 0 #0显示数量 -1显示永久 这种文本文件如何用易语言读入并显示到超级列表框内 (571点数解答 | 2025-08-23 20:54:40)199
- [DeepSeek] - ItemId: 12720 #道具id A级赛车 雷诺 ItemNum: 1 #数量 ObtainTime: 1 #时间 AvailPeriod: -1 #0显示数量 -1显示永久 - ItemId: 127758 #道具id 宠物 冰凤 ItemNum: 1 #数量 ObtainTime: 1 #时间 AvailPeriod: -1 #0显示数量 -1显示永久 - ItemId: 21980 #道具id 效率宝珠LV4 ItemNum: 100 #数量 ObtainTime: 1 #时间 AvailPeriod: 0 #0显示数量 -1显示永久 - ItemId: 21986 #道具id 重生宝珠LV4 ItemNum: 100 #数量 ObtainTime: 1 #时间 AvailPeriod: 0 #0显示数量 -1显示永久 这种文本文件如何用易语言读入并显示到超级列表框内,并且可以增加新的一样的文本(1317点数解答 | 2025-08-23 20:58:40)206
- [DeepSeek] 每个测试的时间限制为2秒,每个测试的内存限制为256兆字节。你很幸运知道世界上所有重要问题的答案。这次,答案是字符串 s,只由小写英文字母组成。你想隐藏这个字符串。你还有另一个字符串 t,也只由小写英文字母组成。你需要打乱 t 中的字母,使字符串 s 至少在 t 中以子序列* 的形式出现一次。在所有包含 s 作为子序列的 t 的重排中,找到字典序最小† 的一个。 * 如果一个序列 a 可以通过从序列 b 删除若干个(可能为零或全部)任意位置的元素得到,那么序列 a 是序列 b 的子序列。 † 如果以下情况之一成立,则字符串 a 的字典序小于字符串 b:a 是 b 的前缀,但 a≠b;或者在 a 与 b 第一次不同的位置,字符串 a 的字母在字母表中先于字符串 b 的对应字母。 输入 每个测试包含多个测试用例。第一行包含测试用例的数量 T (1≤T≤104 )。接下来是测试用例的具体描述。 每个测试用例的第一行包含字符串 s (1≤|s|≤105 ),其中 |s| 是字符串 s 的长度。 每个测试用例的第二行包含字符串 t (|s|≤|t|≤105 )。 两个字符串都只包含小(457点数解答 | 2025-12-23 18:13:05)18
- [字节豆包] 题目描述 在甜甜圈王国中,每颗甜甜圈都有一个甜度值 S 来衡量其甜蜜程度。根据甜度的不同,甜甜圈被评定为不同的等级,具体规则如下: 如果 S 在 0 到 25 之间(包含 0 和 25 ),输出 "普通甜甜圈"; 如果 S 在 26 到 50 之间(包含 26 和 50 ),输出 "美味甜甜圈"; 如果 S 在 51 到 75 之间(包含 51 和 75 ),输出 "极品甜甜圈"; 如果 S 在 76 到 99 之间(包含 76 和 99 ),输出 "绝世甜甜圈"; 如果 S 等于 100 ,输出 "传说甜甜圈"。 请根据给定的甜度值 S,输出对应的甜甜圈等级名称。 输入格式 一行一个整数 S,表示甜甜圈的甜度值。(243点数解答 | 2025-12-06 18:35:50)64
- [字节豆包] 某饮料公司最近推出了一个“收集瓶盖赢大奖”的活动:如果你拥有10个印有“幸运”、或20个印有“鼓励”的瓶盖,就可以兑换一个神秘大奖。现分别给出你拥有的印有“幸运”和“鼓励”的瓶盖数,判断是否可以去兑换大奖。若可以兑换大奖,输出1,否则输出0。 输入 一行,包含两个整数,分别是印有“幸运”和“鼓励”的瓶盖数,用一个空格隔开。 输出 一行。若可以兑换大奖,输出1,否则输出0。(160点数解答 | 2025-11-02 07:40:31)79
- [字节豆包] 3414 数字游戏 题目内容 全部提交 我的提交 题目统计 简单 时间限制: 1000ms 内存限制: 256mb 分数:100 oi排行榜得分:12(0.1*分数+2*难度) 字符串 第五讲(level1-2) 描述 小 k 同学向小 p 同学发送了一个长度为 8 的 01 字符串来玩数字游戏,小 p 同学想要知道字符串中究竟有多少个 1。 注意:01 字符串为每一个字符是 0 或者 1 的字符串,如“101”(不含双引号)为一个长度为 3 的 01 字符串。 输入描述 一个长度为 8 的 01 字符串 s。 输出描述 一个整数,即 01 字符串中字符 1 的个数。(106点数解答 | 2024-10-27 14:23:27)402
- [DeepSeek] 小核桃准备使用 a 数组,存储战力为1~10的守卫各有多少个。 即:a[1] 存储战斗力为1的守卫数量,a[2] 存储战斗力为 2 的守卫数量,... 依次类推,a[10] 存储战斗力为 10 的守卫数量。 请你编写程序,使用数组依次存储战力1~10的守卫数量,并按数组下标顺序(从小到大),依次输出每个守卫的战力。 样例1解释: 样例1 输入数据依次表示:战力为1 的守卫有 3 个,战力为3的守卫有 1 个,战力 为4 的守卫有 2 个,战力为 8 的守卫有 2 个,其余战力为2.5.6.7.9.10的守卫数量都为 0。 所以依次输出 三 个 1,一个 3,两个 4,两个 8。 输入: 十个整数,即1~10中每个数的个数。 输出: 一行若干个整数,为从小到大排好序的数,相邻数字之间用空格隔开。 c++(130点数解答 | 2026-01-17 14:11:22)32
- [DeepSeek] 给定一个长度为 n 的字符串,我们想要得到更多的"our"字符串,可以往字符串中添加任意个字符’u’或者’U’。注意:比较不区分大小写,即 “our”、“Our”、“oUr”、“OUr” 都是等价的,即他们都可以看成"our"字符串。 输入格式: 一个字符串 s(1<=s的长度<=3000) ,含义如上,仅包含大小写字母。 输出格式: 最多可以得到多少个"our"字符串(不区分大小写)。(376点数解答 | 2025-10-30 19:20:06)62
- [DeepSeek] 给定一个长度为 n 的字符串,我们想要得到更多的"our"字符串,可以往字符串中添加任意个字符’u’或者’U’。注意:比较不区分大小写,即 “our”、“Our”、“oUr”、“OUr” 都是等价的,即他们都可以看成"our"字符串。 输入格式: 一个字符串 s(1<=s的长度<=3000) ,含义如上,仅包含大小写字母。 输出格式: 最多可以得到多少个"our"字符串(不区分大小写)。用C语言 实现代码 (257点数解答 | 2025-10-30 19:20:36)83
- [字节豆包] C++ 彤彤认为 7 是自己的幸运数,更进一步地,彤彤认为如果连续一串数字的和是7 的倍数,那么这串数字也是幸运的。 例如 5,6,7,8,9 这串数字的和是 35,而 35 刚好是 7 的倍数,所以从 5 到 9 的这串数字是幸运的。 请你编写程序输入两个正整数 a,b,计算从 a 到 b 这串连续数字的和,并判断这串数字是否幸运,如果是则输出:幸运,否则输出数字和。 输入格式 一行,两个正整数 a,b。 输出格式 如果 a 到 b 连续数字的和是 7 的倍数,则输出:幸运 ,否则输出数字和。(347点数解答 | 2025-10-26 15:48:41)53
- [字节豆包] 彤彤认为 7 7 是自己的幸运数,更进一步地,彤彤认为如果连续一串数字的和是 7 7 的倍数,那么这串数字也是幸运的。 例如 5 , 6 , 7 , 8 , 9 5,6,7,8,9 这串数字的和是 35 35,而 35 35 刚好是 7 7 的倍数,所以从 5 5 到 9 9 的这串数字是幸运的。 请你编写程序输入两个正整数 a , b a,b,计算从 a a 到 b b 这串连续数字的和,并判断这串数字是否幸运,如果是则输出:幸运,否则输出数字和。 输入格式 一行,两个正整数 a , b a,b。 输出格式 如果 a a 到 b b 连续数字的和是 7 7 的倍数,则输出:幸运 ,否则输出数字和。C++ 回答篇幅:简单明了(99点数解答 | 2025-12-12 19:25:57)48
- [字节豆包] 题目描述 扶苏来到了一个迷宫,这个迷宫是一个 n 行 m 列的数字矩阵,第 i 行第 j 列写有 一个数字 ai,j。保证 1≤ai,j≤4。 扶苏会在这个迷宫的某一个位置。假设她当前在迷宫的第 i 行第 j 列: 如果 ai,j=1,则她会向上移动一行,即 i 减小 1。 如果 ai,j=2,则她会向下移动一行,即 i 增大 1。 如果 ai,j=3,则她会向左移动一列,即 j 减小 1。 如果 ai,j=4,则她会向右移动一列,即 j 增大 1。 初始时和每次移动到另一个格子后,她都会按上述的规则继续进行新的移动。 当她移动出迷宫,即到达第 0 行、第 0 列、第 n+1 行、第 m+1 列时,称她离开了 迷宫。 现在,你要回答 q 次询问,每次给定一个扶苏的初时位置,你要回答她在多少次移动 后会离开迷宫,或报告她永远不会离开迷宫。 输入格式 第一行是三个整数,表示迷宫的行数 n、列数 m 和询问数 q。 接下来 n 行,每行 m 个整数,表示矩阵 a。 接下来 q 行,每行两个整数 xi,yi,表示一次查询初时在第 xi行yi列时她离开迷宫需 要的步数。(819点数解答 | 2025-11-26 19:27:35)53