1 条题解

  • 0
    @ 2025-8-24 22:38:43

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar BabyDragon185
    皇室战争策划=sb

    搬运于2025-08-24 22:38:43,当前版本为作者最后更新于2022-06-12 14:06:32,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    题目:P8395

    思路:我们先让数列中所有数都变成 44 。此时,只有 nn44 的倍数时可以满足可以实现,不妨设此时 n=4×mn = 4 \times m

    那么如果 nmod4=kn \bmod 4 = k ,那么就可以把 kk44 变成 55 ,就可以满足有方法。

    那么如果 m<k m < k ,就不可以实现了,其他情况都可以有实现方法。

    再说有多少种方法。因为 4455 的最小公倍数是 2020 ,那么可以将 5544 换成 4455 ,就多出一组

    所以多出的组数是 44 的最多个数整除 55

    因为 44 最多的个数应该是 mkm-k ,所以多出来是组数是 mkm-k 除以 55 的整数部分。

    那么在可以实现时,可实现组数就是 mkm-k 除以 55 的整数部分加 11

    代码如下。

    #include<bits/stdc++.h>//万能头。 
    using namespace std;//标准命名空间。
    int main()
    {
    	int n;//n如题目所述。 
    	cin>>n;
    	if(n/4<n%4)//判断是否有解。 
    	{
    		cout<<0;
    		return 0;//终止程序。 
    	}
    	cout<<(n/4-n%4)/5+1;//输出组数。 
    	return 0;//好习惯! 
    }
    

    都看到这里了,不妨点个赞再走吧,但是千万不要抄袭!!!

    • 1

    信息

    ID
    7738
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者