专栏文章

题解:AT_arc198_a [ARC198A] I hate 1

AT_arc198_a题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miovyvhw
此快照首次捕获于
2025/12/03 02:02
3 个月前
此快照最后确认于
2025/12/03 02:02
3 个月前
查看原文

题意解析:

由题意可知:集合里的元素 SiS_i1\ge 1N\le N 的。
而其中:(x+1)modx=1(x + 1) \bmod x = 1。也就是说,在创建集合 SS 时,不能选择相邻的数。
那么想要数量最多,那么就需要选择间隔为 22 的数。
所以我们选择偶数数列。因为选择奇数数列,就不能选择 11,因为 1modx=11 \bmod x = 1 对于任何 xx 都成立。那么当 nn 为偶数时,奇数数列就会比偶数数列少一个数。
而当 nn 为奇数时,奇数数列和偶数数列数量一样多,但我们可以发现,有一些奇数模奇数也等于 11,比如 11mod5=111 \bmod 5 = 1,所以偶数数列是最优解。

CODE:

CPP
#include<cstdio>
int main() {
    int n;
    scanf("%d",&n);
    if(n==1) printf("1\n1");//特判 n=1 的情况
  	else{
        int a=n/2;
        printf("%d\n",a);
        for(int w=1;w<=a;w++) printf("%d ",2*w);
    }
    printf("\n");
    return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...