给大家看看我的寄代码:
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