首页 > 其他分享 >CF 840 C

CF 840 C

时间:2023-09-19 22:25:25浏览次数:30  
标签:cnt 颜色 相同 840 CF times col dp

不是很难的一题,但是我模数写成了 \(998244353\)。

submission

首先,\(xy=a^2,yz=b^2 \implies xz=c^2\ (a,b,c\in \mathbb{Z})\)。也就是说有传递性。

所以,rephrase the problem:

有 \(N\) 个球,每个球有一个颜色,问有多少排列,满足没有同种颜色的球相邻?

先把颜色排序。

设 \(dp_{i,j,k}\) 表示考虑到 \(i\),有 \(j\) 个和 \(i\) 颜色不同的相同相邻的球,有 \(j\) 个和 \(i\) 颜色相同的相同相邻的球。

分类讨论即可。

  • \(col_i\neq col_{i-1}\)

    • \(i\) 在不同颜色球之间:
      \(dp_{i,j,0}+=dp_{i-1,j-k,k}\times{(i-j)}\)
    • \(i\) 在相同颜色球之间:
      \(dp_{i,j,0}+=dp_{i-1,j-k+1,k}\times (j+1)\)
  • \(col_i= col_{i-1}\),令 \(cnt\) 为已经出现了多少个 \(i\) 颜色(不包含 \(i\))

    • \(i\) 在与 \(i\) 相同球旁边:
      \(dp_{i,j,k}+=dp_{i-1,j,k-1}\times (2\times cnt-k+1)\)
    • \(i\) 在与 \(i\) 不同球中间,两边求相同:
      \(dp_{i,j,k}+=dp_{i-1,j+1,k}\times (j+1)\)
    • \(i\) 在与 \(i\) 不同球中间,两边求不同:
      \(dp_{i,j,k}+=dp_{i-1,j,k}\times (i-2\times cnt+k-j)\)

标签:cnt,颜色,相同,840,CF,times,col,dp
From: https://www.cnblogs.com/SFlyer/p/17715933.html

相关文章

  • CF1870 div1+div2做题记录
    A题面挺蠢的,无解条件为\(n<k\)或\(x<k-1\),即\(\mathop{\mathrm{mex}}\not=k\)。先选\(0\simk-1\),再选能选的最大值,当\(x=k\),选\(x-1\),否则选\(x\)。点击查看代码#include<bits/stdc++.h>#defineullunsignedlonglong#definelllonglong#definepiipai......
  • CF1808E1 Minibuses on Venus (easy version)
    原题翻译一道数位\(dp\)题记\(S=\sum_{i=1}^{n}{a_i}\),原题即要求是否存在\(i\)满足\(S-a_i\equiva_i(\modK)\)移项得\(S\equiv2a_i(\modK)\)因此我们考虑枚举\(2a_i\)的值记作\(sm\),设\(dp_{i,j,0/1}\)表示前\(i\)个数,和为\(j\),有/没有\(2a_i\modK=sm\)转......
  • 【题解】CF1817 合集
    CF1817AAlmostIncreasingSubsequence考虑几乎上升的序列的长度,就是我们的区间长度减去\(a_{i-2}\geqa_{i-1}\geqa_i\)的对数,然后维护即可,当然个人感觉自己的代码有点长,可以考虑看洛谷题解代码code:#include<bits/stdc++.h>usingnamespacestd;constintNN=2e5+......
  • CF840C 题解
    一、题目描述:给你一个长度为$n$的序列$a_1\sima_n$,$0\lea_i\le1\times10^9$。求有多少种$1\simn$的全排列$b$,使得对于$i\in[2,n],a_{b_i}\timesa_{b_{i-1}}$不是完全平方数。本题中完全平方数的定义:若存在某个整数$k$,使得$k^2=x$,则$x$是一个......
  • 9.18CF1817题解
    9.18CF1817题解A.AlmostIncreasingSubsequence题意给定长度为\(n\)一个序列\(a\)以及\(q\)次询问,每次询问给出\(l\)和\(r\),找出序列\(a\)在\([l,r]\)内最长的几乎递增子序列。对于几乎递增的定义:如果一个序列中不存在连续的三个数\(x\),\(y\),\(z\),使得\(x\g......
  • CF980C Posterized
    先来吐槽一下这个sb翻译,根本就没做过题吧……大概就是让你给值域分成连续的几组,每组大小不能超过\(k\),然后将序列中的值全部替换成其组内的最小值,要使得序列的字典序最小。从前往后考虑,对于当前还未处理过的第一个值,找到能包含它的最小值,然后将中间这一段归入最小值的组内。......
  • cf1869 div.1,div.2做题记录
    赛时总结div.2A题面对于任意一个区间,我们可以通过一次操作将区间内的数变得全部相同。如果区间内的全部数都相同,那么我们再做一遍区间操作,当这个区间长度为偶数时,区间异或和为\(0\),会清空区间;当区间长度为奇数时,区间内的数不会发生改变。但我们可以将一个长度为奇数的区间拆成......
  • 将vcf文件转成孟德尔随机化分析格式
    以https://gwas.mrcieu.ac.uk/datasets/ukb-b-7330/为例:原始文件形如:转换代码library(vcfR)getwd()a_data=read.vcfR('../ukb-b-7330.vcf.gz')str(a_data)head(a_data$meta,12)head(a_data@fix)head(a_data@gt)fix=as.data.frame(a_data@fix[,(1:5)])gt=as......
  • [CF235D] Graph Game
    GraphGame乌克兰逃兵在线发题解。好像要用期望去推,但是像我这种看到序列的期望题只想得到线性性的弱鸡只能感理了。我们把点分治过程当成点分树,y能在x被爆时做贡献当且仅当y为x的子树。先考虑树的情况。考虑把遍历t的次数分到单个点上发现仅当x为x->y路径上......
  • CF1858E1 做题笔记
    题目链接赛时没做出来,晚上补了一下,发现是一种很好玩的数据结构。由于可以离线又要支持删除后$k$个又要支持撤销操作,不会写主席树只能选择操作树。对序列按照时间建成一颗操作树,处于某个点的回合时,这个序列的样子就是它以及它的祖先。来依次考虑某个操作,设当前是序列的末尾......