problem 2013
You are given a string S consisting of lowercase English letters and digits.S is guaranteed to end with 2023.Change the last character of S to 4 and print the modified string.
solution
使的最后一个2023变为2024.
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
string str;
cin>>str;
int p;
int flag=0;
for(int i=str.size()-1;i>=0;)
{
if(flag==1) break;
if(str[i]=='3'&&str[i-1]=='2'&&str[i-2]=='0'&&str[i-3]=='2')
{
flag=1;
p=i-4;
}
}
//cout<<p<<endl;
for(int i=0;i<=p;i++) cout<<str[i];
cout<<"2024"<<endl;
return 0;
}
problem Tetrahedral Number
You are given an integer N.Print all triples of non-negative integers (x,y,z) such that
x+y+z≤N in ascending lexicographical order.
solution
输出三个数,并且三个数的和小于等于n。按最小子序输出。
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=0;i<=n;i++)
{
for(int j=0;j<=n;j++)
{
for(int k=0;k<=n;k++)
if(i+j+k<=n)
cout << i<<' '<<j<<' '<<k<<endl;
}
}
return 0;
}
problem Loong Tracking
Takahashi has created a game where the player controls a dragon on a coordinate plane.
The dragon consists of N parts numbered 1 to N, with part 1 being called the head.
Initially, part i is located at the coordinates
(i,0). Process Q queries as follows.
solution
即记录字母的运动路径,将第一个字母不断地加入队列中即可。
#include <bits/stdc++.h>
using namespace std;
#ifndef ONLINE_JUDGE
#include "debug.h"
#else
#define debug(...) 417
#endif
using i64 = int64_t;
using u32 = uint32_t;
using u64 = uint64_t;
using f64 = double_t;
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
cout << fixed << setprecision(20);
int n, q;
cin >> n >> q;
deque<pair<int, int>> dp;
for (int i = 0; i < n; i += 1) { dp.emplace_back(i + 1, 0); }
for (int i = 0, op, p; i < q; i += 1) {
cin >> op;
if (op == 1) {
char c;
cin >> c;
auto [x, y] = dp.front();
if (c == 'R') { x += 1; }
if (c == 'L') { x -= 1; }
if (c == 'U') { y += 1; }
if (c == 'D') { y -= 1; }
dp.emplace_front(x, y);
dp.pop_back();
} else {
cin >> p;
auto [x, y] = dp;
cout << x << " " << y << "
";
}
}
}
Problem Loong and Takahashi
solution
简单地来说,就是输出n*n的螺旋形状,并且使最后一项为T。
#include<iostream>
using namespace std;
int a[100][100];
int main(){
int n,i,j,k=1,l;
cin>>n;
l=n;
int temp=1;
while(temp<=n*n)
{
for(i=k;i<=l;i++)a[k][i]=temp++;//第一行不变列增加 1 2 3 4
for(i=k+1;i<=l;i++)a[i][l]=temp++;//第n列不变,从第二行开始增加 12 13 14 5
for(i=l-1;i>=k;i--)a[l][i]=temp++;//第n行不变,从第n-1列减少 11 16 15 6
for(i=l-1;i>k;i--)a[i][k]=temp++; //第1列不变,行减少 10 9 8 7
k++;
l--;
}
int p=(n-1)/2 +1;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(i==p&&j==p)
cout<<"T"<<" ";
else
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}