给大家分享一句我很喜欢我话:
知不足而奋进,望远山而前行!!!
铁铁们,成功的路上必然是孤独且艰难的,但是我们不可以放弃,远山就在前方,但我们能力仍然不足,所有我们更要奋进前行!!!
今天我们更新了校赛内容,
🎉 欢迎大家关注🔍点赞👍收藏⭐️留言📝
前言:
今天我来给大家分享几道我们学校ACM校赛上几道不错的题目
题目一:回文立方数
#include<iostream>
typedef long long ll;//用ll代替long long
using namespace std;
bool check(ll n)//检查是否是回文数
{
ll flag = n;
ll sum = 0;
while (flag != 0)
{
sum = sum * 10 + flag % 10;
flag /= 10;
}
return n == sum;
}
int main()
{
ll n; cin >> n;
ll ret;
for (ll i = 1; i * i * i <= n; i++)
{
if (check(i*i*i))ret = i*i*i;
}
cout << ret;
return 0;
}
#include<iostream>
typedef long long ll;//用ll代替long long
using namespace std;
bool check(ll n)//检查是否是回文数
{
ll flag = n;
ll sum = 0;
while (flag != 0)
{
sum = sum * 10 + flag % 10;
flag /= 10;
}
return n == sum;
}
int main()
{
ll n; cin >> n;
ll ret;
for (ll i = 1; i * i * i <= n; i++)
{
if (check(i*i*i))ret = i*i*i;
}
cout << ret;
return 0;
}
题目二:这是一个DFS问题
int main()
{
int n; string s;
cin >> n >> s;
int n; cin >> n;
char arr[26] = { 0 };
for (int i = 0; i < 26; i++)
{
arr[i] = 'a' + i;
cout << arr[i] << " ";//将arr中得到a-z的所有字母
}
while (n--)
{
char a, b;
cin >> a >> b;
arr[a - 'a'] = b;//因为我们要知道n可能大于26,也就是一个字母可能不止变化一次,因此我们要得到最后一次变成啥,然后还是按这个顺序记录他们。
}
for (int i = 0; i < n; i++)
{
cout << arr[s[i] - 'a'];//根据arr中记录的顺序,s[i]-'a'得到对应的下标,然后得到arr中对应的数
}
return 0;
}int main()
{
int n; string s;
cin >> n >> s;
int n; cin >> n;
char arr[26] = { 0 };
for (int i = 0; i < 26; i++)
{
arr[i] = 'a' + i;
cout << arr[i] << " ";//将arr中得到a-z的所有字母
}
while (n--)
{
char a, b;
cin >> a >> b;
arr[a - 'a'] = b;//因为我们要知道n可能大于26,也就是一个字母可能不止变化一次,因此我们要得到最后一次变成啥,然后还是按这个顺序记录他们。
}
for (int i = 0; i < n; i++)
{
cout << arr[s[i] - 'a'];//根据arr中记录的顺序,s[i]-'a'得到对应的下标,然后得到arr中对应的数
}
return 0;
}
题目三:钓鱼执法
#include<iostream>
using namespace std;
int main()
{
int n = 0; cin >> n;
int yuer = 0;
int qiuyin = 0;
int fish = 0;
int count = 0;
string S;
cin >> S;
for (int i = 0; i < n; i++)
{
int tmp = S[i] - '0';
if (tmp == 0)//都没有我们就看有没有鱼饵,有就钓鱼
{
if (yuer != 0)
{
yuer -= 1;
count += 1;
}
}
else if (tmp == 1)//只有蚯蚓,直接做鱼饵
{
yuer += 1;
}
else if (tmp == 2||tmp==3)//等于2或者3我们就直接钓鱼
{
count += 1;
}
}
if (yuer > 0)//如果鱼饵有剩余,那么就除于2,也就是当等于1的时候,一半做鱼饵,一般钓鱼
{
count += yuer / 2;
}
cout << count;
return 0;
}#include<iostream>
using namespace std;
int main()
{
int n = 0; cin >> n;
int yuer = 0;
int qiuyin = 0;
int fish = 0;
int count = 0;
string S;
cin >> S;
for (int i = 0; i < n; i++)
{
int tmp = S[i] - '0';
if (tmp == 0)//都没有我们就看有没有鱼饵,有就钓鱼
{
if (yuer != 0)
{
yuer -= 1;
count += 1;
}
}
else if (tmp == 1)//只有蚯蚓,直接做鱼饵
{
yuer += 1;
}
else if (tmp == 2||tmp==3)//等于2或者3我们就直接钓鱼
{
count += 1;
}
}
if (yuer > 0)//如果鱼饵有剩余,那么就除于2,也就是当等于1的时候,一半做鱼饵,一般钓鱼
{
count += yuer / 2;
}
cout << count;
return 0;
}