目录

  • A: 经此一役小红所向无敌【难度: 一般 / 知识点: 模拟】
  • B: 擅长解密的小红同学【难度: 中 / 知识点: 组合数学 数学期望】
  • D: 比那名居的桃子【难度: 一般 / 知识点: 前缀和】
  • F: 红色和紫色【难度: 一般 / 知识点: 博弈论】
  • H: 漂亮数 【难度: 一般 / 知识点: 线性筛 打表】
  • I: 加减【难度: 中 / 知识点: 贪心 双指针 前缀和】
  • J: 喵【难度: 简单 / 知识点: 字符串】

A: 经此一役小红所向无敌【难度: 一般 / 知识点: 模拟】


计算出每一个人可以打的回合数,取一个较小的回合。

#include<bits/stdc++.h>
using namespace std;
long long int a,h,b,k;
int main(void)
{cin>>a>>h>>b>>k;long long int sum=0;int s1=h/b,s2=k/a;if(h%b) s1++;if(k%a) s2++;sum=min(s1,s2)*(a+b);if(s1>s2) sum+=a*10;if(s1<s2) sum+=b*10;cout<<sum;return 0;
}

B: 擅长解密的小红同学【难度: 中 / 知识点: 组合数学 数学期望】


#include<bits/stdc++.h>
using namespace std;
const int N=1e7+10;
const int mod=1e9+7;
typedef long long int LL;
int a[15];
LL f[N];
LL quick_mi(LL a,LL b,LL p)
{LL sum=1;while(b){if(b&1) sum=(sum*a)%p;b=b>>1;a=(a*a)%p;}return sum%p;
}
int main(void)
{LL sum1=0,sum2=1;for(int i=0;i<10;i++) cin>>a[i],sum1+=a[i];f[0]=1;for(int i=1;i<N;i++) f[i]=(f[i-1]*i)%mod;for(int i=0;i<10;i++) if(a[i]) sum2=(sum2*f[a[i]])%mod;cout<<(f[sum1]*quick_mi(sum2,mod-2,mod))%mod<<endl;return 0;
}

D: 比那名居的桃子【难度: 一般 / 知识点: 前缀和】


说白了就是在长度为n的数组里找一个长度为k的区间。然后要满足题目给的条件。
直接前缀和搞一下即可。

#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
const int N=1e5+10;
LL a[N],b[N],s[N],ss[N],n,k;
int main(void)
{cin>>n>>k;for(int i=1;i<=n;i++) cin>>a[i],s[i]=s[i-1]+a[i];for(int i=1;i<=n;i++) cin>>b[i],ss[i]=ss[i-1]+b[i];LL ans1=0,ans2=1e18;int ans=0;for(int i=k;i<=n;i++){LL temp1=s[i]-s[i-k];LL temp2=ss[i]-ss[i-k];if(temp1>ans1){ans1=temp1,ans2=temp2;ans=i-k+1;}else if(temp1==ans1&&temp2<ans2){ans2=temp2;ans=i-k+1;}}cout<<ans;return 0;
}

F: 红色和紫色【难度: 一般 / 知识点: 博弈论】


博弈论的题,不擅长,还好这个模型比较简单。
我们可以分析出,谁最后放谁就赢了。
故如果格子数是奇数,一号手赢,否则二号手赢。

#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
long long int a,b;
int main(void)
{cin>>a>>b;if((a*b)&1) puts("akai");else puts("yukari");return 0;
}

H: 漂亮数 【难度: 一般 / 知识点: 线性筛 打表】

#include<bits/stdc++.h>
using namespace std;
const int N=1e8+10;
const int M=1e6*5+10;
int prime[M],cnt,st[N];
int s[N];
void f()
{int n=1e8;for(int i=2;i<=n;i++){if(!st[i]) prime[cnt++]=i;for(int j=0;prime[j]<=n/i;j++){st[prime[j]*i]=1;if(i%prime[j]==0) break;}}for(int i=0;prime[i]*prime[i]<=n;i++){for(int j=i;prime[i]*prime[j]<=n;j++){s[prime[i]*prime[j]]++;}}for(int i=1;i<=n;i++) s[i]+=s[i-1];// 前缀和
}
int main(void)
{int t; cin>>t;f();while(t--){int l,r; scanf("%d%d",&l,&r);printf("%d\n",s[r]-s[l-1]);}return 0;
}

I: 加减【难度: 中 / 知识点: 贪心 双指针 前缀和】



滑动窗口。

#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
const int N=1e5+10;
LL a[N],n,k;
LL s[N];
int ans=0;
int main(void)
{cin>>n>>k;for(int i=1;i<=n;i++) cin>>a[i];sort(a+1,a+n+1);for(int i=1;i<=n;i++) s[i]=s[i-1]+a[i];for(int i=1,j=1;i<=n;i++){LL temp=a[(i+j+1)/2];LL index=(i+j+1)/2;while(j<=n && (temp*(index-1-i+1)-(s[index-1]-s[i-1])+s[j]-s[index-1]-(j-index+1)*temp<=k) ) {j++,temp=a[(j+i+1)/2];index=(i+j+1)/2;}ans=max(ans,j-i);}cout<<ans;return 0;
}

J: 喵【难度: 简单 / 知识点: 字符串】


题目保证了" nya " 一定在末尾 故直接删除后三个字符即可。

#include<bits/stdc++.h>
using namespace std;
int main(void)
{string s; getline(cin,s);while(s.find("nya")!=-1){int t=s.find("nya");s=s.substr(0,t)+s.substr(t+3);}cout<<s<<endl;return 0;
}

牛客小白月赛37【部分题解】相关推荐

  1. 牛客小白月赛65个人题解A-E

    1. 牛客小白月赛65 A. 牛牛去购物 题意:给定n元,购买价格为a元的篮球和价格为b的篮球,数量不定,要使得花掉的钱最多,也就是剩余的钱数最少,求这个值 (1 <= n, a, b < ...

  2. 牛客小白月赛27部分题解(持续更新)

    今天打了一场牛客网的小白月赛,只做出来3题,自己好菜,怎么办呢,只能记录下来,用以砥砺自己,多刷题.QAQ 比赛连接:连接 首先是E题 E-使徒袭来 题目描述 神秘的使徒袭击了第三新东京市,少男少女们 ...

  3. 牛客小白月赛 27部分题解

    已做BCDEFGJ B.乐团派对 刚开始想了个贪心,结果不对然后直接转头想dp了. 将能力值排序. 首先我们先分出来一组,能力值最大的分出来一组人数是ana_nan​即下标是n−an+1→nn-a_n ...

  4. 牛客小白月赛37 E.紫妹永不服输(构造)

    LINK 若存在 x x x个 R R R和 y y y个 P P P 那么形成的 R P RP RP和 P R PR PR总数为 x ∗ y = n + m x*y=n+m x∗y=n+m 所以直接 ...

  5. 牛客小白月赛57 A-E题解

    A. 最大面积 题目要求 求两矩阵最大相交面积 答案很明显为min(a,c)*min(b,d) 但要注意两个相乘<=1e12因此要开long long 代码如下: #include <bi ...

  6. 【牛客小白月赛69】题解与分析A-F【蛋挞】【玩具】【开题顺序】【旅游】【等腰三角形(easy)】【等腰三角形(hard)】

    比赛传送门:https://ac.nowcoder.com/acm/contest/52441 感觉整体难度有点偏大.

  7. 牛客小白月赛60(A~C)题解

    原题地址:牛客小白月赛60_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 题目A:小竹与妈妈 题意:输出(x-b)/a即可,没什么好说 代码: #include< ...

  8. 牛客小白月赛19 题解

    牛客小白月赛19 A. 「水」滔天巨浪(思维) B. 「木」迷雾森林 (数字三角形模型) C. 「土」秘法地震(二维前缀和) F. 「水」悠悠碧波 (字符串) D. 「金」初心如金 (找规律) G. ...

  9. F.孤独(牛客小白月赛39)

    F.孤独(牛客小白月赛39) 题意: 给定一棵树,寻找一个路径,将断掉所有与这个路径上的点相连的边,使得剩下的最大连通块的大小最小 题解: 这题有点印象,感觉做过,至少这个方法肯定遇到过 设dp[u] ...

最新文章

  1. SpringSecurity过滤器链汇总
  2. pycharm+itk+vtk安装及测试程序运行
  3. aspectj 获取方法入参_深入探索编译插桩技术(二、AspectJ)
  4. python位置参数_Python;argparse;如何指定位置参数的位置
  5. supervisor 守护多个进程_进程管理工具之Supervisor
  6. 请问如何正确使用计算机的接口芯片,[计算机软件及应用]第05章接口芯片1.ppt
  7. S3C2440 偷学
  8. java poi 页码,apache poi页码
  9. oracle 12c transaction guard,oracle 12c的Data guard中废弃
  10. ArcGIS API for JavaScript——给图层添加标注
  11. C语言:百鸡百钱问题
  12. 华中农业大学第五届程序设计大赛 (7/12)
  13. 在运行microsoft windows 非核版本的计算机上_系统版本决定获得Win10 2004与20H2版更新时间...
  14. mtk驱动sensor移植
  15. 过滤钩子驱动程序一(微软DDK文档,FLASHSKY翻译) (转)
  16. RDKit | 基于RDKit的随机SMILES的生成
  17. python下载谷歌地图瓦片_Python地图可视化之Folium更换地图瓦片(Map Tiles)
  18. JavaScript实现更换背景图片
  19. Spring进阶(六):can not find proxy: set exposeproxy property on advised to make it available
  20. 共享服务中心建设原则-《企业IT架构转型之道-阿里巴巴中台战略思想与架构实战》

热门文章

  1. 清理 zabbix 历史数据, 缩减 mysql 空间
  2. java基础----Runtime类的使用(一)
  3. jQuery插件 -- Cookie插件
  4. 软件性能-概念、关注点、术语
  5. 字符串中统计单词个数
  6. [转]Windows Shell 编程 第十三章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7988004】...
  7. [CareerCup][Google Interview] 找出现次数
  8. 翻译:如何用Cocos2d来开发简单的IPhone游戏教程
  9. DotNet Framework 版本历史
  10. 使用 Linux 系统调用的内核命令图解