做题记录--CF 板子题 2023.9.10

1374D. Zero Remainder Array Problem - 1374D - Codeforces

给定一个正整数 k。称一个长度为 n 的正整数序列 1,...,a1​,...,an​ 是好的当且仅当对于每个 ai​ 都有 k 整除 ai​。

现在给定了这个数组 a。有一个变量 x,初始时为 00。将进行若干次操作,每次操作如下:

  • 选择一个 (1≤i≤n),然后令 ai​=ai​+x;或者什么都不做;
  • 令 x=x+1。

问至少多少次操作后能把 a 变成好的

思路

水题,实际上x可以视为0~k-1的循环,先求出每个数与k的倍数的最小差值k-a%k,再按差值统计各差值的出现次数,map[k-a%k]++

对于每个统计量 ans=max(ans,(map[x]-1)*k+x+1)

1375C. Element Extermination Problem - 1375C - Codeforces

给定一个 1 到 n 的排列 a。在一次操作中,你可以选择一个满足 ai​<ai+1​ 的下标 (1≤i<n),删除 ai​ 或ai+1​。

你需要求出是否可能通过若干次操作使得 a 只剩下一个元素。

思路

优先栈?

1)为空时直接放入,a[i]<a[i-1]时直接放入

2)对于a[i]>a[i-1]的情况分两种第一种不放入①,第二种将栈内小于a[i]的元素全部弹出后放入②

分两部分模拟,两部分的分界点为“当前位之后是否有比自己小的数”

对于前半部分使用①,后半部分使用②。

前半部分维护一个递减序列。在后半部分一次性弹出。

1350B. Orac and Models Problem - 1350B - Codeforces

给出一个长度为 n 的序列 a,并令 s 为a 的子序列,posi​ 为 si​ 在原序列里的位置
当且仅当sj​<sj+1​ 且 posj+1​%posj​==0时,序列 s 是美丽的

你需要求出序列 a 的最长的美丽子序列的长度

思路

 dp题,求最长“美丽”子序列

模拟即可,对于当前位置cur,对每个x*cur位置,判断是否满足s[x*cur]>s[cur],若满足说明存在一个子序列

状态转移方程

FOR(i,1,n)
        for (int j = i*2; j <=n ; j+=i)
                if(a[j]>a[i]) dp[j]=max(dp[j],dp[i]+1);

1285C. Fadi and LCM Problem - 1285C - Codeforces 

  • 输入一个整数 X。
  • 输出使 max(a,b) 最小的任意一组 a,b,其中lcm(a,b)=X。

思路

水题,数据出的不行

由于只有一个数据,且X<10^{12{^{}}},可以直接暴力搜索sqrt(x)~1。

1542B. Plus and Multiply Problem - 1542B - Codeforces

有一个无穷大的正整数集合 S,该集合按下面所述方法生成:

  • 数字 1 在集合 S 中。

  • 若数字 x 在该集合中,那么数 x×a 和数 x+b 均在集合 S 中。(其中 a 与 b 为给定常数)

现在给出数 n,a,b,请判断 n 是否在集合 S 中(此处给出的 a 与 b 就是上述集合生成方法中的 a 和 b),若在请输出 Yes,否则输出 No

思路

可以看出(x+n*b)*ma=x*ma+(b+b+b+...),有这一条可以假设所有数都可以递归的拆分为多项式

                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        a^i+j*b

也就是说两操作顺序没有意义,可以直接将序列中的每个数视为a^i+j*b

那么当a≠1时,可以遍历i,再判断是否有j使公式满足。

当a=1时,式子只有唯一解。

小结:大胆假设,小心求证(想不出来直接莽)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值