首页 > 其他分享 >Joyboard

Joyboard

时间:2024-03-25 16:48:39浏览次数:9  
标签:lfloor frac min Joyboard rfloor 不难

我们发现对任意的\(a_{n+1}\),\(a_1\)一定为\(0\)

如果\(a_2\)为\(1\),那么不难发现,\([3,n]\)都为\(1\)

再手玩几次,就会发现,数列只有可能是这个样子:\([1,i]\)为\(0\),\([i+1,n]\)为\(i\),然后我们再决定\(a_{n+1}\)为多少

不难发现,当\(k=1\)的时候,答案为\(1\);当\(k=2\)的时候,答案为\(min(n-1,m)+\lfloor \frac{m}{n} \rfloor\);当\(k≥4\)的时候,答案为\(0\);现在主要是来计算当\(k=3\)的时候

考试的时候想的是正面计算,确实可以,但是非常耗费时间,放在C题就不是让你这么算的,此时我们要想一个简单的方法,就一定要从反面考虑,输出\(m+1-1-(min(n-1,m)+\lfloor \frac{m}{n} \rfloor)-0\)即可

然后讲一下正面的计算:不难发现公式是\(\sum_{i=1}^{n-1} \lfloor \frac{m-i}{n} \rfloor\),我们很容易地想到整除分块,但是整除分块实际上不是这个形式,所以我们仍然考虑贡献,设\(\lfloor \frac{m-i}{n} \rfloor=k\),不难有\(m-n(k+1)<i≤m-kn\),我们发现对同一个\(k\),\(i\)的个数都是\(n\)个(这里就是跟整除分块不一样的地方了,整除分块由于变量在分母,所以是有这么一个分块在的东西,然后这里变量在分子,显然循环节都刚好是\(n\))。但是这里有一个细节,因为我们限制了\(i\)的上下界,所以我们也要求出\(k\)的上下界,并且对\(k\)的上下界进行单独的讨论,这里就是最麻烦的地方了(比如我考场上只想到了求\(k\)的上界,却忘记了求\(k\)的下界,显然这不是一个C题该有的样子)

标签:lfloor,frac,min,Joyboard,rfloor,不难
From: https://www.cnblogs.com/dingxingdi/p/18094728

相关文章

  • 11 Joyboard
    Joyboard打表题目数据给的很夸张,单纯的模拟肯定不行,直接打表找出规律!#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;voidsolve(){lln,m,k;cin>>n>>m>>k;if(k==1){cout<<1<<"......
  • Codeforces Round 902 (Div. 2) C. Joyboard 规律
    CodeforcesRound902(Div.2)C.Joyboard//思路:在k=1,k=2,k=3时有解//当k=1时为全0//当k=2时,若m>=n,则先是0然后为1~n,最后一位可以为n的倍数也符合,即n+m/n-1//若m<n则为1~m即m//当k=3时,只能在n+1位是第3个不同情况(大于n),且不能为n的倍数,即(m-n)-(m/n-1)//只......
  • CF1877C Joyboard
    思路一个比较明显的结论是,不同的数字个数只可能是\(1,2,3\)。可以随手写一个暴力的输出程序,假定\(n\)和\(m\),把所有可能的序列都输出来,就可以发现这个规律。也可以感性思考一下。如果第\(n+1\)位是\(0\),那么整个序列都会是\(0\),个数也就是\(1\)。如果第\(n+1\)位......
  • C. Joyboard
    C.Joyboard找规律我们可以发现:为了方便对a[n+1]取值为x1.如果x=0,只有0,k=12.如果1<=x<=n,在i<=x,a[i]=0;在i>x,a[i]=x,k=23.如果x>n,需要分类:3.1如果x%n==0,i<=n,a[i]=0,a[n+1]=x,k=23.2如果x%n!=0,设y=x%n,i<=y,a[i]=0;y<i<=n,a[i]=y;a[n+1]=x;点击查看代码#include<bi......