题目名称 2032. [ZLXOI 2015]沼跃鱼数列变换
输入输出 Marshtomp.in/out
难度等级 ★★☆
时间限制 1000 ms (1 s)
内存限制 512 MiB
测试数据 10
题目来源 GravatarSatoshi 于2015-08-31加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:12, 提交:18, 通过率:66.67%
GravatarNVIDIA 100 0.015 s 0.34 MiB C++
Gravatar农场主 100 0.039 s 1.54 MiB C++
GravatarFoolMike 100 0.040 s 1.15 MiB C++
GravatarKZNS 100 0.041 s 0.70 MiB C++
Gravatarwmez 100 0.044 s 1.82 MiB C++
Gravatarmikumikumi 100 0.045 s 1.15 MiB C++
GravatarSatoshi 100 0.049 s 2.70 MiB C++
Gravatar梦那边的美好ET 100 0.062 s 15.18 MiB C++
Gravatar瑆の時間~無盡輪迴·林蔭 100 0.071 s 14.52 MiB C++
Gravatar小明 100 0.087 s 0.94 MiB C++
本题关联比赛
ZLXOI2015Day2
关于 沼跃鱼数列变换 的近10条评论(全部评论)
看帖子和代码终于看懂了
GravatarNVIDIA
2017-07-01 13:20 4楼
无聊的计数数学题!
GravatarFoolMike
2016-11-29 13:53 3楼
2星半?!..恩.....刷分利器!
Gravatar四季木哥
2015-09-24 18:07 2楼
前排围观业界毒瘤zlx
Gravatarcstdio
2015-09-01 20:41 1楼

2032. [ZLXOI 2015]沼跃鱼数列变换

★★☆   输入文件:Marshtomp.in   输出文件:Marshtomp.out   简单对比
时间限制:1 s   内存限制:512 MiB

【题目描述】

定义一个数列的积为这个数列所有元素的积,定义沼跃鱼数列变换为一个数列在某种限制下的所有非空子集的积的和。(一个数列的子集和也是可重的)

注意:这里一个数列的子集是一个集合,两个集合不相等当且仅当集合元素不相等和集合元素的原本在数列中的下标不相等

举例:数列(1,2,3,3)有两个集合元素子集(1,2,3)却不相等因为一个是(a1,a2,a3),另一个是(a1,a2,a4)

对于某个数列A和限制,求出其沼跃鱼变换数列的值mod 9999997

限制为给出一个不可重集合C,表示A[C[i]]为特殊元素,所有特殊元素两两之间不能出现在同一个子集合中。

简而言之,你不需要考虑数列中的重复元素,即对任意长度为n的数列,其一定有2^n-1个子集合

【输入格式】

第一行一个正整数n,表示集合的元素个数

接下来一行n个数,表示A[i]

接下来一个正整数m,表示特殊元素个数

接下来一行m个数,表示C[i]

【输出格式】

一个正整数S,表示变换的值

【样例输入1】

3

1 2 3

0

【样例输出1】

23

【样例解释1】

S=1+2+3+1*2+1*3+2*3+1*2*3=23

 【样例输入2】

3

2 3 3

2

2 1

【样例输出2】

23

【样例解释2】

A[2]和A[1]为特殊元素,不共存

S=2+3+3+2*3+3*3=23

(A[1],A[2],A[3])和(A[1],A[2])非法

【提示】

第1组数据n<=10,A[i]=1

第2组数据n<=100000,A[i]=1

第3组数据n<=10,A[i]=i

第4组数据n<=100000,A[i]=i

第5组数据n<=10

前五组数据A[i]<=100,m=0

第6-8组数据n<=1000,m<=20

对于100%的数据n<=100000,m<=1000,A[i]<=50000

【来源】