2017杭电多校联赛team3 Kanade's sum hdu6058 快速幂

来源:互联网 发布:js播放器进度条 编辑:程序博客网 时间:2024/06/07 00:34

Kanade's sum

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 2011    Accepted Submission(s): 810


Problem Description
Give you an array A[1..n]of length n

Let f(l,r,k) be the k-th largest element of A[l..r].

Specially , f(l,r,k)=0 if rl+1<k.

Give you k , you need to calculate nl=1nr=lf(l,r,k)

There are T test cases.

1T10

kmin(n,80)

A[1..n] is a permutation of [1..n]

n5105
 

Input
There is only one integer T on first line.

For each test case,there are only two integers n,k on first line,and the second line consists of n integers which means the array A[1..n]
 

Output
For each test case,output an integer, which means the answer.
 

Sample Input
15 21 2 3 4 5
 

Sample Output
30
 

Source
2017 Multi-University Training Contest - Team 3
 

Recommend
liuyiding   |   We have carefully selected several similar problems for you:  6066 6065 6064 6063 6062 



思路:
由样例发现,n^k%mod=ans。


官方题解



ac代码:
#include<stdio.h>#define LL long long#define Mod 1e9+7LL N,K,ans;LL power2(LL a, LL b, LL c) {LL res = 1;a %= c;while (b) {if (b & 1)res = (res * a) % c;a = (a * a) % c;b >>= 1;}return res;}int main() {int cnt=0;while(~scanf("%lld%lld",&N,&K)) {printf("Case #%d: %lld\n",++cnt,power2(N,K,Mod));}return 0;}


总结:有想法多试一试,数据大的题目打表看看(上一场多校貌似也有一道找规律的)。


 
原创粉丝点击