第32次CSP认证(持续更新)
第32次CSP认证(持续更新)
仓库规划
思路
数据范围较小,直接暴力判断
对每一个仓库,遍历其他每一个仓库,看看哪个是它的上级,如果都没有就输出
时间复杂度:
代码
神奇的代码
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
using i64 = long long;
using u64 = unsigned long long;
struct custom_hash
{
static uint64_t splitmix64(uint64_t x)
{
x ^= x << 13;
x ^= x >> 7;
x ^= x << 17;
return x;
}
size_t operator () (uint64_t x) const
{
static const uint64_t FIXED_RANDOM = std::chrono::steady_clock::now().time_since_epoch().count(); // 时间戳
return splitmix64(x + FIXED_RANDOM);
}
};
int nums[1010][12];
void solve()
{
int n = 0, m = 0;
std::cin >> n >> m;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
std::cin >> nums[i][j];
}
}
for (int i = 1; i <= n; i++)
{
bool flag = false;
for (int j = 1; j <= n; j++)
{
bool f = true;
if(i == j) continue;
for (int k = 1; k <= m; k++)
{
if (nums[j][k] <= nums[i][k])
{
f = false;
break;
}
}
if (f)
{
std::cout << j << endl;
flag = true;
break;
}
}
if (!flag)
{
std::cout << 0 << endl;
}
}
}
signed main()
{
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr); std::cout.tie(nullptr);
int t = 1;
//std::cin >> t;
while(t--)
{
solve();
}
return 0;
}
因子化简
思路
注意到
那么我们可以先把
代码
神奇的代码
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
using i64 = long long;
using u64 = unsigned long long;
const int maxn = 1e5 + 2;
struct custom_hash
{
static uint64_t splitmix64(uint64_t x)
{
x ^= x << 13;
x ^= x >> 7;
x ^= x << 17;
return x;
}
size_t operator () (uint64_t x) const
{
static const uint64_t FIXED_RANDOM = std::chrono::steady_clock::now().time_since_epoch().count(); // 时间戳
return splitmix64(x + FIXED_RANDOM);
}
};
inline int read()
{
int x = 0, flag = 1;
char ch = getchar();
while(ch < '0' || ch > '9')
{
if(ch == '-')
{
flag = -1;
}
ch = getchar();
}
while(ch <= '9' && ch >= '0')
{
x = x * 10 + ch - '0';
ch = getchar();
}
return x * flag;
}
int prime[maxn];
int cnt = 0;
int v[maxn]; // 存的是最小质因子
int power(int y, int x)
{
int res = 1;
while(x)
{
if (x & 1)
{
res *= y;
}
y *= y;
x >>= 1;
}
return res;
}
void prime_filter() // 欧拉筛
{
for (int i = 2; i <= maxn; i++)
{
if (v[i] == 0)
{
prime[++cnt] = i;
v[i] = i;
}
for (int j = 1; j <= cnt; j++)
{
if (prime[j] > v[i] || i * prime[j] > maxn) break;
v[i * prime[j]] = prime[j];
}
}
}
bool check(int pos, int k, int n)
{
return power(prime[pos], k) <= n;
}
void solve()
{
int n = 0, k = 0;
n = read(), k = read();
int ans = 1;
for (int i = 1; i <= cnt; i++)
{
if (n < prime[i]) break;
int cnt = 0;
while(n % prime[i] == 0)
{
cnt++;
n /= prime[i];
}
if (cnt >= k)
{
ans *= power(prime[i], cnt);
}
}
std::cout << ans << endl;
}
signed main()
{
// std::ios::sync_with_stdio(false);
// std::cin.tie(nullptr); std::cout.tie(nullptr);
prime_filter();
int t = 1;
t = read();
while(t--)
{
solve();
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现