网站网页设计师,美图秀秀在线修图,公司建设网站费用属于什么费用吗,企业微信公众号平台官网A - Last LetterA - Last Letter 题目大意
给定一个长度为N的字符串S#xff0c;由小写英文字母组成#xff0c;打印出S的最后一个字符。
思路分析
题目要求打印出字符串S的最后一个字符#xff0c;可以直接通过访问S的最后一个元素来获取该字符。可以使用字符串的back()…A - Last LetterA - Last Letter 题目大意
给定一个长度为N的字符串S由小写英文字母组成打印出S的最后一个字符。
思路分析
题目要求打印出字符串S的最后一个字符可以直接通过访问S的最后一个元素来获取该字符。可以使用字符串的back()函数来实现这一操作
时间复杂度
O(1)
可AC代码
#include iostream
#include string
using namespace std;int main(){string S;cin S S;cout S.back() endl;
}B - Go Straight and Turn RightB - Go Straight and Turn Right 题目大意
给定一个字符串T其中包含字符S和R代表一系列移动操作。起始点为(0, 0)面朝东方。每次操作中如果是字符S则向当前方向前进1单位距离如果是字符R则顺时针旋转90度改变方向。
思路分析
可以使用两个变量x和y来记录当前位置的坐标以及两个变量dx和dy来表示当前方向的单位增量。
遍历字符串T的每个字符对于每个字符如果是字符S更新x和y的值使其增加对应方向的单位增量dx和dy。如果是字符R通过交换和取反的方式实现顺时针旋转90度更新dx和dy的值。
时间复杂度
O(N)
可AC代码
#include iostream
using namespace std;int main() {int N;cin N;string T;cin T;int x 0, y 0;int dx 1, dy 0;for (char t : T) {if (t S) {x dx;y dy;} else {// -90°旋转的矩阵变换int temp dx;dx dy;dy -temp;}}cout x y endl;return 0;
}C - Yamanote Line GameC - Yamanote Line Game 题目大意
这个问题是一个交互式游戏。有两名玩家Takahashi和Aoki他们轮流声明一个介于1到2N1之间的整数直到游戏结束。不能重复声明已经被任何一方声明过的整数。无法继续声明整数的一方失败未失败的一方获胜。在这个游戏中Takahashi总是能够获胜。你的任务是代表Takahashi实际进行游戏并获胜。
思路分析
为了获胜Takahashi需要确保每次声明的整数都是没有被任何一方声明过的。为了做到这一点可以使用一个布尔数组used来记录已经被声明的整数。初始时所有的元素都设置为false。然后可以从1开始遍历整数找到第一个未被声明过的整数并将其输出给标准输出。接下来从标准输入中读取Aoki声明的整数并将该整数设置为已被声明过。这个过程会不断重复直到Aoki没有更多整数可声明即从标准输入中读取到0为止此时Takahashi获胜游戏结束。
时间复杂度
O(N)
知识点标签
交互式任务
可AC代码
#include iostream
using namespace std;bool used[2005];int main(void)
{int n;cin n;while(1){for(int i 1; i 2*n1; i){if(!used[i]){cout i endl;used[i] true;break;}}int res;cin res;if(res 0) break;used[res] true;}return 0;
}