首页 > 其他分享 >CF 1877 C

CF 1877 C

时间:2023-10-10 20:00:49浏览次数:39  
标签:typedef cout ll cin long CF 1877

C. Joyboard

这道题需要进行分类讨论。

  • 当\(k=1\)时,即构造的数组中所有元素皆为\(0\)才成立,所以输出\(1\)。
  • 当\(k=2\)时,只有\(a[n+1]<=n\)或\(a[n + 1]=x\)(其中\(n|x\))才成立,所以答案是\(n+\lfloor \frac{n+m}{n} \rfloor\)\((m>n)\)。
  • 当\(k=3\)时,只有\(a[n+1]>n\)且\(a[n + 1]\neq x\)时才成立,所以答案是\(m-n-\lfloor \frac{n+m}{n} \rfloor\)\((m>n)\)。

代码

#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
typedef long long ll;
typedef pair<ll, ll> PII;

const ll N = 1e5 + 10;
ll t;
ll n, m, k;

signed main()
{
    std::ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    cin >> t;
    while(t--)
    {
        cin >> n >> m >> k;
        if(k > 3)
        {
            cout << 0 << endl;
        }
        else if(k == 3)
        {
            if(m > n)
            {
                cout << m - n - (m - n) / n << endl;
            }
            else
            {
                cout << 0 << endl;
            }
        }
        else if(k == 2)
        {
            if(m > n)
            {
                cout << n + (m - n) / n << endl;
            }
            else
            {
                cout << m << endl;
            }
        }
        else if(k == 1)
        {
            cout << 1 << endl;
        }
    }
    return 0;
}

标签:typedef,cout,ll,cin,long,CF,1877
From: https://www.cnblogs.com/tongluosao/p/17755579.html

相关文章

  • CF2400计数
    感觉其他都没它重要,开写。CF1628D1/2看题解前:游戏挺好玩,玩着玩着就可以推出式子:\(f_{i,j}=\frac{f_{i-1,j}+f_{i,j}}{2}\)边界情况大概是\(i=j\)时\(f_{i,j}=i\),\(j=0\)时\(f_{i,j}=0\)直接暴力递推即可过D1,也是我想到的部分。看题解后:形式化dp式子,发现是个下三角......
  • [CF1508D] Swap Pass
    D-SwapPass先将所有\(a_i==i\)的点都直接去掉考虑将\(i\)向\(a_i\)连边,那么就会形成一个个的环考虑只有一个环的情况,那么我们任意固定一个点\(x\),一直交换\(a_x\)与\(a_{a_x}\)直到\(a_x==x\),因为所有所有边都交于一点,所以这肯定是合法的但更普遍的情况是不止有一个环,那么......
  • [CF1672G]Cross Xor
    G-CrossXor对于\((n\&1)\&\&(m\&1)\)的情况,所有行、列的异或和的必须相等(异或和指当前行/列中所有元素的异或和)每次修改的点\((x_1,y_1)\),\((x_2,y_1)\),\((x_1,y_2)\),\((x_2,y_2)\)使得所有行和列的异或和不会改变只对\((i,j)\)进行一次操作,那么所有行和列的异或和都会......
  • [CF1158F]Density of subarrays
    F-Densityofsubarrays屲,平衡复杂度题首先考虑如何求一个序列的密度从最左端开始,找到需序列\(A[1...n]\)的最小段\(A[1...a_1]\),使其包含\(1\simc\)的所有颜色,然后又以\(a_1+1\)为起点,找下一个最短的包含\(1\simc\)的所有颜色的段,最后找到的这样的段的个数就是这个序列......
  • [CF1580D]Subsequence
    D-Subsequence发现\(f(i,j)\)不好处理,考虑将其转换成另一个函数考虑笛卡尔树,\(\min(a_i,a_{i+1},...,a_j)\)就是在笛卡尔树上,\(i\)和\(j\)的\(lca\)那么就可以将问题转移到笛卡尔树上,设\(dp[x][c]\)表示以\(x\)所处的子树中,选了\(c\)个的最大价值那么显然有:\[dp[x][i+j]=\m......
  • [CF1285F]Classical?
    F-Classical?考虑先加上\(gcd(a_i,a_j)=1\)的限制从大到小扫集合里的数,若扫到数\(x\)发现存在\(y>x\)且\(gcd(x,y)=1\),则所有\(x<t<y\)的\(t\)都不会再对答案有贡献了,因此使用栈存储扫过的元素,当扫到\(x\)时,只要栈中有与\(x\)互质的数就弹栈,并与\(x\)更新答案那么如何快速判......
  • Codeforces Round 902 Div 1 (CF 1876)
    A.HelmetsinNightLight按花费sort一下,\(b<p\)就让他用\(b\)的花费告诉别人,剩下的人一开始用\(p\)的花费告诉即可。B.EffectsofAntiPimples发现一个数会被所有它的因数贡献,\(O(n\sqrt{n})\)随便算一算,式子略。C.AutosynthesisSolution1想到了建图但没有完......
  • 练习记录-cf-Educational Codeforces Round 156 (Rated for Div. 2)(A-C)
    好久没打了还是就出了三道不过还好没掉分A.SumofThree就是问能不能把一个数拆成三个不同的且都不能被三整除的数我的思路就是拆成1+2+一个大于等于4的数如果拆了后另一个数是%3==0那么我拆成1+4它肯定就不被整除然后判下相同#include<bits/stdc++.h>#defineclose......
  • CF1877C Joyboard
    思路一个比较明显的结论是,不同的数字个数只可能是\(1,2,3\)。可以随手写一个暴力的输出程序,假定\(n\)和\(m\),把所有可能的序列都输出来,就可以发现这个规律。也可以感性思考一下。如果第\(n+1\)位是\(0\),那么整个序列都会是\(0\),个数也就是\(1\)。如果第\(n+1\)位......
  • 【做题笔记】CF 1400-1600 构造题
    本人比较菜,所以做的rating很低/kk/kk/kk欢迎各位大佬嘲讽这个蒟蒻/kk/kk/kk/kk$*$表示看了题解才过的(所以你会发现这里的大部分题后面都会有$*$)实时通过率直接贴在后面当不看题解通过率稳定在\(50\%\)以上就弃坑。希望早日弃坑ABBCorBACB*题面中给了两种操作......