HENAU冬令营数学专题

A

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll ksm(ll a, ll b, ll c)
{
	ll ans = 1;
	while (b)
	{
		if (b % 2)
		{
			ans = (ans*a) % c;
			b--;
		}
		else
		{
			b /= 2;
			a = (a*a) % c;
		}
	}
	return ans;
}
int main()
{
	ll a, b, c;
	cin >> a >> b >> c;
	a %= c;
	ll ans=ksm(a, b, c);
	cout << ans << endl;
	return 0;
}

B

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
	ll p;
	cin >> p;
	int flag = 0;
	for (ll i = 2; i <= sqrt(p); i++)
	{
		if (!(p%i))
		{
			flag = 1;
			break;
		}
	}
	if (flag)cout << "AKCniubi" << endl;
	else
	{
		ll s = p - 1;
		cout << p*s / 2 << endl;
	}
	return 0;
}

C

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 1e5 + 10;
int a[N];
void sushushai()
{
	a[1] = 1;
	for (ll i = 2; i < N; i++)
	{
		if (a[i] == 0)
		{
			for (ll j = i * 2; j < N; j+=i)
				a[j] = 1;
		}
	}
}
int main()
{
	ll x, y;
	ll xx, yy;
	cin >> x >> y;
	xx = min(x, y);
	yy = max(x, y);
	sushushai();
	ll count = 0;
	for (ll i = xx; i <= yy; i++)
	{
		if (a[i] == 0)count++;
	}
	cout << count << endl;
	return 0;
}

D

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n, m, k, i, j, l, s;
	int a[105][105], b[105][105], c[105][105] = { 0 };
	cin >> n >> m >> k;
	for (i = 1; i <= n; i++)
		for (j = 1; j <= m; j++)
			cin >> a[i][j];
	for (i = 1; i <= m; i++)
		for (j = 1; j <= k; j++)
			cin >> b[i][j];
	for (i = 1; i <= n; i++)
		for (l = 1; l <= k; l++)
			for (j = 1; j <= m; j++)
			{
				s = a[i][j] * b[j][l];
				c[i][l] = c[i][l] + s;
			}
	for (i = 1; i <= n; i++)
	{
		for (j = 1; j <= k; j++)
		{
			printf("%d ", c[i][j]);
		}
		cout << endl;
	}
	return 0;
}

E

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
	ll t, n, k;
	cin >> t;
	while (t--)
	{
		cin >> n >> k;
		if (n % (k + 1))cout << "A" << endl;
		else cout << "B" << endl;
	}
	return 0;
}

F

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
	ll a, b;
	while (cin >> a >> b)
	{
		double s = (sqrt(5) + 1) / 2;
		ll t = abs(a - b);
		ll m = min(a, b);
		if (m != (ll)(t*s))cout << 1 << endl;
		else cout << 0 << endl;
	}
	return 0;
}

G

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[25];
int main()
{
	ll m;
	while (cin >> m)
	{
		for (int i = 0; i < m; i++)cin >> a[i];
		ll ans = 0;
		for (int i = 0; i < m; i++)
			ans ^= a[i];
		if (ans)cout << "Yes" << endl;
		else cout << "No" << endl;
	}
	return 0;
}

H

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 1e6;
ll a[N];
int main()
{
	int t;
	cin >> t;
	ll n;
	while (t--)
	{
		memset(a, 0, sizeof a);
		cin >> n;
		ll ans = n;
		ll count = 0;
		for (ll i = 2; i <= sqrt(n); i++)
		{
			if (n%i == 0)
			{
				a[count++] = i;
				while (n%i == 0)
				{
					n /= i;
				}
			}
			if (i != 2)i++;
		}
		if (n > 1)a[count++] = n;
		for (ll i = 0; i < count; i++)
		{
			ans = ans - ans / a[i];
		}
		cout << ans << endl;
	}
	return 0;
}

I

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int mod = 9901;
struct yyx
{
	ll z, zz;
};
queue<yyx>q;
ll ksm(ll a, ll b)
{
	ll ans = 1;
	while (b)
	{
		if (b % 2)
		{
			b--;
			ans = (ans*a) % mod;
		}
		else
		{
			b /= 2;
			a = (a*a) % mod;
		}
	}
	return ans;
}
ll he(ll a, ll b)
{
	if (b == 0)return 1;
	else
	{
		ll ans;
		if (b % 2 == 0)
		{
			ans = (((1 + ksm(a, b / 2)%mod)*(he(a, b / 2 - 1) % mod))) % mod + (ksm(a, b) % mod);
			ans %= mod;
		}
		else
		{
			ans = ((1 + ksm(a, (b + 1) / 2))%mod) * (he(a, (b - 1) / 2)%mod);
			ans %= mod;
		}
		return ans;
	}
}
int main()
{
	ll a, b;
	cin >> a >> b;
	ll aa = a;
	for (ll i = 2; i <= sqrt(aa); i++)
	{
		if (aa%i == 0)
		{
			ll count = 0;
			while (aa%i == 0)
			{
				count++;
				aa /= i;
			}
			q.push({ i, count });
		}
		if (i != 2)i++;
	}
	if (aa != 1)q.push({ aa, 1 });
	ll ans = 1;
	while (q.size())
	{
		auto t = q.front();
		q.pop();
		ans *= he(t.z, t.zz*b);
		ans %= mod;
	}
	cout << ans << endl;
	return 0;
}

J

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll zdgy(ll a, ll b)
{
	if (!b)return a;
	else return zdgy(b, a%b);
}
ll zxgb(ll a, ll b)
{
	return a*b / zdgy(a, b);
}
ll a[20], b[20];
int main()
{
	ll n, m;
	while (cin >> n >> m)
	{
		for (ll i = 0; i < m; i++)cin >> a[i];
		memset(b, 0, sizeof b);
		ll ii, t;
		for (ll i = 1; i < pow(2, m); i++)
		{
			ii = i;
			t = 1;
			ll j = -1, k = 0, l;
			while (ii)
			{
				l = ii % 2;
				k++;
				ii /= 2;
				if (l == 1)
				{
					t = zxgb(t, a[k - 1]);
					j++;
				}
			}
			b[j] += n / t;
		}
		ll ans = 0;
		for (ll i = 0; i < m; i++)
		{
			if (i % 2)ans -= b[i];
			else ans += b[i];
		}
		cout << n - ans << endl;
	}
	return 0;
}

K

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll c[2005][2005];
ll s[2005][2005];
ll t, k;
void fuzhi()
{
	for (int i = 0; i <= 2000; i++)
	{
		c[i][i] = 1;
		c[i][0] = 1;
	}
	for (int i = 1; i <= 2000; i++)
		for (int j = 1; j < i; j++)
		{
			c[i][j] = (c[i - 1][j - 1] + c[i - 1][j]) % k;
		}
}
void qushu()
{
	for (int i = 1; i <= 2000; i++)
		for (int j = 1; j <= 2000; j++)
		{
			s[i][j] = s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1];
			if (j <= i&&!c[i][j])s[i][j]++;
		}
}
int main()
{
	cin >> t >> k;
	fuzhi();
	qushu();
	while (t--)
	{
		int m, n;
		cin >> m >> n;
		cout << s[m][n] << endl;
	}
	return 0;
}

L

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
void kzojld(ll a, ll b, ll &x, ll &y)
{
	if (b == 0)
	{
		x = 1;
		y = 0;
		return;
	}
	kzojld(b, a%b, x, y);
	ll yy = y;
	y = x - a / b*yy;
	x = yy;
}
int main()
{
	ll a, b, x, y;
	cin >> a >> b;
	kzojld(a,b,x,y);
	x = (x%b + b) % b;
	cout << x << endl;
	return 0;
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值