考试+数论+一些题目
Hnoi_pretest
考试时间: 240 分钟
题目名称 |
interval |
digit |
poly |
可执行文件名 |
interval.exe |
digit.exe |
poly.exe |
输入文件名 |
interval.in |
digit.in |
poly.in |
输出文件名 |
interval.out |
digit.out |
poly.out |
测试点时限 |
2 S |
1 S |
1 S |
测试点空间限制 |
256MB |
256MB |
256 MB |
测试点数目 |
10 |
20 |
20 |
每个测试点分值 |
10 |
5 |
5 |
是否有部分分 |
否 |
否 |
否 |
题目类型 |
传统 |
传统 |
传统 |
一、interval
【题目描述】:
给出一个长度为n的排列p
问有多少个区间[l,r]
可以有p中的区间[a,b]与[c,d]拼出
其中:1<=a<=b<c<=d<=n
比如说p为 1 5 2 4 6 3
[5,6]就可以由[2,2]和[5,5]拼出
【输入】:
第一行一个数n
第二行n个数,表示p
【输出】:
一个正整数表示答案
【样例输入】:
5
1 4 5 3 2
【样例输出】:
10
【说明】:
10%的数据n<=20
40%的数据n<=2000
另10%的数据 p[i]=i
100%的数据n<=300000
二、digit
【题目描述】:
小C手上有n个数,第i个数为B[i]
小C手上还有一个数A
可是A中有某些位小C不清楚,比如说A为?4?,那么A就有可能为141,也有可能有142,但是不可能为042,毕竟一个数不能有前导0是一个很显然的规则
现在小C需要你帮忙确定手上的数字A,即给每个?填上0-9之间的数字,但是不能有前导0
确定完后,小C会让每一个B[i]都加上A,生成一个新的数字序列D
小C还有有一个收益数组P[0]到P[9]
对于D中的每一个数字D[i],可以获得对应位在收益数组对应的元素之和,比如说D[i]=2629,那么D[i]可以获得的收益就是:P[2]+P[6]+P[2]+P[9]
现在,小C想问你,确定了A之后,能获得的最大收益和是多少,即把D中每一个数字能获得的受益加起来最大是多少
【输入】:
第一行一个字符串A,表示A
第二行一个正整数n
接下来n行,有n个字符串,第i行表示B[i]
最后一行,有10个空格隔开的整数,从左至右依次表示:P[0]……P[9]
【输出】:
一个正整数表示最大收益和
【样例输入】:
?5?
4
2203
5229
276
6243
2 1 6 1 1 2 5 2 2 3
【样例输出】:
62
【样例解释】:
A为452
【说明】:
20%的数据:A的长度<=4,n<=10,B[i]的长度<=4
50%的数据:A的长度<=1000,n<=10,B[i]的长度<=1000
100%的数据: A的长度<=1000,n<=1000,B[i]的长度<=1000,1<=P[i]<=1000,B[i]>=1
【题目描述】:
给定一个0/1多项式,x^i的系数为a[i],0<=i<=n
求该多项式的k次方的x^m的系数的奇偶性
【输入】:
第一行一个整数T
对于每组测试数据,第一行三个整数n,k,m
接下来n+1个数来描述a[0]到a[n]
【输出】:
输出T行,每行0或者1表示偶或者奇
【样例输入】:
2
2 3 4
1 0 1
2 3 5
1 0 1
【样例输出】:
1
0
【说明】:
30%的数据:n*k<=10^4
100%的数据: n<=50,k,m<=10^18
数论:
1. 莫比乌斯函数 PASS
2. 莫比乌斯反演 PASS
3. Miller Rabin算法
4. Pollard-rho算法
5. 积性函数
6. 埃式筛法(nlog(logn))
7. 线性筛法(n)
8. 导数,求导
一些题目:
1. bzoj 寿司晚宴
2. bzoj 等差子序列