首页 > 其他分享 >The solution of P5339

The solution of P5339

时间:2023-11-08 16:15:07浏览次数:32  
标签:P5339 sum 容斥 solution times 枚举 复杂度 式子

problem


容斥好题,结果题解里面一堆 \(\text{NTT}\)。

如果我们去掉有多少个人喜欢什么东西的条件,那么这个题就直接枚举有 \(i\) 组同学会一起讨论蔡徐坤。这一个问题十分容易。

使用容斥原理来做,然后容斥的系数是 \((-1)^i\) 想必这个东西对于大家来说是十分简单的。

如果我们加上这些条件,我们还是可以这样想。当有 \(i\) 组人讨论时,那么就有 \(n - 4 \times i\) 个人没在讨论。然后枚举排列即可。

所以式子就是:

\[\sum^{n - 4 \times i}_{a = 0} (^{n - 4 \times i}_{\ \ \ \ \ a}) \sum^{n - 4 \times i - a}_{b = 0} (^{n - 4 \times i - a}_{\ \ \ \ \ \ \ \ b}) \sum^{n - 4 \times i - a - b}_{c = 0} (^{n - 4 \times i - a - b}_{\ \ \ \ \ \ \ \ \ \ c}) \]

意思就是选唱,跳,rap,篮球分别有几个人,然后分配位置。

然后我们发现这个式子不优化的复杂度为 \(O(n^3)\),用前缀和优化之后依然是 \(O(n^2)\) 的。由于我们还要枚举一层 \(i\),所以时间复杂度就是 \(O(n^3)\)。肯定会 \(\text{TLE}\) 所以我们需要优化。

我们可以想如果我们可以把 \(n\) 个人先分成两组,一组是唱和跳,另一组是rap和篮球。这样分后我们就可以用组合数算出求出答案了。

所以我们可以把式子改成这样:

\[\sum^{n - 4 \times i}_{j = 0} (^{n - 4 \times i}_{\ \ \ \ \ j}) (\sum^{j - (b - i)}_{k = a - i} (^j_k) \times \sum^{n - 4 \times i - j - (c - i)}_{l = d - i} (^{n - 4 \times i - j}_{\ \ \ \ \ \ \ \ l})) \]

所以上面的式子直接求就可以做到 \(O(n^2)\) 的复杂度,然后再利用前缀和优化一下就可以变成 \(O(n)\)。

由于需要在枚举一层 \(i\) 所以最终的复杂度为 \(O(n^2)\)。


code

标签:P5339,sum,容斥,solution,times,枚举,复杂度,式子
From: https://www.cnblogs.com/Carousel/p/17817616.html

相关文章

  • Adding custom code to Local Reports in Visual Studio.NET 2005 (Problems & Soluti
    AddingcustomcodetoLocalReportsinVisualStudio.NET2005(Problems&Solutions)IfyouareoneofthepeoplewhousedandenjoyedSQLServerReportingServices(SSRS)inSQL2000andyouwantedtouseitinyourwindows/webapplicationswithou......
  • The Solutions of Ocean Trash
    10ThingsYouCanDotoSavetheOcean1.MindYourCarbonFootprintandReduceEnergyConsumptionReducetheeffectsofclimatechangeontheoceanbyleavingthecarathomewhenyoucanandbeingconsciousofyourenergyuseathomeandwork.Afew......
  • 2023CVPR_Spatial-Frequency Mutual Learning for Face Super-Resolution
    一.Network:SFMNet1.网络采用U-Net结构,其中SFMLM-i是不同分辨率的每层结构2.SPB是空域分支,FRB是频域分支,分别经过FRB和SPB的两个分支信息经过FSIB分支进行信息的融合3.FRB结构:classFreBlock9(nn.Module):def__init__(self,channels,args):super(FreBlo......
  • CF390B Inna, Dima and Song Solution
    转裁自我的洛谷博客:https://www.luogu.com.cn/blog/653832/solution-cf390b题目传送门思路:如果$b_i\le1$则无解。如果ceil((double)b[i]/2)>a[i],即最好情况下,两个人的音量平均,但是较大的音量还是大于$a_i$。那么也是无解的。否则,要使他们的乘积最大,两个数就要尽量接......
  • Viper —— configuration solution for Go
    1.supportseveralformatsofconfigurationconfig.yamlname:'bobby'port:12334main.gotoquickstart packagemainimport("fmt""github.com/spf13/viper")typeServerConfigstruct{ServiceNamestring......
  • Solution to OpenSSL Connection Problems With Github
    ProblemsUploadingFileswithGitSometimeswecanusegittooltosuccessfullyuploadprojectstoGithub,butinothertimeespeciallyafteraperiodofconfiguration,weoftenmeetthefollowingerror:OpenSSLSSL_read:Connectionwasreset,error10054......
  • Practice Assessment for Exam AZ-400: Designing and Implementing Microsoft DevOps
    https://learn.microsoft.com/en-us/credentials/certifications/exams/az-400/practice/assessment?assessment-type=practice&assessmentId=56 Themostsecurewaytopasssecretstoruncommandsistoreferencethemasenvironmentvariables,ratherthana......
  • Autofac.Core.DependencyResolutionException-DefaultObjectMapper
    异常: 解决方法在模块配置AutoMapper的配置文件处修改validate参数的值true改为false ......
  • Solution
    谁共一杯芳酒按\(l\)从大到小为第一关键字,\(r\)从小到大为第二关键字排序,以\(r\)为权值求最长不下降子序列即可。代码#include<cstdio>#include<vector>#include<queue>#include<cstring>#include<iostream>#include<algorithm>#include<ctime>#include<......
  • The solution of P9194
    10黑寄。problem&blog考虑到处理加边并不简单,所以我们可以考虑一个黑点\(p\),连边\((u,p)(p,v)\)。考虑在现在这棵树上连个点在原图中有变相连相当于有一个公共的\(p\)是它们的邻居。于是删边操作等价于将一个点的儿子黑点并到父亲黑点上。为了统计答案我们设\(x\)为......