校赛补题

A.

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main () {
	ll k;
	cin >> k;
	ll x, y, p, q;
	cin >> x >> y >> p >> q;
	if(x == p && y == q) {
		cout << 0 << endl;
		return 0;
	}
	if(abs(x - p) + abs(y - q) <= k || x - y == p - q || (x + y) == (p + q)) {
		cout << 1 << endl;
		return 0;
	} 
	ll xx = (y + x) & 1;
	ll yy = (q + p) & 1;
	if(xx != yy && abs(x - p) + abs(y - q) > 2 * k && abs((p - x) - (q - y)) > k && abs((x + y) - (q + p)) > k) {
		cout << 3 << endl;
	}  else {
		cout << 2 << endl;
	}
}

B

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll MODE = 1e9 + 7;
ll n, k;
ll qpower(ll a, ll b) {
	ll ans = 1;
	while(b) {
		if(b & 1) {
			ans = (ans * a) % MODE;
		}
		a = (a * a) % MODE;
		b >>= 1;
	}
	return ans;
}
int main () {
	int t;
	cin >> t;
	while(t--) {
		cin >> n >> k;
		ll  x = ((k - 1) + (k - 2) * (k - 2) % MODE) % MODE;
		ll ans = (((qpower(x, n - 1) * k) % MODE) * (k - 1)) % MODE;
		cout << ans << endl;
	}
}
作者:LightAc
出处:https://www.cnblogs.com/lightac/
联系:
Email: dzz@stu.ouc.edu.cn
QQ: 1171613053
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/lightac/p/14536590.html