1.病毒检测

滑动窗口题

例子:

2

0101010(第一位下标为1)

1)找到第一个最短的满足k条件的子串,即s[2~4],l=2,r=4

2)找出这个子串左右连续的0的个数,分别为a,b,则对于这个子串的贡献为(a+1)*(b+1)

3)之后就是滑动窗口,r到下一个1的位置,l向右移动到第一个一的位置,重复2)计算贡献

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1000050;
char s[maxn];
int main()
{ll n,k;scanf("%lld",&k);scanf("%s",s+1);n=strlen(s+1);ll tmp=0,tp=0,fi=0,se=0,l=1,r=0,ans=0;if(k==0){for(int i=1;i<=n;i++){if(s[i]=='0'){tmp++;if(i==n) ans+=tmp*(tmp+1)/2;}else{ans+=tmp*(tmp+1)/2;tmp=0;}}printf("%lld\n",ans);return 0;}for(int i=1;i<=n;i++){if(s[i]=='1'){tmp++;}if(tmp==k){r=i;break;}}if(r==0){printf("0\n");return 0;}tp=tmp=1;r++;while(s[r]=='0'&&r<=n) tp++,r++;while(s[l]=='0') tmp++,l++;ans+=tmp*tp;//printf("%lld %lld %lld %lld %lld\n",l,r,ans,tmp,tp);//printf("!%lld\n",ans);while(r<=n){l++;r++;tmp=tp=1;while(s[l]=='0'){tmp++;l++;}while(s[r]=='0'&&r<=n) tp++,r++;ans+=tmp*tp;//printf("%lld\n",ans);}printf("%lld\n",ans);return 0;
}

考试成绩

每道题的答案为该题最多人选的答案

#include<bits/stdc++.h>
#define rep(i, j, k) for(int i = j; i <= k; i++)
#define dep(i, j, k) for(int i = k; i >= j; i--)
#define pb push_back
using namespace std;
const double eps=1e-8;
typedef long long ll;
const int maxn = 1050;
char s[maxn][maxn];
int num[5];
ll b[maxn];
int main()
{int n,m;scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){scanf("%s",s[i]+1);}for(int j=1;j<=m;j++) scanf("%lld",&b[j]);ll ans=0;for(int i=1;i<=m;i++){memset(num,0,sizeof(num));for(int j=1;j<=n;j++){num[s[j][i]-'A']++;}int mx=0;for(int i=0;i<5;i++) mx=max(mx,num[i]);ans+=b[i]*mx;}printf("%lld\n",ans);
}

石头碰撞

01背包。这道题的思路需要转化一下,其实这道题要求的就是把这些石头分成两部分,相差的最小值。可以感性理解下。

这样子就是最基础的01背包了,看f[i] i这个容量能不能凑出来

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=10050;
int f[maxn],a[maxn];
int main()
{int n;scanf("%d",&n);int sum=0;for(int i=1;i<=n;i++) scanf("%d",&a[i]),sum+=a[i];f[0]=1;for(int i=1;i<=n;i++){for(int j=sum;j>=a[i];j--){f[j]|=f[j-a[i]];}}int ans=sum;for(int i=1;i<=sum;i++){if(f[i]){ans=min(ans,abs(i-(sum-i)));}}printf("%d\n",ans);return 0;
}

蓄水池大作战

刚看题以为很难,然后数据范围只有1000,直接暴力即可

#include<bits/stdc++.h>
#define rep(i, j, k) for(int i = j; i <= k; i++)
#define dep(i, j, k) for(int i = k; i >= j; i--)
#define pb push_back
using namespace std;
const double eps=1e-8;
typedef long long ll;
const int maxn = 1050;
vector<int>ve[maxn];
int fa[maxn],a[maxn];
void dfs(int u,int f,int flag){fa[u]=f;a[u]=flag;for(auto v:ve[u]){if(v==f) continue;dfs(v,u,flag);}
}
int main()
{int n;scanf("%d",&n);for(int i=1;i<n;i++){int x,y;scanf("%d%d",&x,&y);ve[x].push_back(y);ve[y].push_back(x);}dfs(1,1,0);int q;scanf("%d",&q);while(q--){int op,x;scanf("%d%d",&op,&x);if(op==1){dfs(x,fa[x],1);}else if(op==2){while(fa[x]!=x){a[x]=0;x=fa[x];}a[1]=0;}else{if(a[x]) printf("1\n");else printf("0\n");}}
}

快手2020校园招聘秋招笔试--工程C试卷 (编程题题解全)相关推荐

  1. 快手2020校园招聘秋招笔试--工程A试卷 (编程题题解全)

    "好序列"的个数 反着求,先求出所有序列个数,再减去不符合的个数. 黑边把图分成一个,一个的连通分量. 所以我们只要用dfs求出每个不包含黑边的连通分量的包含点个数sz,sz^k就 ...

  2. 快手2020校园招聘秋招笔试--工程B试卷

    攻击者使用无效IP地址,利用TCP连接的三次握手过程,连续发送会话请求,使受害主机处于开放会话的请求之中,直至连接超时,最终因耗尽资源而停止响应.这种攻击被称为 A. DNS欺骗攻击 B. DDoS攻 ...

  3. 快手2020校园招聘秋招笔试--工程A试卷

    1.(计算机网络原理)若用斜杠记法标识子网掩码,则255.255.240.0对应于 B A. /19 B. /20 C. /21 D. /22 解析 255.255.240.0转换为二进制为11111 ...

  4. 快手2020校园招聘秋招笔试--工程B试卷 订正

    1.三种攻击 DNS欺骗攻击:冒充域名 把原来查询的IP改为其他IP ddos攻击:大量合法的服务器向某一目标不断发送请求,导致其他用户无法使用 SYN Flooding攻击:攻击者使用无效IP地址 ...

  5. 快手2020校园招聘秋招笔试--工程C试卷

    1. 关于java的异常处理机制,以下说法正确的是: A. 当某个线程抛出OutOfMemoryError时,其他线程有可能不受影响 B. 当大量抛出RuntimeException时,不会影响系统的 ...

  6. 快手2020校园招聘秋招笔试--工程C试卷(21题)滑动窗口解决字串

    病毒检测 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 小明最近在做病毒自动检测,他发现,在某些library 的代码段的二进制表示中,如果包含子串并且恰好有 ...

  7. 快手2020校园招聘秋招笔试--工程A试卷 题4

    题意:中文题面自行理解 思路:处理出每块由红色边连成的连通块的点个数,ans=总方案数-所有只有红边相连的块的总方案数+只有黑边与之相连的点个数 代码: #include<bits/stdc++ ...

  8. 渣渣做后端真题-- 快手2020校园招聘秋招笔试--工程A试卷 选择题

    真的是一枚渣渣,题在牛客网找的,有错误求大神指导,求一起做题的小伙伴,没写的题是我会的,有问题可以给我留言呀- A:记忆小Tips:4** 没有402(阿玛尼红管402 ,一只鲜艳的苹果红),5** ...

  9. 快手2020校园招聘秋招笔试--算法B试卷

    四个编程题总体算比较简单,基本都在LeetCode出现过.但是我的速度太慢了,还要加油啊ヾ(◍°∇°◍)ノ゙ 牛客快手2020校园招聘秋招笔试–算法B试卷 合法数独 给定一个数独板的输入,确认当前的填 ...

最新文章

  1. 【UIDynamic例子】挂起的方块
  2. LaxTex---问题1: ! I can't write on file `***.pdf'.(Press Enter to retry, or Control-Z to exit; \ldots
  3. 阿里智能对话交互实践与创新
  4. 海康大华RTSP格式
  5. tensorflow dataset_ops shuffle()方法 (随机重新排列此数据集的元素)
  6. java源码依赖分析_高德APP全链路源码依赖分析工程
  7. ios yymodel 将字典转数组模型_TensorNet——基于TensorFlow的大规模稀疏特征模型分布式训练框架
  8. SIP.conf的常用参数配置
  9. Linux ubuntu 装openCV,Ubuntu Linux下安装OpenCV2.4.1所需包
  10. std::thread参数传递包含引用时的注意事项
  11. OpenCms后台工作间汉化设置10.5
  12. 斐讯K2 新版固件刷机教程
  13. 趁年轻,我们干点什么吧
  14. 元气骑士如何获得机器人成就皮肤_《元气骑士》听过浮游炮大礼包吗?有利于快速获取机器人的皮肤!...
  15. 【JCC技术】JCC功能演示
  16. dango mysql 的问题
  17. 专业档案门类代码编码方案
  18. 三款软件,让你的文字转语音更简单
  19. u盘怎么进入pe系统并修改系统密码
  20. 福建省一级计算机考试文字录入,2015福建省机关事业工勤人员计算机文字录入员工作总结.doc...

热门文章

  1. 红旗linux做成u盘,红旗linux下如何用u盘
  2. 何为Turing Machine(图灵机)?
  3. 不要慌,我有亿点小建议!万字长文
  4. python编程是什么-Python编程
  5. 2021天梯赛L1-074 两小时学完C语言 题解
  6. Android使用drawBitmapMesh方法实现旗帜飞扬,舞动的图片效果
  7. 盘一盘!实时自动驾驶车辆定位技术都有哪些?(视觉/Lidar/多传感器数据融合)...
  8. 大数据时代,隐私不能粗放管理
  9. 20线程测试cpu性能软件,3DMark推出CPU专用测试工具CPU Profile,可对比不同线程下的CPU性能...
  10. 山东涛雒镇万亩水稻 国稻种芯·中国水稻节:日照迎来收割季