> 题解:

时间:

1.先将给的几点几分转化为分

2.加上三小时30分钟后得到总的分钟数t

3.最后的点数就是t/60,但是由于是24小时的时间制度,所以还要取余24;最后得到的分钟数就是t%60

4.输出两位数,如果前面没有数就补上0

#include <bits/stdc++.h>
using namespace std;
int main()
{
 int h, m;
 scanf("%d:%d", &h, &m);
 m = h * 60 + m;
 m += 3 * 60 + 30;
 m %= 24 * 60;
 h = m / 60, m = m % 60;
 printf("%02d:%02d\n", h, m);
return 0;
}

石子:

发现只有当石子只有一堆并且石子的数量是偶数的时候Alice才是必胜的

其他情况由于bob和Alice都是无比聪明的,所以都会选择对自己最有利的方案,无论Alice怎么选,Bob都会做出最佳的选择: 如果石子堆中有偶数的,那么bob就在偶数堆中抽去奇数张石子,那么偶数减去奇数就是得到奇数,如果只有奇数堆,那么就选奇数推中某一个整堆的石子,那么就可以让剩下的石子堆都是奇数,这样偶数堆不断减少,奇数堆不断增加,所以最后bob赢

#include <bits/stdc++.h>
using namespace std;
int main()
{
 int n;
 while (~scanf("%d", &n))
 {
 int d;
 for (int i = 1; i <= n; i++)
 {
 scanf("%d", &d);
 }
 if (n == 1 && d % 2 == 0)
 puts("YES");
 else
 puts("NO");
 }
 return 0;

卡片: alt

alt alt

#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;//因为可能b*n可能会达到1e12,所以要开longlong
ll gcd(ll a,ll b)
{
	if(b==0)return a;
	return gcd(b,a%b);
}
ll lcm(ll a,ll b)
{
    ll ans=ll(a*b)/gcd(a,b);
    return ans;
}
int main()
{
    ll a,m,b,n;
    cin>>a>>m>>b>>n;
    ll x=lcm(a,b*n);
    cout<<x/a+x/b-x/lcm(a,b)<<endl;
    return 0;
}