过题情况

第一题:100%
第二题:100%
第三题:100%
第四题:100%
第五题:100%

第一题

经典区间dp问题,dp[i][j]代表着从字符串i位置到j位置需要的最小括号匹配数,如果第i个位置和第j个位置的两个括号是匹配的,那么dp[i][j] = dp[i+1][j-1],相当于两边分别往里缩了一个;当i<j时,dp[i][j] = dp[i][k]+dp[k+1][j] ;

#include<bits/stdc++.h>
using namespace std;
const int maxn=222;
int dp[maxn][maxn];
int main(){string s;cin>>s;int len=s.length();for(int i=0;i<len;i++)dp[i][i]=1;for(int l = 1; l < len; l++){for(int i = 0; i < len - l; i++){int j = i + l;dp[i][j]=len;if((s[i]=='[' && s[j]==']') || (s[i]=='(' && s[j]==')'))dp[i][j] = min(dp[i][j], dp[i+1][j-1]);for(int k = i; k < j; k++)dp[i][j] = min(dp[i][j], dp[i][k] + dp[k+1][j]);}}printf("%d\n",dp[0][len-1]);
}

第二题:

学过高数的都会,简单的一个积分题

#include<bits/stdc++.h>
using namespace std;
double solve(double a, double b, double x){return a*x*x*x/3+x*x/2+b*x;
}
int main(){int T;scanf("%d",&T);while(T--){double A,B,C,D;cin>>A>>B>>C>>D;double ans=solve(A,B,D)-solve(A,B,C);printf("%lf\n",ans);}
}

第三题:

很简单答案为C(n,1)*1+C(n,2)*2+C(n,3)*3…,看到这是不是很熟悉了
ans=C(n,0)*0+C(n,1)*1+C(n,2)*2+C(n,3)3…+C(n,n)n 正着写
ans=C(n,n)n+C(n,n-1)(n-1)+… 反着写
两个加起来2ans=n2^n
ans=n2^(n-1)即可,用快速幂

#include<bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
long long quick_pow(long long a,long long b){long long ans=1;while(b){if(b&1)ans=ans*a%mod;a=a*a%mod;b>>=1;}return ans;
}
int main(){long long n;cin>>n;cout<<n*quick_pow(2, n-1)%mod<<endl;
}

第四题:

STL大法好,set+map轻松做到排序+计数

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+200;
set<int>g[maxn];
int main(){int n,m;scanf("%d%d",&n,&m);while(m--){int x,y;scanf("%d%d",&x,&y);g[x].insert(y);g[y].insert(x);}map<set<int>, int>q;for(int i=1;i<=n;i++)if(g[i].size()!=0)q[g[i]]+=1;long long ans=0;map<set<int>, int>::iterator it;for(it=q.begin();it!=q.end();it++){int num=it->second;if(num>1)ans+=1ll*num*(num-1)/2;}cout<<ans<<endl;
}

第五题

很简单的想法,最短路即可,注意!!!坑点在于有重边,我还暴力写了个dfs+剪枝,过了55%

最短路

#include<bits/stdc++.h>
using namespace std;
const int INF=1e9;
const int maxn=2222;
int v[maxn];
int dis[maxn], a[maxn][maxn];
int n,m,k;
void Dj()
{for (int i = 2; i <= n; i++)dis[i] = INF;dis[1] = 0;memset(v, 0, sizeof(v));for (int i = 1; i <= n; i++){int u = -1, minn = INF;for (int j = 1; j <= n;j++)if (v[j] == 0 && dis[j] < minn){minn = dis[j]; u = j;}if(u==-1)break;v[u] = 1;for (int j = 1; j <= n; j++)if (v[j] == 0)dis[j] = min(dis[j], dis[u] + a[u][j]);}
}
int main(){cin>>n>>m>>k;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)a[i][j]=INF;while(m--){int x,y,z;scanf("%d%d%d",&x,&y,&z);a[x][y]=min(a[x][y],z);a[y][x]=min(a[y][x],z);}while(k--){int x,y;scanf("%d%d",&x,&y);a[x][y]=0;}Dj();if(dis[n]==INF)dis[n]=-1;cout<<dis[n]<<endl;
}

暴力dfs

#include<bits/stdc++.h>
using namespace std;
const int maxn=2222;
vector<pair<int,int> >G[maxn];
vector<int>K[maxn];
int n,m,k,ans=1e9;
int vis[maxn];
void dfs(int u,int fa,int step){if(u==n){if(step<ans)ans=step;return;}if(step>=ans)return;for(int i=0;i<K[u].size();i++){int v=K[u][i];if(v==fa||vis[v])continue;vis[v]=1;dfs(v,u,step);vis[v]=0;}for(int i=0;i<G[u].size();i++){int v=G[u][i].first, w=G[u][i].second;if(v==fa||vis[v])continue;vis[v]=1;dfs(v,u,step+w);vis[v]=0;}
}
int main(){cin>>n>>m>>k;while(m--){int x,y,z;scanf("%d%d%d",&x,&y,&z);G[x].push_back(make_pair(y,z));G[y].push_back(make_pair(x,z));}while(k--){int x,y;scanf("%d%d",&x,&y);K[x].push_back(y);}vis[1]=1;dfs(1,0,0);if(ans==1e9)ans=-1;cout<<ans<<endl;
}

腾讯2021校园招聘-技术研究类和数据分析-第一次笔试20200823相关推荐

  1. 腾讯技术研究类和数据分析第一次笔试(2021.8.22)——Python

    第一题:开锁--数学期望 # 最优策略:钥匙的选择先从消耗时间最少的开始选择,然后选择第二小的依次类推 # 开锁概率1/n def openLockTime(n, m, time):time_reve ...

  2. 腾讯2021校园招聘-后台综合-第二次笔试 Apare_xzc

    腾讯2021校园招聘-后台&综合-第二次笔试 Apare_xzc 2020.9.6 20:00-22:00 5道编程题,500分 第一题:链表的公共部分 题意: 给定两个长度分别为n,m的链表 ...

  3. 笔试面试(1)腾讯2014校园招聘软件开发类笔试试题

    原文:http://blog.csdn.net/zs634134578/article/details/20938113 把基本经典的书籍认真看看,那些笔试面试的都不是什么问题.但是,专门的突击和训练 ...

  4. 腾讯2021校园招聘技术类编程题汇总

    第一题 代码: '''author: 'Qingmang'data: "2022/9/8 16:26"email: "1107438760@qq.com" '' ...

  5. 搜狐2013校园招聘技术研发类笔试题

  6. 酷狗2015秋季校园招聘技术开发类笔试题

    答案不一定对 A->C:172.32-..

  7. asic面试题目 英伟达_免笔试!不限量!全球可编程图形处理技术领袖英伟达2021校园招聘火热进行中!...

    关注并标星大同学吧 每周1次,打卡阅读 快速获取行业最新资讯 秋意浓,渐微凉 校招逐渐收尾 不少同学陆陆续续开始签约 还在观望决意不定的同学 英伟达还没结束! 筹谋已久的英伟达2021校园招聘 终于来 ...

  8. 2014校园招聘_腾讯2014校园招聘

    目录: 1.腾讯201 4 校园招聘简介 2.讯招聘常见问题解答 3.腾讯职业发展&薪酬待遇 4.腾讯校园招聘笔试经验 4.1 腾讯用户研究/ 交互设计笔试题目回忆版(杭州)-2012.10. ...

  9. 腾讯2020校园招聘----逛街

    腾讯2020校园招聘----逛街 文章目录 腾讯2020校园招聘----逛街 一.问题描述 二.问题分析 一.问题描述 小Q在周末的时候和他的小伙伴来到大城市逛街,一条步行街上有很多高楼,共有n座高楼 ...

  10. 京东物流研发岗位会背景调查吗_【秋招资讯】京东健康于港交所主板上市 | 京东健康2021校园招聘火热进行中!...

    北京时间12月8日,京东健康股份有限公司(简称"京东健康")正式于香港联交所主板上市,股票代码为6618.据港交所公告,京东健康公开发售价定为每股70.58港元,若不行使超额配股权 ...

最新文章

  1. The 2014 ACM-ICPC Asia Mudanjiang Regional First Round A
  2. 去掉字符串连续出现K个0的子串
  3. lazyload延迟加载组件
  4. html特殊文字效果,HTML几个特殊的属性标签的使用介绍
  5. MySQL从入门到精通50讲(八)-MySQL排序分组
  6. iterator与const_iterator及const iterator区别
  7. esp8266原理图_ESP32/ESP8266使用MicroPython控制DHT11/DHT22
  8. 全国青少年信息学奥林匹克联赛
  9. 数字图像处理--图像梯度算子的本质
  10. 学习oracle的感悟,随笔:最近关于Oracle学习思考的一些感悟
  11. BGP 13条选路规则
  12. 建立本地rhel5.3的yum源
  13. AWS DeepRacer 默认参数调优 实验一
  14. VBA 复制同文件夹下多工作簿中同名工作表 分别粘贴至同一工作簿的不同工作表
  15. pytorch BCEWithLogitsLoss pos_weight参数解疑
  16. 如何用python语言解一元二次方程式
  17. 作为项目经理你应该掌握的关键链法
  18. 推荐 7 个牛哄哄的电商项目
  19. css:单行超出显示三点省略号,总是忘,写个博客吧
  20. 《C专家编程》读书笔记3

热门文章

  1. 全面公测 | 百度智能云CCE在离线混部功能
  2. JWT的数字签名的简单理解
  3. MapReduce优缺点
  4. 单元格内多个姓名拆分成一列_excel一个单元格中有多个名字,怎样拆分这些名字,名字是用空格分开的《excel批量分列》...
  5. Android设置全屏代码
  6. 使用Hibernate中save方法时由于设置的id的增长方式为assigned报错处理和
  7. cocos2d-x 3.17.2 调用cocos studio发布的csb文件,遇到按钮图片显示不正常问题
  8. HTML背景渐变圆圈,6种CSS3平滑过渡的渐变背景颜色
  9. 网页设计成品DW静态网页Html5自应式css3——动漫设计响应式(10页) HTML+CSS+JavaScript 动漫设计制作 简单静态HTML网页作品 动漫设计作业成品 学生个人网站模板
  10. 部队计算机专业培训申请书,《计算机专业奖学金申请书》.docx