首页 > 其他分享 >Codeforeces #1844 A~D题解

Codeforeces #1844 A~D题解

时间:2023-07-12 09:57:36浏览次数:50  
标签:下标 数字 题解 Codeforeces cin 1844

Codeforeces #1844 A~D题解

A Subtraction Game 博弈论 A+B problem

由于只有两种数字可选,若石子数量为 a + b,先手选完之后必然为 ab,因此后手可以直接选完

B Permutations & Primes 构造

构造方法:3 5 7 9 1 10 8 6 4 2,这样把 1 放中间可以让最多的区间拿到 1,接下来避免同时拿到 2 3,所以把他们放两边,剩下的数字山峰排列最优。

C Particles 思维

可以发现,每次合并的操作都不会改变左右元素的下标奇偶性,比如下标为 1 2 3 的元素,删除中间 2,得到的新元素下标为 1

所以发现奇数下标和偶数下标形成的集合是独立的,相当于每次在奇数集合或偶数集合删除一个数字,那么直接分别计算答案最后取最大值就好了,贪心选正数。

特判全是负数和 \(n = 1\) 的情况

D Row Major 数论

我们先把每个点向后面第 \(p_i\) 号点连一条边,\(p_i\) 是 \(n\) 的第 \(i\) 个质因数。

设 \(k\) 为第一个不能被 \(n\) 整除的数,则染色以 \(k\) 为一个颜色周期,不断重复。

证明两个结论

  1. 一个周期内的所有数字都不相同

反证法:同一周期内,假设第 \(i\) 个数字和第 \(j\) 个数字相同,有 \(j - i < k\)。

由于 \(k\) 为第一个不能被 \(n\) 整除的数,所以所有 \(< k\) 的数字 \(p\) 都可以被 \(n\) 整除,也就是存在一条长度为 \(p\) 的边,由于 \(j - i < k\),所以 第 \(i\) 个数字和第 \(j\) 个数字间存在一条边,因此第 \(i\) 个数字和第 \(j\) 个数字不能相同,矛盾,原命题得证。

  1. 对于两个数 \(a, b\equiv x\pmod{k}\),且 \(a \ne b\),它们的颜色可以相同。

首先令 \(a < b\),如果不满足,交换 \(a, b\)。

它们之间存在一条边的充要条件是 \(b - a \mid n\),因为 \(a, b\equiv x\pmod{k}\),所以 \(b - a = t\cdot k\),因为 \(k\nmid n\), 所以 \(xk\nmid n\),因此 \(a, b\) 之间无边,可以相同。

综上所述,我们完全可以构造一个序列,以 \(k\) 为颜色周期,周期内元素不重复。

时间复杂度:\(O(n)\)。

#include <iostream>
using namespace std;

signed main()
{
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    int T, n;
    cin >> T;
    while (T--)
    {
        int k = 1;
        cin >> n;
        for (; n % k == 0; k++)
            ;
        for (int i = 1; i <= n; i++; i++)
            cout << (char)('a' + i % k) << '\n';
    }

    return 0;
}

标签:下标,数字,题解,Codeforeces,cin,1844
From: https://www.cnblogs.com/MoyouSayuki/p/17546675.html

相关文章

  • 「Network」题解
    「CEOI2012」NetworkSolutiontoQuestionⅠ首先缩点(当然也可以不缩?),然后跑一遍DFS即可。//w为联通分量里的节点个数inlinevoiddfs(constint&u){ ans1[u]=w[u]; for(intv:G_scc[u]) dfs(v),ans1[u]+=ans1[v];}SolutiontoQuestionⅡ观察缩完点后......
  • 正方形鱼池题解
    首先这道题\(T\)的范围很小,而\(N\)的范围却很大,所以我们只能枚举树那么我们如何枚举呢,树有上下左右之分,看起来十分难枚举,现在让我们仔细分析一下:水池的边长就等于\(min(上下界的距离,左右界的距离)\)这时我们就可以开始枚举了,我枚举的是左右界那么我们此时就可以发现上下界的两......
  • 题解 [NOIP2011 提高组] 聪明的质监员
    题目链接不难发现,\(W\)越大,\(y_i\)以及\(y\)就越小,\(W\)越小,\(y_i,y\)就越大。所以这是一个二分答案。考虑如何\(check\)。观察\[y_i=\sum\limits_{j=l_i}^{r_i}[w_j\geW]\times\sum\limits_{j=l_i}^{r_i}[w_j\geW]v_j\]不难发现,乘号的前后都是区间和的形式,有......
  • 【开机10】解决出现问题,你的PIN不可用,单击以重新设置PIN 无法打开相机 设置我的PIN 登
    \(弄了1.5个小时,找到这个视频,终于弄好了!!!!!!\)\(如果各位基友出现这种问题,可以参考。\)【开机10】解决出现问题,你的PIN不可用,单击以重新设置PIN无法打开相机设置我的PIN登录选项诊断启动禁用服务后问题解决......
  • 洛谷 P4869 albus就是要第一个出场 题解
    洛谷P4869albus就是要第一个出场题意给定一个长度为\(n\)的序列\(A\),设可重集合\(S=\left\{\operatorname{xor}_{i=1}^nA_ix_i\midx_i\in\{0,1\}\right\}\),即\(S\)为\(A\)的所有子集的异或和构成的集合。给定一个数\(k\),求\(k\)在\(S\)中的排名。如果\(S\)中......
  • AT_abc306_h 题解
    AT_abc306_hBalanceScale题解Links洛谷AtCoderDescription有\(N\)个编号为\(1,2,\dots,N\)的砝码。有\(M\)次比较操作,每次比较砝码\(A_{i}\)和\(B_{i}\),\(A_{i}\)在左侧。分为三种情况:左边的砝码更重。右边的砝码更重。两边的砝码重量相同。将每次比较的......
  • CF878E 题解
    CF878ENumbersontheblackboard题解Links洛谷CodeforcesDescription给出\(n\)个数字,每次询问一个区间\([l,r]\),对这个区间内部的点进行如下操作。每次操作可以合并相邻两个数\(x,y\),用\(x+2y\)替换它们。对于每次询问,输出当最后只剩下一个数字时,这个数字的最大......
  • CODE FESTIVAL 2017 Final J 题解
    problem&blog。萌萌点分治,积累个trick/qq。对于完全图\((V,E)\),将\(E\)分成\(E_1,E_2,\cdots,E_k\)(\(E_1\cupE_2\cup\cdots\cupE_k=E\))。对每个边集求MST,得到新边集\(E_1^{'},E_2^{'},\cdots,E_k^{'}\),再求MST。最终剩下的边集,等同于原边集的MST。......
  • P4016题解
    本题是一个比较经典的问题(环形均分纸牌问题),我也不知道为什么它在网络流24题里面出现。但是作为一道比较典的排序算法的题,还是放出来讲一下。solution假设\(a_1\)给\(a_n\)了\(x_1\)张纸牌,\(a_2\)给\(a_1\)了\(x_2\)张纸牌......(\(x_i\)可正可负)。因此操作数量为......
  • P2886题解
    题目大意给定起点\(S\)和终点\(T\),求从起点到终点恰好经过\(N\)(\(N\)给定)条边的最短路径。solution发现本题点数巨多,但是边数小到可怜,我们可以只保留了一部分点,先判断连通性,不连通直接输出即可。当\(S\)和\(T\)连通时,我们设\(G^k\)为经过\(k\)条边后最短路的邻......