七海ノ心象素描

所有的为时已晚都是恰逢其时

Nanami^2 avatar

Author

Nanami^2

大一学生 | 不是很聪明的样子

Telegram

我的频道

不定期推送灵感笔记

t.me/kisanami_blog
联系方式
QQ 群
1072614878
发送邮件

CF2193 Round 1078 (Div. 2)

个人题解

Nanami^2
Nanami^2 Even in the rain.
2026年02月08日
预计阅读 5 分钟
937 字

A

连续 kk 个为一个单元,显然这样最优,注意结尾如果凑不成 kk 个只要排满就行了。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> PII;
#define MP make_pair
#define fi first
#define se second
#define pb push_back
#define eb emplace_back
#define SET(a,b) memset(a,b,sizeof(a))
#define CPY(a,b) memcpy(a,b,sizeof(b))
#define rep(i,j,k) for(int i=(j);i<=(k);++i)
#define per(i,j,k) for(int i=(j);i>=(k);--i)
int read() {
int a=0, f=1; char c=getchar();
while(!isdigit(c)) {
if(c=='-') f=-1;
c=getchar();
}
while(isdigit(c)) a=a*10+c-'0', c=getchar();
return a*f;
}
int T, n, k;
void solve() {
cin >> n >> k;
cout << 1ll * (n / k) * (k - 1) + (n % k) << endl;
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> T;
while(T--) solve();
return 0;
}

B

读清楚题随便维护一下即可。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> PII;
#define MP make_pair
#define fi first
#define se second
#define pb push_back
#define eb emplace_back
#define SET(a,b) memset(a,b,sizeof(a))
#define CPY(a,b) memcpy(a,b,sizeof(b))
#define rep(i,j,k) for(int i=(j);i<=(k);++i)
#define per(i,j,k) for(int i=(j);i>=(k);--i)
int read() {
int a=0, f=1; char c=getchar();
while(!isdigit(c)) {
if(c=='-') f=-1;
c=getchar();
}
while(isdigit(c)) a=a*10+c-'0', c=getchar();
return a*f;
}
const int N = 2e5 + 5;
int T, n, x, y, a[N];
void solve() {
cin >> n >> x >> y;
ll ans = 0, res = 0;
for(int i = 1;i <= n;i++) {
cin >> a[i];
if(i > 1) res += 1ll * y * (a[i] / x);
}
res += a[1];
ans = max(ans, res);
for(int i = 2;i <= n;i++) {
res -= a[i - 1];
res -= 1ll * y * (a[i] / x);
res += 1ll * y * (a[i - 1] / x);
res += a[i];
ans = max(ans, res);
}
cout << ans << endl;
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> T;
while(T--) solve();
return 0;
}

C

首先我们尝试枚举答案 knk \mid n,于是这就是个根号级别的东西。

规定下标为 [0,n1][0, n - 1]。设当前枚举的答案串长度为 kk,那么对于下标 i[0,n1]i \in [0, n - 1],其可选的字符集合应该是所有串这个位置字符的并集。但由于所有模 kk 同余 ii 的点字符应该相同,所以答案串下标 imodki \mod k 应该对这个并集求交。一旦出现空集,那么就无解了。这个过程随便状态压缩一下就很好实现,

然后每个集合扫一遍随便取个字符就行。

复杂度 O(n32k)O(n^{\frac{3}{2}}k),可以通过。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> PII;
#define MP make_pair
#define fi first
#define se second
#define pb push_back
#define eb emplace_back
#define SET(a,b) memset(a,b,sizeof(a))
#define CPY(a,b) memcpy(a,b,sizeof(b))
#define rep(i,j,k) for(int i=(j);i<=(k);++i)
#define per(i,j,k) for(int i=(j);i>=(k);--i)
int read() {
int a=0, f=1; char c=getchar();
while(!isdigit(c)) {
if(c=='-') f=-1;
c=getchar();
}
while(isdigit(c)) a=a*10+c-'0', c=getchar();
return a*f;
}
const int N = 5e4 + 5;
int T, n, m;
string s[N];
vector<int> d;
void solve() {
cin >> n >> m;
for(int i = 0;i < m;i++) {
cin >> s[i];
}
d.clear();
d.push_back(1);
d.push_back(n);
for(int i = 2;i * i <= n;i++) if(n % i == 0) {
d.push_back(i);
if(i * i != n) d.push_back(n / i);
}
sort(d.begin(), d.end());
for(auto k : d) {
// cout << "k = " << k << endl;
int cnt = n / k;
vector<int> st(k + 5, ((1 << 26) - 1));
for(int i = 0;i < n;i++) {
int S0 = 0;
for(int j = 0;j < m;j++) {
S0 |= (1 << (s[j][i] - 'a'));
}
// cout << "S0 = " << S0 << endl;
st[i % k] &= S0;
// printf("st[%d] = %d\n", i % k, st[i % k]);
}
int valid = 1;
for(int i = 0;i < k;i++) {
if(st[i] == 0) valid = 0;
}
if(valid) {
string ans;
ans.resize(k);
for(int i = 0;i < k;i++) {
for(int j = 0;j < 26;j++) if(st[i] & (1 << j)) {
ans[i] = 'a' + j;
break;
}
}
for(int i = 1;i <= cnt;i++) cout << ans;
cout << endl;
return;
}
}
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> T;
while(T--) solve();
return 0;
}

D

身败名裂了,没能做掉。

觉得这篇文章怎么样?

点个赞,让更多人看到!

分享这篇文章

知识因分享而增值

分类

Codeforces
比赛

标签

构造
DP
贪心

版权声明:本文作者为 Nanami^2,首发于nanami7.top

遵循 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

评论区

本评论区由 EveSunMaple 自主开发