数竞生:这不是送分的常识吗?
这里引入一个叫卡西尼恒等式的玩意。
公式表达就是
设$fib[i]$为斐波那契数列的第$i$项$(i>0,i \in N_+)$
则有
$fib[i+1]fib[i-1]-fib[i]^2=(-1)^i$,其中$(i>1,i \in N_+ )$
因为数据说明了$i>=2$,所以我们可以用数学归纳法证明这个结论。
首先看边界条件,
$fib[1]=fib[2]=1,fib[3]=2$
$fib[3]*fib[1]-fib[2]^2=2*1-1^2=(-1)^2$
所以对于边界条件成立。
现在,假设此结论对于$i=n$成立。
则有$fib[n+1]fib[n-1]-fib[n]^2=(-1)^n$
又∵$fib[i]=fib[i-1]+fib[i-2]$得出$fib[i+1]=fib[i]+fib[i-1]$
所以有
$fib[n+2]fib[n]-fib[n+1]^2$
$=(fib[n+1]+fib[n])*fib[n]-(fib[n]+fib[n-1])^2$
$=fib[n]^2+fib[n]fib[n+1]-fib[n]^2-fib[n-1]^2-2fib[n]fib[n-1]$
$=fib[n]^2+fib[n](fib[n+1]-fib[n])-fib[n-1]^2-2fib[n]fib[n-1]$
$=fib[n]^2+fib[n]fib[n-1]-2fib[n]fib[n-1]-fib[n-1]^2 $
$=fib[n]^2-fib[n]fib[n-1]-fib[n-1]^2$
$=fib[n]^2-fib[n-1](fib[n]+fib[n-1])$
$=fib[n]^2-fib[n-1]fib[n+1]$
$=(-1)(fib[n]^2-fib[n-1]fib[n+1])$
$=(-1)(-1)^n$
$=(-1)^{n+1}$
所以,此结论对于$i=n+1$也成立$……$
证毕。
于是,$n$为偶数答案就是$1$否则为$-1$。高精读入,判断一下最后一位就行了。
复杂度$O(1)$
$code:$
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char n[];int l;int num;
int main()
{
cin>>n;
int l=strlen(n);
num=n[l-]-'';
printf("%d",num%==?:-);
return ;
}
 
实际上,如果不知道的话,直接打个表就能看出来了。
下面是我比赛的时候打表的$generous$
 
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long f[];
int main()
{
f[]=f[]=;
for(int i=;i<=;i++)
f[i+]=f[i]+f[i-],
printf("%lld ",f[i-]*f[i+]-f[i]*f[i]);
return ;
}
此题完结。
恭喜本宝宝傻呵呵的就交上去代码了$qwq$
然后才发现有错。
  
#include<cstdio>
#include<iostream>
using namespace std;
int a,b,c;
int main(){long long l=,r=int(1e9)<<:cin》a>>b;while(r-l>){c=(l+r)>>;if(c-b<a)l=c;else if(c-b>a)r=c;else return printf("%d\n",c);
} if(l!=r)return printf("%d\n",r);
}
不难发现,这里面又语法错误(拿个DEV试一下就知道了应该是两个,算上$return\ 0$三个)
之后不难发现,是$a+bproblem$我自己手玩了好几组发现了。
之后拿着$a+b$的正解拍了一万多组没出错。就认为是对的了。
实际上,写过$a+b$毒瘤解法的小伙伴们都能一眼看出来。$a+b$交上去就过了。
复杂度$O(1)$
 
相信这题数据随机,所以一定是个暴力。
首先看$q>>n$所以,想到一个记忆化,$ins[i]$表示询问$i$是否可行$-1,0,1$表示不可行,未知,可行。如果这个询问之前有过,直接输出就好,这样,我们把$q$降到了$100000$。
之后,有一个显然的事情就是,当这个序列的所有元素和整除$k$的时候,才有可能满足。所以,如果$sum%k==0$暴力枚举即可过。
这里在说一点,就是,如果$k$可行,则$d$一定可行,其中$d$是$k$的约数。这点显然,画个图就能理解。
所以可以用莫队搞一发。按询问段数$k$从大到小暴力枚举,如果之前没被判过且当前可行,则可以把它的约数都标记为可行(这个对于小数据可能造成负优化,数据随机,所以不加这点可过)
然后$……$考场上想了一个奇技淫巧的办法,只水了$40$
复杂度:$O($玄学,能过$)$
$qwq$
不加优化理论一次$O(n)$,总共$q$次,因为加了记忆化,所以$n,q$同阶,最坏$O(nq)$,然而数据随机 $……$
加优化更玄学$……$需要看数据而定,最坏的话应该能降到均摊根号左右。
 
这题一开始叫CCF的巡查之旅呢 
不难发现,给出的是一棵树。
所以,我们直接找出树的直径之后再按等差数列求和公式计算即可。
考场上树的直径写成$spfa$没救了$……$还写挂了,才拿了$18$分$qwq$
所以就是树的直径的复杂度$O(n)$
这题放到$E$题 真的很$……$不想说啥。
青蛙走过的路线一定是一个子序列
所以直接求一个最长不下降子序列就行。
然后$nlogn$就过了
#include<cstdio>
#include<algorithm>
using namespace std;
int a[];
int d[];
int main()
{
int n;
scanf("%d",&n);
for (int i=;i<=n;i++) scanf("%d",&a[i]);
if (n==)
{
printf("0\n");
return ;
}
d[]=a[];
int len=;
for (int i=;i<=n;i++)
{
if (a[i]>=d[len]) d[++len]=a[i];
else
{
int j=upper_bound(d+,d+len+,a[i])-d;
d[j]=a[i];
}
}
printf("%d\n",len);
return ;
}
容斥可做。首先算出不考虑去除数的子序列乘积的乘积$……$
每一个数都被乘了$C_{n-1}^{k-1}$次,
之后考虑第$i \in 1,n $大的数我们对它多算的次数,
为$C_{n-i}^{k-1}+C_{i-1}^{k-1}$次(就是从不选比$i$大的数中共$n-i+1$个数里选$k$个,和从不比$i$小的$i$数里选$k$个)
所以容斥一发就好了。
可以$nlogn$做.

牛客OI赛制测试赛1 题解的更多相关文章

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

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

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

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

  3. 牛客OI赛制测试赛2

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

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

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

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

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

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

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

  7. 牛客OI赛制测试赛2 C 数组下标

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

  8. 牛客OI赛制测试赛2 A 无序组数

    链接:https://www.nowcoder.com/acm/contest/185/A来源:牛客网 题目描述 给出一个二元组(A,B) 求出无序二元组(a,b) 使得(a|A,b|B)的组数 无序 ...

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

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

随机推荐

  1. 使用openal与mpg123播放MP3,附带工程文件(转)

    使用openal与mpg123播放MP3,附带工程文件 使用openal和mpg123播放MP3文件 使用静态编译,相关文件都在附件里 相关工程文件:openal_mpg123_player.7z 使 ...

  2. 用JDK自带的包来解析XML文件(DOM+xpath)

    DOM编程不要其它的依赖包,因为JDK里自带的JDK里含有的上面提到的org.w3c.dom.org.xml.sax 和javax.xml.parsers包就可以满意条件了.(1)org.w3c.do ...

  3. MVC-READ4

    internal BuildManagerCompiledView(ControllerContext controllerContext, string viewPath, IViewPageAct ...

  4. Maven编译并打包Mahout CDH版源码

    目录 1. 问题描述 最近在使用Mahout里的推荐算法进行实验,由于业务需求,需要修改Mahout源码,将原本输出到HDFS上的结果输出到HBase中.由于Mahout发布的源码都是Maven项目, ...

  5. ios开发者账号、证书相关内容

    背景:因为在实际测试中会涉及到不同的证书,而自己又对证书不了解,所以去查资料了解了一下不同证书的区别,如果有不对的地方,欢迎指正补充.   In House:所有手机都可以安装,但是不能上传到app ...

  6. mysql常用语句及关键字

    一.常用sql语句 1.创建数据库userCREATE  DATABASE user; 2.删除数据库userDROP DATABASE user; 3.使用数据库userUSE user;显示数据库 ...

  7. indexes和indices的区别

    indexes和indices的区别是: indexes在美国.加拿大等国的英语里比较常见.但indices盛行于除北美国家以外的英语里. indices一般在数学,金融和相关领域使用,而indexe ...

  8. Entity Framework 6.0 对枚举的支持/实体添加后会有主键反回

    实验 直接上代码,看结果 实体类 [Flags] public enum FlagsEnum { Day = , Night = } public class EntityWithEnum { pub ...

  9. centos7之saltstack使用手册

    武sir的图镇楼: salt是一个异构平台基础设置管理工具(虽然我们通常只用在Linux上),使用轻量级的通讯器ZMQ,用Python写成的批量管理工具,完全开源,遵守Apache2协议,与Puppe ...

  10. 万网上如何将IP和申请的域名绑定

    万网上如何将IP和申请的域名绑定   在万网上购买了域名后,怎么将它和指定的IP进行绑定呢?下面简单介绍下 工具/原料   中国万网账号 购买的域名 服务器 方法/步骤     百度万网,找到网站后, ...