R41题解
2025-2-26 15:03:29
~循环相克令
题解
简单字符串的应用和 语句使用
标程
int t;
string a, b;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> t;
while(t--)
{
cin >> a >> b;
if(a == b) cout << "Tie\n";
else
{
if(a == "Hunter" && b == "Gun") cout << "Player1\n";
else if(a == "Gun" && b == "Bear") cout << "Player1\n";
else if(a == "Bear" && b == "Hunter") cout << "Player1\n";
else cout << "Player2\n";
}
}
return 0;
}
细菌繁殖时间
题解
需要注意无解和使用 ,其他的就是简单循环使用。
标程
long long b, n, now = 1, ans;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> b >> n;
if(b == 1)
{
cout << "NO\n";
return 0;
}
while(1)
{
if(now >= n) break;
now *= b;
ans++;
}
cout << ans << '\n';
return 0;
}
坐哪个火车呢?
题解
如果会结构体排序,那就可以写一个结构体排序,但是其实不会也是可以做的,只需要按照时间从小到大枚举,找到第一个火车去坐就好了。
标程
int n, a[20];
string s[20];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for(int i = 1; i <= n; i++)
{
cin >> a[i] >> s[i];
}
for(int i = 10; i <= 24; i++)
{
for(int j = 1; j <= n; j++)
{
if(a[j] == i)
{
cout << s[j] << '\n';
return 0;
}
}
}
cout << "No\n";
return 0;
}
拼图游戏
题解
这是个实打实的结构体排序题,用结构体存储,根据编号从小到大排序,然后输出即可。
标程
int n;
struct node
{
string x;
int id;
}a[10010];
int cmp(node y, node z)
{
return y.id < z.id;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for(int i = 1; i <= n * n; i++)
{
cin >> a[i].x >> a[i].id;
}
sort(a + 1, a + 1 + n * n, cmp);
for(int i = 1; i <= n * n; i++)
{
cout << a[i].x << " ";
if(i % n == 0) cout << "\n";
}
return 0;
}
几点下班?
题解
需要注意一点细节的模拟题,主要就是需要注意中午的休息时间问题,比如 来了个新患者,以及 来了个新患者/老患者的问题,建议代码先按分钟算,然后最后再做换算。
标程
int n, t, flag;
string x;
map<string, int>mp;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for(int i = 1; i <= n; i++)
{
cin >> x;
if(t == 235 && i != n) {t += 120; flag = 1;}
if(mp[x] == 0) t += 10;
else
{
if(t == 230 && i != n) {t += 120; flag = 1;}
t += 15;
}
if(flag == 0 && t > 240 && i != n) {t += 120; flag = 1;}
mp[x]++;
}
//cout << t << "\n";
int h = 8 + t / 60;
int m = t % 60;
if(h < 10) cout << 0 << h << ":";
else cout << h << ":";
if(m < 10) cout << 0 << m << "\n";
else cout << m << "\n";
return 0;
}
Bojack打麻将
题解
分情况进行判断即可,关于”吃“看自己喜欢, 判断一下,或者写排序都行。
标程
int t, n, a[3], b[3], flag;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> t;
while(t--)
{
flag = 0;
cin >> a[0] >> a[1] >> n;
for(int i = 1; i <= n; i++)
{
cin >> a[2];
b[0] = a[0];
b[1] = a[1];
b[2] = a[2];
if(a[0] == a[1] && a[1] == a[2]) flag = 1;
else
{
sort(b, b + 3);
if(b[1] == b[0] + 1 && b[2] == b[1] + 1) flag = 1;
}
}
if(flag == 1) cout << "yes\n";
else cout << "no\n";
}
return 0;
}
我们会审查剪贴板内容,并对发布不合适内容的同学进行相应的处理