P10185 [YDOI R1] Necklace

容易写出答案为:

\[\large\sum\limits_{i=1}^n\Big(2^{S-a_i}\sum\limits_{j=1}^{a_i}(C_{a_i}^j\times v_i^j)\Big)
\]

其中 \(S\) 为 \(a_i\) 之和。

解释:第 \(i\) 种珠子被选 \(j\) 次时,其他种类的珠子可以随意选择(\(2^{S-a_i}\)),\(i\) 种类的珠子从 \(a_i\) 中选 \(j\) 个(\(C_{a_i}^j\)),产生 \(v_i^j\) 的贡献。

内部的 \(\sum\) 不是非常好求,不过我们有二项式定理:

\[\large(a+b)^n=\sum\limits_{i=0}^n C_n^i\times a^i\times b^{n-i}
\]

那么我们可以尝试化成二项式定理的形式:

\[\large\begin{aligned}
&\quad\sum\limits_{j=1}^{a_i}(C_{a_i}^j\times v_i^j\times 1^{a_i-j})\\
&=(v_i+1)^{a_i}-1
\end{aligned}\]

快速幂即可解决。

于是答案就是:

\[\large\sum\limits_{i=1}^n\Big(2^{S-a_i}\times ((v_i+1)^{a_i}-1)\Big)
\]

时间复杂度 \(O(n(\log n+\log S))\)。

点击查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=2e5+10,P=1e9+7;
int n,a[N],v[N],s,ans;
int qp(int a,int n){
int f=1;
while(n){
if(n&1) f=f*a%P;
a=a*a%P,n>>=1;
}
return f;
}
signed main(){
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i],s+=a[i];
for(int i=1;i<=n;i++) cin>>v[i];
for(int i=1;i<=n;i++){
(ans+=(qp(v[i]+1,a[i])-1+P)%P*qp(2,s-a[i]))%=P;
}
cout<<ans<<"\n";
return 0;
}

[题解]P10185 [YDOI R1] Necklace的更多相关文章

  1. R1题解

    估分 大佬们都去写题解了,我不写可能会被老师训诶.... 预计分数:100 + 100 + 5 + 100 + 25 + 100 = 430 实际 :80 + 100 + 0 + 100 + 25 + ...

  2. 题解 P1203 【[USACO1.1]坏掉的项链Broken Necklace】

    [USACO1.1]坏掉的项链Broken Necklace 22892 破碎的项链 方法一:很容易想到枚举断点,再分别两头找,但是要注意很多细节 #include<iostream> # ...

  3. 题解【UVA10054】The Necklace

    题目描述 输入格式 输出格式 题意简述 有一种由彩色珠子连接而成的项链.每个珠子的两半由不同颜色组成.如图所示,相邻两个珠子在接触的地方颜色相同.现在有一些零碎的珠子,需要确认它们是否可以复原成完整的 ...

  4. 【dog与lxy】8.25题解-necklace

    necklace 题目描述 可怜的dog最终还是难逃厄运,被迫于lxy签下城下之约.这时候lxy开始刁难dog. Lxy首先向dog炫耀起了自己的财富,他拿出了一段很长的项链.这个项链由n个珠子按顺序 ...

  5. SDOI2021集训 R1 半夜 题解

    先贴两个博客:ajthreac yspm,建议结合起来看 \(O(n^3)\):对 \(XX\) 每个长度为 \(n\) 的字串与 \(Y\) 跑 LCS.设 \(f[i,j,k]\) 表示 \(X[ ...

  6. LuoguP7127 「RdOI R1」一次函数(function) 题解

    Content 设 \(S_k\) 为直线 \(f(x)=kx+k-1\),直线 \(f(x)=(k+1)x+k\) 与 \(x\) 轴围成的三角形的面积.现在给出 \(t\) 组询问,每组询问给定一 ...

  7. [题解]UVA10054 The Necklace

    链接:http://vjudge.net/problem/viewProblem.action?id=18806 描述:给出一堆珠子,每个珠子有两种颜色,有一端颜色相同的珠子可以串在一起,问是否可以把 ...

  8. lg7335 [JRKSJ R1] 异或 题解

    本题的标签中含有trie,但是这道题可以不用trie做. 考虑列出本题的dp方程:设\(f_{k,i}\)表示前\(i\)个数选了\(k\)段的答案,\(s_i\)为数组的前缀异或和 当不选择第\(i ...

  9. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  10. 2016 Multi-University Training Contest 1 H.Shell Necklace

    Shell Necklace Time Limit: 16000/8000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

随机推荐

  1. MySQL order by if()或order by in()条件排序

    需求背景    在做商品管理的时候,碰到一个SQL的排序问题,需要把上架的商品排在下架商品之前.一番折腾后,搜索到了条件排序语句 order by if(),小编在此和大家分享一下.本文测试数据存在如 ...

  2. Java 集合框架底层数据结构实现深度解析

    Java 集合框架(Java Collections Framework, JCF)是支撑高效数据处理的核心组件,其底层数据结构的设计直接影响性能与适用场景.本文从线性集合.集合.映射三大体系出发,系 ...

  3. Linux安装dotnet运行时

    Centos Linux 安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库. 打开终端并运行以下命令: sudo rp ...

  4. Coze工作流实战:一键生成鸡汤视频——厉害的人,早已戒掉情绪

    导航 前言 工作流生成鸡汤视频的效果 操作步骤 调试 下载草稿 用剪映打开草稿 结语 参考 前言 也许大部分人,能够静下心来看书的时间基本集中在高中阶段,少数人进入大学后可能还回坚持阅读. 在进入职场 ...

  5. Luogu P8479 「GLR-R3」谷雨

    题传 upd on 2023.10.03 补充了代码以及一些实现细节. 自己写的关于这类剖分方法的 \(blog\) 题意简述 称一条链和与其有连边的点 构成的点集 为 "毛毛虫" ...

  6. java--集合List、ArrayList、Linkedlist的应用

    Collection 迭代器的作用 迭代器的作用:就是用于抓取集合中的元素. 迭代的方法:toArray() .iterator() 迭代器的方法(一共就这3个): hasNext() 问是否有元素可 ...

  7. 红米k40刷类原生系统

    下载相关文件 下载系统 这里是下载地址 (推荐)也可以按照手机代号,找到本文所需的所有资源,比如我找到的k40的所有资源 下载和安装相关驱动 进FASTBOOT 在已开机的情况下,连接电脑执行命令即可 ...

  8. 前端开发系列123-进阶篇之generate Virtual-DOM

    本文介绍通过 render函数创建DOM的基本过程(仅仅核心部分),更多的细节也可以参考 Vue 框架源码自行探索 . Render => Virtual-DOM /* 模拟数据 */ func ...

  9. Feature Preserving Octree-Based Hexahedral Meshing

    Feature Preserving Octree-Based Hexahedral Meshing 论文阅读 作者映入了一种新的算法尝试去产生一个纯粹的六面体网格并且不带有自交和正值雅克比.CAD模 ...

  10. pycharm + anaconda 安装包

    简介 windows 开发环境比linux 环境 复杂这是不言而喻的 但是 anaconda 和 pycharm 却能很好的解决开发环境问题 参考链接 使用 anaconda 安装包 https:// ...