首页 > 其他分享 >Codeforces Round 903 (Div. 3)

Codeforces Round 903 (Div. 3)

时间:2023-10-13 23:14:13浏览次数:34  
标签:903 因数分解 格子 一个 Codeforces 简单 Div dp 回文

D题被hack了

哭了

第一题简单的
只用把字符串重复的同时尝试匹配,然后判断就好了,只是需要一点代码能力

第二题,也很简单
最多剪断3次,就先从小到大排序,然后用最小的,看看大的是他的几倍,如果不是几倍的关系就不可能完成,如果是就算要几次就好了

第三题,也很简单,很明显,对于一个格子,在它旋转90度后,它需要与转到的地方的格子相同,但是这个格子也同样被旋转了
所以它要与它转到的位置相同,所以这就是一个环,我们需要让这个换上4个位置的格子都相等,这是唯一合法的情况

第四题,一个简单的质因数分解,但是我的代码可能细节没做好,导致被卡常数了。。
很明显,我们每一次操作都把一个数字除掉再给另一个乘上,这个操作的最小单位就是质数。
所以我们就把每一个数字质因数分解,然后计算每一个质因数出现了几次
如果这个数列能够通过这种操作来让每一个数字相等,那每一个质因数出现的次数都应该是n的倍数次

第五题,稍微有点难度了
一个被设计的很简单的dp,我们设f[i]表示从n到i保证合法时操作的最小次数
那很明显,转移就是f[i] = f[j] + j - i + 1 - a[i] (j > i)
转移方程就是f[i] = min(f[j] + j) - a[i] - i + 1 , (a[i] + i - 1 <= j <= n)
然后发现决策集合时从后往前单调增加元素的一个最小值,可以直接维护
但是这一题是我队友写的,最近增在dp复健,所以后面应该会专门写一篇博客来分析这题还有下一题(都是dp

那第六题我暂时还不会,下一篇博客讲

 

第七题也稍微有点难度

题目要求区间修改和查询区间内是否有回文串
乍一想是有点难的
但是仔细想想,我们其实完全不关心每一个回文串的长度,而是只关心回文串是否存在
一个回文串是否存在是由其中心是否存在决定的
所以我们对于每一次修改,其实只需要关注它修改的边界部分是否会创造或者是破坏中心
而中心的判断是O(1)的
对于区间查询,我们就直接用直接统计区间内存在几个回文串中心就好了

直接线段树维护,要两颗,一棵是a[i],一棵维护中心数量
那就是O(nlogn)
解决

可惜时间不够了(两个人都时间不够,还是太菜了。。。。)

标签:903,因数分解,格子,一个,Codeforces,简单,Div,dp,回文
From: https://www.cnblogs.com/HLZZPawa/p/17763489.html

相关文章

  • Codeforces Round 674 (Div. 3) B. Symmetric Matrix
    有\(n\)块\(2\times2\)的瓷砖,瓷砖上的每个方格包含一个数字,每种瓷砖都有无数种。现在需要用所给瓷砖构造一个\(m\timesm\)的方形矩阵\(a\)满足:每块瓷砖都在方形矩阵内瓷砖之间不能存在覆盖\(a_{i,j}=a_{j,i}\)。输出是否存在这种构造。一:显然合法的\(m\)......
  • Codeforces Round 903 (Div. 3)
    D.DivideandEqualize思路:1.某个数除以x,某个数再乘以x,可发现数组总的乘积没有变化2.也就是说,要使数组中的每一个元素相同,它们总的质因子应该满足:某个质因子的数量%n==0E.BlockSequence简单的dpdp[i],表示删除这个数字后的最小删除次数可以正的枚举,也可以倒着来转移方程......
  • Codeforces Global Round 11 A. Avoiding Zero
    给一个大小为\(n\)的数组\(a_1,a_2,\cdots,a_n\)。你需要构造一个大小为\(n\)的数组\(b\)且满足以下条件:数组\(b\)是数组\(a\)的冲排列对于\(\forallk=1,2,\cdots,n\),\(\sum_{i=1}^{k}b_i\neq0\)。输出任意一组构造,或者回答不可能。若\(\sum_{i......
  • Educational Codeforces Round 96 (Rated for Div. 2) A. Number of Apartments
    有三种建筑:三室厅、五室厅、七室厅。每个房间严格有一扇窗户。现在有\(n\)扇窗户,询问完全用完这些窗户的情况下,\(3,5,7\)室厅各有多少间。输出任意一种答案,或者回答不可能。假设一定有解,显然可以选择\(mod\)任意一个数贪心,不妨选最小的\(3\)。假设答案为\(a,b,c\):......
  • Codeforces Round 677 (Div. 3) C. Dominant Piranha
    有\(n\)只水虎鱼在水族馆,大小为\(a_1,a_2,\cdots,a_n\)。一只水虎鱼被称为是主导的,当它可以吃掉水族馆中其他所有水虎鱼。其他水虎鱼不会有任何行动。一只水虎鱼只可以吃掉当前与它相邻并且体型严格比它小的水虎鱼。当大小为\(x\)的水虎鱼吃掉大小为\(y\)的水虎鱼时,......
  • Codeforces 512D. Fox And Travelling 题解
    FoxAndTravelling题面翻译给定一张\(n\)个点\(m\)条边的无向图。一个点只有当与它直接相连的点中最多只有一个点未被选择过时才可被选择。询问对于每个\(k\in[0,n]\),有序选择\(k\)个点的方案数。\(n\le100\),\(m\le\frac{n(n-1)}2\),答案对\(10^9+9\)取模。......
  • Codeforces Round 684 (Div. 2) B. Sum of Medians
    定义\(median\)是一个非降序数组中第\(\lceil\frac{n}{2}\rceil\)的数。数组从\(1\)开始标号。给两个数\(n\)和\(k\),并给出一个长为\(nk\)的数组\(a\)。需要分出为\(k\)个大小为\(n\)的数组,每个元素需要被严格分入一个数组中。需要让\(k\)个数组的中位数......
  • Codeforces Round 685 (Div. 2) B. Non-Substring Subsequence
    对于一个长为\(n\)的\(01\)字符串\(s\)有\(n\)个询问。第\(i\)个询问被\(l_i,r_i\)描述\(1\leql_i<r_i\leqn\)。对于每个询问,你需要确定\(s\)中是否存在一个子序列等同于子串\(s[l_i\cdotsr_i]\)。显然子序列可以和子串仅有一个字符不相同。于是\(s......
  • Codeforces Round 690 (Div. 3) C. Unique Number
    给一个正整数\(x\),需要构造一个最小的正整数\(n\)使得\(\sumdigt(n)=x\),并且\(\foralli\neqj,digt(n)_i\neqdigt(n)_j\)。首先观察到\(0\)没有贡献,且会增加位数,所以不能有\(0\)。由于每个数位只能出现一次,显然合法的\(x\)范围为\([0,\sum_{i=1}^{9}i]......
  • TopCoder 15903 EllysNim
    TopCoder15903EllysNim(https://vjudge.net/problem/TopCoder-15903)\(n\)看似有点东西,实际上就只是一个贪心。。。设\(i\)表示第\(i\)位,且\(i\)从\(0\)开始计数那么我们肯定是让\(i\)从高位到低位枚举,若当前位的异或值为\(1\),想办法让它变成\(0\)且不会改变更高位的异或值......