AtCoder Beginner Contest 389
A - 9x9#
题意#
一位数的乘法
思路#
模拟
代码#
点击查看代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
typedef pair<int, int> pii;
const int mxn = 1e6 + 5;
void solve()
{
string s;
cin >> s;
cout << (s[0] - '0') * (s[2] - '0') << endl;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int T = 1;
//cin >> T;
while (T--)
{
solve();
}
return 0;
}
B - tcaF#
题意#
给定
,输出 ,其中 的阶乘等于
思路#
数据不大,模拟
代码#
点击查看代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
typedef pair<int, int> pii;
const int mxn = 1e6 + 5;
void solve()
{
int n;
cin >> n;
int t = 1;
for (int i = 2; ; i++)
{
if (t == n)
{
cout << i - 1 << endl;
return;
}
t *= i;
}
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int T = 1;
//cin >> T;
while (T--)
{
solve();
}
return 0;
}
C - Snake Queue#
题意#
最初有一个空的蛇队列,每条蛇有头部坐标与长度两种属性(队头的头部坐标为
,其他的头部坐标为前面所有蛇的长度和)接下来有 次操作,每次操作有 种:
1.把长为的蛇加到队尾
2.把队头的蛇出队(保证队列不空),后面的蛇的头部坐标都减少出队蛇的长度
3.输出第条蛇的头部坐标
思路#
直接模拟会
,用指针来表示队头,用前缀和来维护长度(头部坐标)
代码#
点击查看代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
typedef pair<int, int> pii;
const int mxn = 1e6 + 5;
void solve()
{
int Q;
cin >> Q;
vector<int> v;
vector<int> pre;
pre.push_back(0);
int head = 0, delta = 0;
while (Q--)
{
int a;
cin >> a;
if (a == 1)
{
int l;
cin >> l;
v.push_back(l);
pre.push_back(pre.back() + l);
}
else if (a == 2)
{
delta += v[head];
head++;
}
else
{
int k;
cin >> k;
cout << pre[head + k - 1] - delta << endl;
}
}
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int T = 1;
//cin >> T;
while (T--)
{
solve();
}
return 0;
}
D - Squares in Circle#
题意#
二维坐标上有无数
的正方形平铺。求以一正方形中心为圆心, 为半径作圆,能包含多少完整的正方形
思路#
代码#
点击查看代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
typedef pair<int, int> pii;
const int mxn = 3e5 + 5;
void solve()
{
int R;
cin >> R;
int ans = 4 * (R - 1) + 1;
for (int i = 1; i * 1.0 + 0.5 <= R * 1.0; i++)
{
double x = i * 1.0 + 0.5;
double y = sqrt(R * R - x * x) - 0.5;
ans += 4 * (int)y;
}
cout << ans << endl;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int T = 1;
//cin >> T;
while (T--)
{
solve();
}
return 0;
}
E -#
题意#
思路#
代码#
点击查看代码
F - Rated Range#
题意#
总共
场比赛,第 场比赛如果评分在 ,则评分加 。现有 次查询,每次查询给出始分数 ,求 场比赛后的总分。
思路#
代码#
点击查看代码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】