比赛链接:这里写链接内容
A 斐波那契
链接:https://www.nowcoder.com/acm/contest/181/A
来源:牛客网

设f[i]表示斐波那契数论的第i项
f[1]=1,f[2] =1,f[i] = f[i - 1] + f[i - 2]
给定一个n

附题解

#include<iostream>
#include<cstdio>
using namespace std;int main(){string str;cin>>str;int len=str.length();if((str[len-1]-'0')%2==0){printf("1\n");}else{printf("-1\n");}
}

B 就不放了
C 序列
链接:https://www.nowcoder.com/acm/contest/181/C
来源:牛客网

小a有n个数,他想把他们划分为连续的权值相等的k段,但他不知道这是否可行。
每个数都必须被划分
这个问题对他来说太难了,于是他把这个问题丢给了你。

首先要满足的要求肯定是总和sum%k是否等于0,然后暴力枚举,有k个就行(在总和是k的倍数的情况下)

    k = 0;for(int j = 1; j <= N; j++) {cur += a[j];if(cur == sum / i)  cur=0,k++;}ans[i] =  (k == i);

但是二分的方法更有前途
这里贴一位大佬(牛客网流木)的二分

#include<bits/stdc++.h>
const int M=1000005;typedef long long ll;
using namespace std;
ll a[M];
int n,q;int main(){scanf("%d%d",&n,&q);for(int i=1;i<=n;i++)scanf("%lld",&a[i]),a[i]+=a[i-1];while(q--){ll x;scanf("%lld",&x);if(a[n]%x)puts("No");else{int f=1;for(int i=1;i<=x-1;i++){int w=lower_bound(a+1,a+n+1,i*a[n]/x)-a;if(a[w]!=i*a[n]/x){f=0;puts("No");break;}}if(f)puts("Yes");}}return 0;
}

D 小叶的巡查

就是一道树的直径题,开始把树的直径看错了,没敢写
树的直径就是双重dfs ,这题小心数据int会爆掉

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
const int MAXN=100001;
struct node{int to,next,w;}edge[MAXN];
int head[MAXN];
int num;
int n,m;
typedef long long ll;
void add_edge(int u,int v,int w){edge[++num].next=head[u];edge[num].to=v;edge[num].w=w;head[u]=num;}
int dp[MAXN];
ll ans=0;
int ed=0;
void dfs(int u,int fa,ll now)
{if(now>ans){ans=now;ed=u;}for(int i=head[u];i!=-1;i=edge[i].next){if(edge[i].to!=fa)dfs(edge[i].to,u,now+edge[i].w);}
}
int main(){scanf("%d",&n);memset(head,-1,sizeof(head));for(int i=1;i<n;i++){int u,v,w;scanf("%d%d%d",&u,&v,&w);add_edge(u,v,w);add_edge(v,u,w);}dfs(1,0,0);dfs(ed,0,0);printf("%lld",ans*10+(1+ans)*ans/2);return 0;
}

E 旅行青蛙
最长不下降子序列的裸题
开始我写的是最长上升子序列,没看清题目,纳尼。

#include<iostream>
#include<cstdio>
using namespace std;
const int N=23333+10;
int dp[N],a[N];int binarysearch(int k,int len){int l=0,r=len-1;while(l<=r) {int mid=(l+r)>>1;if(k<dp[mid]) {r=mid-1;} else {l=mid+1;}}return l;
}
int main() {int n,len;scanf("%d",&n);for(int i=0; i<n; i++) {scanf("%d",&a[i]);}len=0;for(int i=0;i<n;i++){int t=binarysearch(a[i],len);if(t>=len) len++;dp[t]=a[i];}printf("%d\n",len);
}

测试赛果然良心,除了F题,其他的都一眼可以看出解法,嗯,(敲码另说)呜呜呜呜

最后一题放一下题解,和大佬的代码记录一下吧,

贴的是牛客网applese大佬的代码:


#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
bool Finish_read;
template<class T>inline void read(T &x){Finish_read=0;x=0;int f=1;char ch=getchar();while(!isdigit(ch)){if(ch=='-')f=-1;if(ch==EOF)return;ch=getchar();}while(isdigit(ch))x=x*10+ch-'0',ch=getchar();x*=f;Finish_read=1;}
template<class T>inline void print(T x){if(x/10!=0)print(x/10);putchar(x%10+'0');}
template<class T>inline void writeln(T x){if(x<0)putchar('-');x=abs(x);print(x);putchar('\n');}
template<class T>inline void write(T x){if(x<0)putchar('-');x=abs(x);print(x);}
/*================Header Template==============*/
const int mod=1e9+7;
namespace {inline int Add(const int &x,const int &y,const int &p) {int res=x+y;if(res>=p)res-=p;return res;}inline int Sub(const int &x,const int &y,const int &p) {int res=x-y;if(res<0)res+=p;return res;}inline int Mul(const int &x,const int &y,const int &p) {return 1ll*x*y%p;}inline int Pow(int x,int y,const int &p) {int res=1;while(y) {if(y&1)res=1ll*res*x%p;x=1ll*x*x%p;y>>=1;}return res;}
}
int T,n,k,val[1005],C[1005][1005];
int main() {for(int i=0;i<=1000;++i) {C[i][0]=1;for(int j=1;j<=i;++j)C[i][j]=Add(C[i-1][j-1],C[i-1][j],mod-1);}read(T);while(T--) {read(n),read(k);for(int i=1;i<=n;++i)read(val[i]);if(k<=2) {puts("1");continue;}sort(val+1,val+n+1);int ans=1;for(int i=1;i<=n;++i)ans=Mul(ans,Pow(val[i],Sub(C[n-1][k-1],Add(C[i-1][k-1],C[n-i][k-1],mod-1),mod-1),mod),mod);printf("%d\n",ans);}
}

牛客网 OI 赛制测试赛相关推荐

  1. 牛客网oi测试赛E旅行青蛙【LIS二分】

    链接:https://www.nowcoder.com/acm/contest/181/E 来源:牛客网 题目描述 一只青蛙出去旅游,因为中国有一句古话说的好:"由简入奢易,由奢入俭难&qu ...

  2. 牛客网循环输入输出测试——C语言scanf和printf用法

    在实际的编程中需要自己写出完整的程序,预留好输入的接口,使用while循环接收多个测试用例,C语言在输出时printf要用换行"\n". 字符串输入输出问题见博客:牛客网字符/字符 ...

  3. 2019牛客网暑期多校赛第七场C题Governing sand --思维+前缀和

    链接:https://ac.nowcoder.com/acm/contest/887/C 来源:牛客网 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 65536K,其他语言13107 ...

  4. 牛客OI赛制测试赛 E:旅行青蛙

    题目传送门 最长不下降子序列 代码: #include<bits/stdc++.h> using namespace std;const int maxn=30000+100; const ...

  5. 牛客OI赛制测试赛2 F :假的数学游戏

    题目传送门 斯特林公式 代码: #include<bits/stdc++.h> using namespace std;const double PI=3.1415926; typedef ...

  6. 看完牛客网19年测试全部面筋,有了这篇测试面试100问的博客

    文档正在整理中 介绍一下单元测试.集成测试.系统测试.验收测试.回归测试 1.单元测试[UT]:完成最小的软件设计单元(模块)的验证工作,目标是确保模块被正确的编码,使用过程设计描述作为指南,对重要的 ...

  7. 牛客网编程答题测试技巧

    输入 1.预先不知到数据的组数用while #include <iostream> using namespace std; int main() {int a,b;while(cin&g ...

  8. 牛客网提高组模拟赛第七场 T3 洞穴(附bitset介绍)

    就是DP. 我们可以很简单的想到要枚举中间点,进行边数的转移. 但是因为边长数据范围很大,所以我们考虑log的倍增. 状态设计为\(dp[i][j][k]\),为从节点\(i\)走\(2^k\)步能否 ...

  9. 牛客网9.16模拟赛t1方差

    这题本不想写题解的,因为是极水的一道公式题 题目链接:方差 题目: 题意 一个长度为 m 的序列 b[1-m] ,我们定义它的方差为 ,其中 表示序列的平均值. 可以证明的是,如果序列元素均为整数,那 ...

最新文章

  1. Android 中文API (94) —— MediaController
  2. mysql事物 总结_Mysql事务总结
  3. 前端基础-HTML的的标签详解
  4. 非 GUI 模式运行 JMeter 压力测试
  5. 深拷贝的缺点_拷贝?还傻傻分不清深浅?
  6. mysql文件结构_MySQL文件结构
  7. django-debug-toolbar 工具
  8. 如何判断浏览器/标签是否有效[重复]
  9. 【系统分析师之路】系分历年论文命题走向
  10. 付费音乐如何下载???
  11. 十代主板改win7_微星Z490装win7 Bios设置|微星Z490主板10代CPU装win7
  12. 新版Edge浏览器如何设置崩溃自动恢复网页
  13. Jenkins配置slaver节点
  14. 利用一种新的灵活记分卡方法改进肽抗癌活性的预测和表征
  15. 2022金九银十Android大厂面试题来袭,面试字节跳动被问Android屏幕适配方案
  16. 虚拟文字内容、图片、头像生成工具
  17. 第六节-列空间与零空间
  18. 华丽丽的旋转彩带效果
  19. python脚本windows环境下权限问题处理
  20. vue项目中 集成plus

热门文章

  1. Ubuntu系统shipyard安装
  2. SQl语句学习专题(转)
  3. blastn 输出结果每列啥意思_如何看懂NCBI BLAST输出结果
  4. mail企业邮箱登录入口有哪些?
  5. 【脑洞大开】从哲学角度看人工智能:介绍徐英瑾的《心智、语言和机器》
  6. 旅游网站首页——html
  7. git push 报错 error: failed to push some refs to ‘git@xxx/xx.git‘
  8. python发送各类QQ邮件 —— smtplib与email模块
  9. 微信开放平台PC端扫码登录功能个人总结
  10. 前度控制器源代码分析