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. HashMap知识点梳理、常见面试题和源码分析

      本博客是包括HashMap在内的相关知识点博文链接的入口,从介绍哈希表的基本概念开始,到HashMap的应用.实现原理和常见面试题,包括分析其源码,还包括相关知识点的延伸,例如HashSet等. ...

  2. 使用Vditor将Markdown文档渲染成网页(Vite+JS+Vditor)

    1. 引言 编写Markdown文档现在可以说是程序员的必备技能了,因为Markdown很好地实现了内容与排版分离,可以让程序员更专注于内容的创作.现在很多技术文档,博客发布甚至AI文字输出的内容都是 ...

  3. centos7环境配置(防火墙,git,nodejs,redis,nginx)

    一台新的云服务器,如何配置基础环境: 0. 更新软件包和存储库 sudo yum update -y 1. 防火墙设置 # 启动防火墙 systemctl start firewalld # 查看防火 ...

  4. C#/.NET/.NET Core技术前沿周刊 | 第 41 期(2025年6.1-6.8)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  5. HarmonyOS Next快速入门:为什么学习HarmonyOS NEXT?

    鸿蒙基础知识##HarmonyOS Next快速入门## 点击跳转<HarmonyOS Next快速入门>视频教程 学习HarmonyOS NEXT的原因主要有以下几点: 一.技术前沿与创 ...

  6. 如何在FastAPI中玩转WebSocket消息处理?

    扫描二维码 关注或者微信搜一搜:编程智域 前端至全栈交流与成长 发现1000+提升效率与开发的AI工具和实用程序:https://tools.cmdragon.cn/ 一.文本消息接收与发送 # 运行 ...

  7. C# 关于 &符号字符串转对象

    string respDataJson = "A=&B=2&C=asdfasdf"; string respDataJson = "A=&B=2& ...

  8. node: /lib64/libm.so.6: version `GLIBC_2.27' not found

    场景 cent os7服务器使用nvm安装的node之后,只要使用npm或者node,均会出现以下问题 [root@172 ~]# npm -v node: /lib64/libm.so.6: ver ...

  9. CF1928E Modular Sequence 题解

    CF1928E Modular Sequence 考虑合法的答案的构成为一个 \(x,x+y,\dots x+ky\) 的块加上若干个 \(x\bmod y,x\bmod y+y,\dots x\bm ...

  10. Codeforces Round #669 ABC 题解

    A. Ahahahahahahahaha 题意:给个一个偶数长度的01序列,要求删除不超过2/n个元素使得奇数位和等于偶数位和. 思路:注意到题目给的提示,只有0和1,且为偶数长度. 那么对和有贡献的 ...