题目名称 | 2032. [ZLXOI 2015]沼跃鱼数列变换 |
---|---|
输入输出 | Marshtomp.in/out |
难度等级 | ★★☆ |
时间限制 | 1000 ms (1 s) |
内存限制 | 512 MiB |
测试数据 | 10 |
题目来源 | Satoshi 于2015-08-31加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:12, 提交:18, 通过率:66.67% | ||||
NVIDIA | 100 | 0.015 s | 0.34 MiB | C++ |
农场主 | 100 | 0.039 s | 1.54 MiB | C++ |
FoolMike | 100 | 0.040 s | 1.15 MiB | C++ |
KZNS | 100 | 0.041 s | 0.70 MiB | C++ |
wmez | 100 | 0.044 s | 1.82 MiB | C++ |
mikumikumi | 100 | 0.045 s | 1.15 MiB | C++ |
Satoshi | 100 | 0.049 s | 2.70 MiB | C++ |
梦那边的美好ET | 100 | 0.062 s | 15.18 MiB | C++ |
瑆の時間~無盡輪迴·林蔭 | 100 | 0.071 s | 14.52 MiB | C++ |
小明 | 100 | 0.087 s | 0.94 MiB | C++ |
本题关联比赛 | |||
ZLXOI2015Day2 |
关于 沼跃鱼数列变换 的近10条评论(全部评论) | ||||
---|---|---|---|---|
看帖子和代码终于看懂了
NVIDIA
2017-07-01 13:20
4楼
| ||||
无聊的计数数学题!
| ||||
2星半?!..恩.....刷分利器!
| ||||
前排围观业界毒瘤zlx
cstdio
2015-09-01 20:41
1楼
|
定义一个数列的积为这个数列所有元素的积,定义沼跃鱼数列变换为一个数列在某种限制下的所有非空子集的积的和。(一个数列的子集和也是可重的)
注意:这里一个数列的子集是一个集合,两个集合不相等当且仅当集合元素不相等和集合元素的原本在数列中的下标不相等
举例:数列(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