坐标FJ,J组210,S组130有机会吗?
  • 板块灌水区
  • 楼主SnapYust
  • 当前回复10
  • 已保存回复10
  • 发布时间2022/10/30 09:45
  • 上次更新2023/10/27 04:57:03
查看原帖
坐标FJ,J组210,S组130有机会吗?
747475
SnapYust楼主2022/10/30 09:45

给大家看看我的寄代码:

CSP-J T1 100pts

#include <bits/stdc++.h>
using namespace std;
unsigned long long a, b;

int main()
{
	freopen("pow.in", "r", stdin);
	freopen("pow.out", "w", stdout);
	ios::sync_with_stdio(0);
	cin.tie(0), cout.tie(0);
	cin >> a >> b;
	unsigned long long ans = 1;
	while (b)
	{
		if (b & 1)
		{
			ans *= a;
			if (ans > 1000000000 || ans == 0)
			{
				cout << -1;
				return 0;
			}
		}
		a *= a;
		b >>= 1;
	}
	cout << ans;
	return 0;
}

CSP-J T2 60pts

#include <bits/stdc++.h>
using namespace std;
int k;

int main()
{
	freopen("decode.in", "r", stdin);
	freopen("decode.out", "w", stdout);
	ios::sync_with_stdio(0);
	cin.tie(0), cout.tie(0);
	cin >> k;
	while (k--)
	{
		bool f = 0;
		long long n, e, d;
		cin >> n >> e >> d;
		long long num = e * d;
		long long yplus = n + 2 - num;
		for (long long i = 1, sum, j; i <= yplus / 2; i++)
		{
			j = yplus - i;
			if (i * j == n)
			{
				f = 1;
				if (i < j) cout << i << ' ' << j << endl;
				else cout << j << ' ' << i << endl;
				break;
			}
			if (i * j > n)
			{
				f = 1;
				cout << "NO" << endl;
				break;
			}
		}
		if (!f) cout << "NO" << endl;
	}
	return 0;
}

CSP-J T3 0pts

#include <bits/stdc++.h>
using namespace std;
string s;
int len;
int ans;
int ans1 = 0;
int ans2 = 0;

void move(int k, int n)
{
	k++;
	for (int i = k; i < len; i++)
		s[i - 1] = s[i];
	len -= n;
}

void write()
{
	for (int i = 0; i < len; i++) cout << s[i];
}

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0), cout.tie(0);
	freopen("expr.in", "r", stdin);
	freopen("expr.out", "w", stdout); 
	cin >> s;
	len = s.size();
	cout << 0 << endl << 2 << ' ' << 3 << endl;
	return 0;
}

CSP-J T4 50pts

#include <bits/stdc++.h>
using namespace std;
int n, k;
struct Point
{
	long long x;
	long long y;
} a[505];
long long dis[505][505];
vector<long long> V[505];
const int INF = -1;
long long Max = 0;
long long op;

void dfs(int p, long long num, long long ne)
{
	if (ne > k) return;
	if (num > Max) Max = num, op = ne;
	for (int i = 0; i < V[p].size(); i++)
		dfs(V[p][i], num + 1, ne + dis[p][V[p][i]]);
}

int main()
{
	freopen("point.in", "r", stdin);
	freopen("point.out", "w", stdout);
	ios::sync_with_stdio(0);
	cin.tie(0), cout.tie(0);
	cin >> n >> k;
	for (int i = 1; i <= n; i++) cin >> a[i].x >> a[i].y;
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= n; j++)
			dis[i][j] = INF;
	for (int i = 1; i <= n; i++)
	{
		for (int j = i + 1; j <= n; j++)
		{
			if (a[i].x >= a[j].x && a[i].y >= a[j].y)
				dis[j][i] = a[i].x - a[j].x + a[i].y - a[j].y - 1, V[j].push_back(i);
			else if (a[i].x <= a[j].x && a[i].y <= a[j].y)
				dis[i][j] = a[j].x - a[i].x + a[j].y - a[i].y - 1, V[i].push_back(j);
		}
	}
	for (int i = 1; i <= n; i++)
		dfs(i, 1, 0);
	cout << Max + k;
	return 0;
}

CSP-S T1 70pts

#include <bits/stdc++.h>
using namespace std;
vector<int> V[2505];
int n, m, k;
unsigned long long ans = 0;
unsigned long long s[2505] = {0};
int dis[2505][2505] = {0};
bool v[10000] = {0};
bool b[10000] = {0};
const int INF = 0x7fffffff;
struct Node
{
	int p;
	long long jul;
};

bool operator < (Node a, Node b)
{
	return a.jul > b.jul;
}

priority_queue<Node> q;

void dijkstra(int s)
{
	for (int i = 1; i <= n; i++) v[i] = 0;
	for (int i = 1; i <= n; i++)
		dis[s][i] = INF;
	dis[s][s] = 0;
	q.push((Node){s, 0});
	while (!q.empty())
	{
		Node t = q.top();
		q.pop();
		int p = t.p;
		long long o = t.jul;
		if (v[p]) continue;
		v[p] = 1;
		for (int i = 0; i < V[p].size(); i++)
		{
			int k = V[p][i];
			if (v[k]) continue;
			if (o + 1 < dis[s][k])
				dis[s][k] = o + 1, q.push((Node){k, dis[s][k]});
		}
	}
	for (int i = 1; i <= n; i++)
		dis[s][i] -= 1;
}

void dfs(int p, unsigned long long sum, int num)
{
	if (num == 5)
	{
		if (sum > ans) ans = sum;
		return;
	}
	if (num == 4)
	{
		if (dis[p][1] > k) return;
		dfs(1, sum, num + 1);
		return;
	}
	for (int i = 2; i <= n; i++)
	{
		if (b[i]) continue;
		if (dis[p][i] > k) continue;
		b[i] = 1;
		dfs(i, sum + s[i], num + 1); 
		b[i] = 0;
	}
}

int main()
{
	freopen("holiday.in", "r", stdin);
	freopen("holiday.out", "w", stdout);
	ios::sync_with_stdio(0);
	cin.tie(0), cout.tie(0);
	cin >> n >> m >> k;
	for (int i = 2; i <= n; i++) cin >> s[i];
	for (int i = 1, x, y; i <= m; i++)
	{
		cin >> x >> y;
		V[x].push_back(y);
		V[y].push_back(x);
	}
	for (int i = 1; i <= n; i++)
		dijkstra(i);
	dfs(1, 0, 0);
	cout << ans;
	return 0;
}

CSP-S T2 60pts

#include <bits/stdc++.h>
using namespace std;
int n, m, q;
long long a[100500];
long long b[100500];
long long ans = 0;

int main()
{
	freopen("game.in", "r", stdin);
	freopen("game.out", "w", stdout);
	ios::sync_with_stdio(0);
	cin.tie(0), cout.tie(0);
	cin >> n >> m >> q;
	for (int i = 1; i <= n; i++) cin >> a[i];
	for (int i = 1; i <= m; i++) cin >> b[i];
	while (q--)
	{
		int l1, r1, l2, r2;
		cin >> l1 >> r1 >> l2 >> r2;
		long long Min = -1;
		bool f = 0;
		int x, y;
		for (int i = l1; i <= r1; i++)
		{
			bool m = 0;
			long long awa;
			for (int j = l2; j <= r2; j++)
			{
				if (!m) awa = a[i] * b[j], m = 1;
				else
				{
					if (a[i] * b[j] < awa)
					{
						awa = a[i] * b[j];
					}
				}
			}
			if (!f) Min = awa, x = i, f = 1;
			else
			{
				if (awa > Min)
				{
					Min = awa;
					x = i;
				}
			}
		}
		long long Max;
		f = 0;
		for (int i = l2; i <= r2; i++)
		{
			if (!f) Max = a[x] * b[i], y = i, f = 1;
			else
			{
				if (a[x] * b[i] < Max)
				{
					Max = a[x] * b[i];
					y = i;
				}
			}
		}
		ans = a[x] * b[y];
		cout << ans << endl;
	}
	return 0;
}

CSP-S T3 因为加了break所以40pts->0pts(QAQ)

#include <bits/stdc++.h>
using namespace std;
int n, m, q;
int c[500005] = {0};
int r[500005] = {0};
int a[500005] = {0};
int b[500005] = {0};
int z;
struct Edge
{
	int u;
	int v;
	bool f;
} e[500005];
int cnt = 0;

int main()
{
	freopen("galaxy.in", "r", stdin);
	freopen("galaxy.out", "w", stdout);
	ios::sync_with_stdio(0);
	cin.tie(0), cout.tie(0);
	cin >> n >> m;
	z = m;
	for (int i = 1, x, y; i <= m; i++)
	{
		cin >> x >> y;
		c[x]++, r[y]++;
		a[x]++, b[y]++;
		cnt++;
		e[cnt].u = x;
		e[cnt].v = y;
		e[cnt].f = 1;
	}
	cin >> q;
	while (q--)
	{
		int t, u, v;
		cin >> t;
		if (t == 1)
		{
			cin >> u >> v;
			for (int i = 1; i <= cnt; i++)
			{
				if (e[i].u == u && e[i].v == v)
				{
					e[i].f = 0;
					break;
				}
			}
			a[u]--, b[v]--;
			z--;
		} 
		else if (t == 2)
		{
			cin >> u;
			for (int i = 1; i <= cnt; i++)
			{
				if (e[i].f && e[i].v == u)
				{
					e[i].f = 0;
					a[e[i].u]--, b[u]--;
					z--;
					break;//这里
				}
			}
		}
		else if (t == 3)
		{
			cin >> u >> v;
			for (int i = 1; i <= cnt; i++)
			{
				if (e[i].u == u && e[i].v == v)
				{
					e[i].f = 1;
					break;
				}
			}
			a[u]++, b[v]++;
			z++;
		}
		else
		{
			cin >> u;
			for (int i = 1; i <= cnt; i++)
			{
				if (!e[i].f && e[i].v == u)
				{
					e[i].f = 1;
					a[e[i].u]++, b[u]++;
					z++;
					break;//这里
				}
			}
		}
		bool f = 1;
		if (z == n)
		{
			for (int i = 1; i <= n; i++)
			{
				if (a[i] != 1)
				{
					f = 0;
					break;
				}
			}
			if (f) cout << "YES" << endl;
			else cout << "NO" << endl;
		}
		else cout << "NO" << endl;
	}
	return 0;
}

CSP-S T4 0pts

#include <bits/stdc++.h>
using namespace std;

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0), cout.tie(0);
	freopen("transmit.in", "r", stdin);
	freopen("transmit.out", "w", stdout);
	cout << 12 << endl << 12 << endl << 3;
	return 0;
} 

还有机会吗QAQ

2022/10/30 09:45
加载中...