专栏文章
题解:CF2048B Kevin and Permutation
CF2048B题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mio4riq5
- 此快照首次捕获于
- 2025/12/02 13:21 3 个月前
- 此快照最后确认于
- 2025/12/02 13:21 3 个月前
题目连接
题意简述
构造一个长度为 n 的排列,使所有长度为 k 的子区间的最小值之和最小。
解题思路
在k的倍数的位置上放最小的数。
参考代码
CPP#include<bits/stdc++.h>
using namespace std;
int n,a,k,ans[100001];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a>>k;
memset(ans,0,sizeof(ans));
for(int j=k;j<=a;j+=k)ans[j]=j/k;
int tmp=a/k+1;
for(int j=1;j<=a;j++){
if(j%k==0)continue;
ans[j]=tmp;
tmp++;
}
for(int j=1;j<=a;j++)cout<<ans[j]<<" ";
cout<<endl;
}
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...