• 2024-05-23【CodeChef】Change A to B(贪心)
    题目大意:每次操作可以使\(a\)变成\(a+1\)或\(a\cdotk\),问将\(a\)变成\(b\)最少需要几次操作。将题目等价转化为,将\(b\)变成\(a\)最少需要几次以下操作:操作1:将\(b\)变成\(b-1\)。操作2:如果\(b\)能被\(k\)整除,将b变成\(\frac{b}{k}\)。考虑贪心,当能够使用操作2时优先使用操作
  • 2024-05-16【CodeChef】Prison Escape(最短路)
    题目大意:给出一个01矩阵,求每个0移动(每次可以向有公共边的格子移动一步)到矩阵边界至少要经过多少个1。考虑建最短路模型,将矩阵中的每个位置拆分为入点和出点,矩阵外部设为一个点。枚举矩阵中的每个位置:如果这个位置在矩阵边界,矩阵外部向这个位置的入点连一条长度为0的边。
  • 2024-05-16【CodeChef】3out1in(优先队列)
    题目大意:给出数组a,问对于所有满足\(1\lek\len\)的奇数\(k\),\(f([a_1,a_2,...,a_k])\)的值。\(f([a_1,a_2,...,a_n])\)的值为对数组\([a_1,a_2,...,a_n]\)进行\(\frac{n+1}{2}\)次操作(选择数组中的三个元素,将其中一个取相反数,然后让它们合并成一个元素)后,数组最后剩下元素的最大
  • 2024-05-16【CodeChef】Origin(数论)
    题目大意:\(f(x)=\begin{cases}x,1\lex\le9\\f(x的各数位之和),x>9\\\end{cases}\)求\(\sum_{i=1}^{n}f(i)\)。根据打表找规律,我们会发现\(f(x)=(x-1)\bmod9+1\)。所以\(\sum_{i=1}^{n}f(i)\)\(=\sum_{i=1}^{\lfloor\frac{n}{9}\rfloor\cdot9}f(x)+\sum_{i=\l
  • 2023-08-14Codechef - Longest AND Subarray(位运算)
    题目大意  给定一个正整数N,其序列为[1,2,3,...,N],找到一个长度最大的连续子列,使得其所有元素取与运算的结果为正(最终输出只需要输出最大长度即可)。 思路  刚开始可能并不好注意到,可以举一些小的样例来找规律。比如2:1&2=0,不满足条件,所以只能取长度为1的数组[1]或
  • 2023-08-13Codechef - N Triplets(构造+观察)
    题目大意  对于一个正整数N,需要找到三个不同的数字A,B,C,使得三个数当中任意两个数字相乘都是N的约数,另外还要使得A,B,C三个数字乘积是N的整数倍数。最后输出三个数字(如果有多种组合,输出任意一种即可),如果找不到满足条件的则输出-1。 思路  注意到1必然是其中一个约数,另外我们
  • 2023-01-12codechef Starters73
    https://www.codechef.com/START73A?order=desc&sortBy=successful_submissionsHamiltonianTree手玩一下走哈密顿路的过程,一定是,走一条树上路径,然后走过新加的边,再到另
  • 2022-12-30Codechef 2500+ problems
    TAEDITOR题目描述你需要维护一个字符串,支持插入字符串和查询子串。大体思路题解给的是BIT。然而事实上,这题相当于维护一个序列,支持区间插入和区间查询。这就是文艺
  • 2022-11-23Codechef-Cringe Queries
    这题的代码很短,但是建模很有思维含量,好题,记录一下题意:给定n,q,表示一个数组长度为n(初始下标从1开始),初始时全为0总共有q种操作,每个操作给定一个区间[l,r]表示可以将
  • 2022-11-17SoS乱草
    网上管这玩意叫SoS,但我寻思这不就是FWT吗,不过容斥的思想还是可以的。写了点水题CF1208F先预处理$F(x)=\max{\arg((d_j\and\d_k)=x)}$,然后枚举一个\(d_
  • 2022-10-25CodeChef Match the Streams
    题目链接:​​传送门​​题目中的pdf翻译:题目描述:给定两个序列和。定义序列和的相似度为满足的下标的数量。你需要回答个询问。每个询问给定参数,你需要将更改为,然后计算序
  • 2022-10-25CodeChef SHGAME
    #include<bits/stdc++.h>#defineintlonglongusingnamespacestd;inttong1[2323233],tong2[2323233];signedmain(){intT;cin>>T;while(T--)