2018.8.30 nowcoder oi赛制测试1

普及组难度,发现了一些问题

A

题目大意:求斐波那契数列\(f(k-1)f(k+1)-f(k)^2\),范围极大

打表可得规律

其实是卡西尼恒等式

\[\begin{eqnarray}f(k)f(k+2) - f(k+1)^2 &=&f(k)^2+f(k)f(k+1)-f(k-1)^2-2f(k-1)f(k)-f(k)^2\\ &=&f(k)^2+f(k-1)f(k)-f(k-1)^2-2f(k-1)f(k)\\ &=&f(k)^2-f(k-1)^2-f(k-1)f(k)\\ &=&f(k)^2-f(k-1)f(k+1)\\ &=&(-1)^{k+1} \end{eqnarray}
\]

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的更多相关文章

  1. Nowcoder OI赛制测试2 F 假的数学题 - 斯特林公式 + 二分

    Description 给定$X$, 找到最小的$N$ 使得$N! > X^X$ 数据范围:  $x <= 1e11$ Solution $X^X$ 太大, 高精也存不过, 所以取对数 : ...

  2. 牛客OI赛制测试赛2(0906)

    牛客OI赛制测试赛2(0906) A :无序组数 题目描述 给出一个二元组(A,B) 求出无序二元组(a,b) 使得(a|A,b|B)的组数 无序意思就是(a,b)和(b,a) 算一组. 输入描述: ...

  3. 【牛客OI赛制测试赛3】 毒瘤xor

    牛客OI赛制测试赛3 毒瘤xor 传送门 题面,水表者自重 Solution 前缀和简单题(挖坑待补) 代码实现 #include<stdio.h> #define int long lo ...

  4. Nowcoder | [题解-N189]牛客OI赛制测试赛3

    这场说实话确实水(逃*1),表示差一点就AK了(逃*2),然而被卡两个特判的我\(ssfd\)...\(qwq\) 表示这是第一次发整场比赛的题解...还请各位大佬原谅我太蒻写的垃圾啊\(qwq\). ...

  5. 8.30 牛客OI赛制测试赛1 F题 子序列

    题目描述 给出一个长度为n的序列,你需要计算出所有长度为k的子序列中,除最大最小数之外所有数的乘积相乘的结果 输入描述: 第一行一个整数T,表示数据组数.对于每组数据,第一行两个整数N,k,含义如题所 ...

  6. 牛客OI赛制测试赛2

    A题: https://www.nowcoder.com/acm/contest/185/A 链接:https://www.nowcoder.com/acm/contest/185/A来源:牛客网 题 ...

  7. 牛客OI赛制测试赛3 解题报告

    前话: 话说考试描述:普及难度. 于是想在这场比赛上涨点信心. 考出来的结果:Point:480     Rank:40 然而同机房的最好成绩是 510. 没考好啊!有点炸心态,D题一些细节没有注意, ...

  8. C数列下标 牛客OI赛制测试赛2

    链接:https://www.nowcoder.com/acm/contest/185/C来源:牛客网 给出一个数列 A,求出一个数列B. 其中Bi   表示 数列A中 Ai 右边第一个比 Ai 大的 ...

  9. 牛客OI赛制测试赛2 D 星光晚餐

    链接:https://www.nowcoder.com/acm/contest/185/D来源:牛客网 题目描述 Johnson和Nancy要在星光下吃晚餐.这是一件很浪漫的事情. 为了增加星光晚餐那 ...

随机推荐

  1. Docker架构分解

    Docker总架构分解Docker对使用者来讲是一个C/S模式的架构,而Docker的后端是一个非常松耦合的架构,模块各司其职,并有机组合,支撑Docker的运行. 用户是使用Docker Clien ...

  2. MySQL5.6 与 MySQL5.7 的区别

    目录 编译安装区别 初始化的区别 其他区别 编译安装区别 # 5.7在编译安装的时候多了一个 boost 库 [root@db02 mysql-5.7.20]# yum install -y gcc ...

  3. 导出Excel出错

    错误提示:   解决方法: 1.运行dcomcnfg打开组件服务. 2.依次展开"组件服务"->"计算机"->"我的电脑"-&g ...

  4. Leetcode(106)-从中序与后序遍历序列构造二叉树

    根据一棵树的中序遍历与后序遍历构造二叉树. 注意:你可以假设树中没有重复的元素. 例如,给出 中序遍历 inorder = [9,3,15,20,7] 后序遍历 postorder = [9,15,7 ...

  5. 手工数据结构系列-C语言模拟栈 hdu1022

    这个题我一开始是这么想的.. 爆搜所有可能的出栈序列 然后对输入进行匹配 这样我感觉太慢 然后我们可以想到直接通过入栈序列对出栈序列进行匹配 但是我犯了一个错误..那就是出栈序列一定到入栈序列里找.. ...

  6. ASP.NET Core 中间件(Middleware)(一)

    本文主要目标:记录Middleware的运行原理流程,并绘制流程图. 目录结构: 1.运行环境 2.Demo实践 3.源码追踪 4.AspnetCore内置middleware 一.运行环境 Visu ...

  7. Publish/Subscribe Pattern & Vanilla JavaScript

    Publish/Subscribe Pattern & Vanilla JavaScript https://en.wikipedia.org/wiki/Publish–subscribe_p ...

  8. github & markdown & image layout

    github & markdown & image layout css & right https://github.com/sindresorhus/log-symbols ...

  9. flutter practical

    flutter practical https://flutterchina.club/ https://github.com/flutterchina/flutter-in-action https ...

  10. NGK公链如何构建区块链数字经济商业帝国?

    2020年对于区块链市场来说,重大的利好消息莫过于NGK公链的上线了.NGK公链其广泛的市场前景.顶尖的技术,一直备受众多大型机构以及投资者所看好.同时,NGK公链也不负众望,在上线以后,就开始落地到 ...