2018.8.30 nowcoder oi赛制测试1
2018.8.30 nowcoder oi赛制测试1
普及组难度,发现了一些问题
A
题目大意:求斐波那契数列\(f(k-1)f(k+1)-f(k)^2\),范围极大
打表可得规律
其实是卡西尼恒等式
\]
B
翻译代码
C
暴力贪心,\(sum\%k=0\)时才可行,但是注意负数,要一直加下去直到满足。
D
树上直径,\(dfs\)两遍
E
最长不下降子序列,二分写错边界
F
题目大意:给出一个长度为 \(n\) 的序列,你需要计算出所有长度为\(k\) 的子序列中,除最大最小数之外所有数的乘积相乘的结果,答案对\(1e9+7\)取模。
答案与子序列的具体内容无关
排序后答案是\(\prod\limits_{i=2}^{n-1}a_i^{C\binom{k-1}{n-1}-C\binom{k-1}{i-1}-\binom{k-1}{n-i}}\)
指数要取模,因为模数是素数且\(a_i<P\)用欧拉定理即可
#include <iostream>
#include <cstdio>
#include <algorithm>
typedef long long ll;
const int N = 1005;
const int P = 1e9 + 7;
int T, n, k;
long long a[N];
long long c[N][N];
long long ans = 1;
inline void pre(){
c[0][0] = 1;
for(int i = 1; i <= 1000; ++i){
c[i][0] = 1;
for(int j = 1; j <= i; ++j){
c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]) % (P - 1);
}
}
return ;
}
inline ll q_pow(ll a, ll b){
ll w = 1;
while(b){
if(b & 1)
w = (a * w) % P;
b >>= 1;
a = (a * a) % P;
}
return w % P;
}
int main(){
scanf("%d", &T);
pre();
while(T--){
scanf("%d %d", &n, &k);
for(int i = 1; i <= n; ++i){
scanf("%lld", &a[i]);
}
std::sort(a + 1, a + n + 1);
for(int i = 1; i <= n; ++i){
ans = 1LL * (ans % P * q_pow(a[i], ((c[n - 1][k - 1] - c[i - 1][k - 1] - c[n - i][k - 1]) % (P - 1) + P - 1) % (P - 1)) % P ) % P;
}
printf("%lld\n",ans);
ans = 1;
}
//都开longlong 防止爆炸
return 0;
}
Experience
- 随机的数据可以试着打暴力
- 二分记得多试几次
- \(F\)类似的可以想一想组合数
2018.8.30 nowcoder oi赛制测试1的更多相关文章
- Nowcoder OI赛制测试2 F 假的数学题 - 斯特林公式 + 二分
Description 给定$X$, 找到最小的$N$ 使得$N! > X^X$ 数据范围: $x <= 1e11$ Solution $X^X$ 太大, 高精也存不过, 所以取对数 : ...
- 牛客OI赛制测试赛2(0906)
牛客OI赛制测试赛2(0906) A :无序组数 题目描述 给出一个二元组(A,B) 求出无序二元组(a,b) 使得(a|A,b|B)的组数 无序意思就是(a,b)和(b,a) 算一组. 输入描述: ...
- 【牛客OI赛制测试赛3】 毒瘤xor
牛客OI赛制测试赛3 毒瘤xor 传送门 题面,水表者自重 Solution 前缀和简单题(挖坑待补) 代码实现 #include<stdio.h> #define int long lo ...
- Nowcoder | [题解-N189]牛客OI赛制测试赛3
这场说实话确实水(逃*1),表示差一点就AK了(逃*2),然而被卡两个特判的我\(ssfd\)...\(qwq\) 表示这是第一次发整场比赛的题解...还请各位大佬原谅我太蒻写的垃圾啊\(qwq\). ...
- 8.30 牛客OI赛制测试赛1 F题 子序列
题目描述 给出一个长度为n的序列,你需要计算出所有长度为k的子序列中,除最大最小数之外所有数的乘积相乘的结果 输入描述: 第一行一个整数T,表示数据组数.对于每组数据,第一行两个整数N,k,含义如题所 ...
- 牛客OI赛制测试赛2
A题: https://www.nowcoder.com/acm/contest/185/A 链接:https://www.nowcoder.com/acm/contest/185/A来源:牛客网 题 ...
- 牛客OI赛制测试赛3 解题报告
前话: 话说考试描述:普及难度. 于是想在这场比赛上涨点信心. 考出来的结果:Point:480 Rank:40 然而同机房的最好成绩是 510. 没考好啊!有点炸心态,D题一些细节没有注意, ...
- C数列下标 牛客OI赛制测试赛2
链接:https://www.nowcoder.com/acm/contest/185/C来源:牛客网 给出一个数列 A,求出一个数列B. 其中Bi 表示 数列A中 Ai 右边第一个比 Ai 大的 ...
- 牛客OI赛制测试赛2 D 星光晚餐
链接:https://www.nowcoder.com/acm/contest/185/D来源:牛客网 题目描述 Johnson和Nancy要在星光下吃晚餐.这是一件很浪漫的事情. 为了增加星光晚餐那 ...
随机推荐
- K8S(03)核心插件-Flannel网络插件
系列文章说明 本系列文章,可以基本算是 老男孩2019年王硕的K8S周末班课程 笔记,根据视频来看本笔记最好,否则有些地方会看不明白 需要视频可以联系我 K8S核心网络插件Flannel 目录 系列文 ...
- OpenStack Train版-1.安装基础环境&服务
1. 服务组件的密码 密码名称 描述 ADMIN_PASS admin用户密码 CINDER_DBPASS 块设备存储服务的数据库密码 CINDER_PASS 块设备存储服务的 cinder 密码 D ...
- 【非原创】codeforces - 1067A Array Without Local Maximums【dp】
学习博客:戳这里 附本人代码: 1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 co ...
- leetcode17 电话号码的字母组合 dfs
就dfs吧.... 然后,我傻了.前一道题不用考虑空,这道题就要考虑.... 还有注意vector要引用传递 class Solution { public: void dfs(string temp ...
- spyder import tensorflow
之前安装了tensorflowgpu,但是在spyder中import会失败. 原因是因为新建了环境,要activate tensorflow-gpu进入安装了tensorflow 的环境才可以imp ...
- 域渗透——获得域控服务器的NTDS.dit文件
0x00 前言 在之前的文章<导出当前域内所有用户hash的技术整理>曾介绍过通过Volume Shadow Copy实现对ntds.dit文件的复制, 可用来导出域内所有用户hash.本 ...
- UTM & User Tracking Message
UTM & User Tracking Message utm_source https://marketingplatform.google.com/about/resources/link ...
- SVG 与 Canvas 对比
SVG 与 Canvas 对比 技术选型 SVG vs Canvas 应用场景 性能 GPU 加速 XML 数据存储 Canvas 2D Canvas 3D WebGL / OpenGL ES thr ...
- HTML spaces types: &   &  
HTML spaces types: & & What is the difference between and https://stackoverflow.co ...
- back to top & back to bottom
back to top & back to bottom infinite auto load more & infinite scroll & load more https ...