CodeTON Round 9 (Div. 1 + Div. 2, Rated, Prizes!](A~D)
比赛链接 :CodeTON Round 9 (Div. 1 + Div. 2, Rated, Prizes!
A. Shohag Loves Mod
题目大意: 找到一个递增整数序列
void solve()
{
int n;cin>>n;
for(int i=1;i<=n;i++)cout<<i+i-1<<' ';
cout<<endl;
}
B. Shohag Loves Strings
题目大意: 给你一个字符串s,问s中是否存在一个非空子串p,且p的非空字串数量为偶数.
思路: 考虑两种情况
void solve() {
string s;
cin >> s;
for (int i = 0; i + 1 < s.size(); i++) {
if (s[i] == s[i + 1]) {
cout << s.substr(i, 2) << endl;
return;
}
}
for (int i = 0; i + 2 < s.size(); i++) {
string p = s.substr(i, 3);
if (p[0] != p[1] &&p[0] != p[2]&&p[1] != p[2]) {
cout << p << endl;
return;
}
}
cout << -1 << endl;
}
C1. Shohag Loves XOR (Easy Version)
题目大意: Shohag有两个整数
思路: 如果y的二进制位数比x高一位那么x⊕y>x 不可能是x的约数 且x⊕y 与y有相同的最高位也不可能是y的约数,所有y的范围被缩小到
void solve()
{
ll x,m;cin>>x>>m;
m=min(m,x<<1);
ll res=0;
for(int i=1;i<=m;i++)
{
if(i==x)continue;
ll num=x^i;
if(x%num==0||i%num==0)res++;
}
cout<<res<<endl;
}
D.Shohag Loves GCD
题目大意: 给你有个包含m个且不重复的整数集合S,让你构造出长度为n的字典序最大的整数数组
思路: 我们从前往后遍历,枚举所有下标 j 只要前面从1到 j 的所有下表都满足
假设
假设
假设
假设
假设
这样我们就得到了约数
我们可以发现,所有对
// Problem: D. Shohag Loves GCD
// Contest: Codeforces - CodeTON Round 9 (Div. 1 + Div. 2, Rated, Prizes!)
// URL: https://codeforces.com/contest/2039/problem/D
// Memory Limit: 256 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define eb emplace_back
#define inf 0x3f3f3f3f
#define infll 0x3f3f3f3f3f3f3f3fLL
using ll=long long;
using i128=__int128;
using vi=vector<int>;
using vll=vector<ll>;
using vb=vector<bool>;
typedef unsigned long long ull;
typedef pair<int, int> pii;
typedef pair<ll,ll>pll ;
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
ll lcm(ll a,ll b){return a*b/gcd(a,b);}
int power(int x,int y,int p){int res=1;x=x%p;while(y>0){if(y&1)res=(1ll*res*x)%p;y>>=1;x=(1ll*x*x)%p;}return res;}
ll mod_inv(ll x,ll p){return power(x,p-2,p);}
ll ceilDiv(ll n,ll m){if(n>=0)return (n+m-1)/m;else return n/m;}
vector<int> minp, primes;
void sieve(int n)
{
minp.assign(n + 1, 0);
primes.clear();
for (int i = 2; i <= n;i ++)
{
if(minp[i] == 0)
{
minp[i] = i;
primes.push_back(i);
}
for(auto p : primes)
{
if(i * p > n)
break;
minp[i * p] = p;
if(p == minp[i])
break;
}
}
}
void solve() {
int n,m;
cin>>n>>m;
vector<int> a;
map<int,int> st;
a.pb(0);
for(int i = 0;i < m;i ++)
{
int x;
cin>>x;
a.pb(x);
}
sort(a.begin() + 1,a.end());
for(int j = 1;j <= m;j ++)
{
st[a[j]] = j;
}
vector<int> b(n + 1,a.back());
for(int i = 2;i <= n;i ++)
{
int p = minp[i],mark = 1;
p=i/p;
mark = st[b[p]] - 1;
if(mark <= 0)
{
cout<<-1<<endl;
return;
}
b[i] = a[mark];
}
for(int i = 1;i <= n;i++)
{
cout<<b[i]<<" ";
}
cout<<endl;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
sieve(1e5 + 10);
int n;cin>>n;while(n --)
solve();
return 0;
}
别问为什么没有c2因为还不会,第一次蓝名表现这一把上大分
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现