2022-09-15-蚂蚁工程研发笔试-61
稍微难一点就败北了,伪大佬
1、5
6、7‘、10
6*2'
- InnoDB 存储引擎,事务提交commit依赖什么日志机制实现?
A. redolog undo log B. undolog binlog C. redo undo bin 三个都要 D. redo binlog
D?
- which wrong
A. 文件、进程可以作为shell命令的参数
B. 附带选项和参数,二者shell命令一次只能带一个
C. shell命令可省略参数
D. 命令选项后面可能带附带参数
B?
- 打印a.txt的最后10个字符
A. tail +10 a
B. tail -c 10 a
C. tail -n +10 a
D. tail -n -10 a
3B
- 长n的数与长m的数相加,用高精度加法,时间复杂度为
A. O(max(n,m))
B. O(lg max(n,m))
C. O(1)
D. O(nm)
4A
- which wrong
A. 并行索引分局部和全局索引,通过全局索引可快速找到任意...
B. 检索有区分属性k的特性码值k1的元组的查询,可以找到某分区保存码值k1,使用该分区中的局部索引来查找所需元组
C. 全局索引可以跨多个节点进行分区
D. 全局索引是建在存储于特定节点中的元组上的索引,建立在给定关系的索引分区上,内容和数据存在同一节点上
5C?
6*4' 少选1/3
- HTTP 请求报文包括:
请求行、首部字段、内容实体、状态行
响应报文(状态行、消息报头、响应正文)
ABC
- 虚拟存储的特征:
一次性、多次性、离散性、对换性
bcd
无需事先确定好线性表长度就可以编程实现线性表 (错)
允许线性表的长度有很强的可变性(错)引入缓冲区
A. 可以解决CPU与IO设备之间速度不匹配的矛盾
B. 一定程度上提高CPU、IO之间的并行性
C. 一定长度上减少CPU中断频率
D. 可解决基本数据单元大小不匹配的问题
BCD
- 选对的
A. Dijkstra 允许负边和负环
B. Dijkstra 允许负边不允许负环
C. Floyed 依次算所有点对(i,j)经过的中间节点属于{1},{1,2}...{1,2...,v}的最短路径
D. Bellman-ford 计算特定点对的时间复杂度是O(VE)
CD?
3编程 64'
// 14‘ 100% 13min
// 离谱!!!不能cout打印string,最后用char数组打印的
#include<iostream>
#include<vector>
#include<string>
#include<string.h>
using namespace std;
int main(){
int x;cin>>x;
string s="";
char c[26];int ci=0;
memset(c,0,26);
vector<int> a(26,0);
a[0]=1;
for(int i=1;i<26;i++){
a[i]=2*a[i-1];
}
int i=9;
while(x>0){
// printf("%d %d x=%d\n",i,a[i],x);
if(a[i]<=x){
// s.append(string('a'+i,1));
// s=s+string('a'+i,1);
c[ci++]='a'+i;
// cout<<"add "<<string('a'+i,1)<<"\n";
// printf("%d %d x=%d, s=%s\n",i,a[i],x,s.c_str());
x-=a[i];
}
i--;
}
// cout<<s;
c[ci]='\0';
cout<<c;
return 0;
}
// 20' 13min 70% -6'
// 20' 90% unsigned long long -2'
#include<iostream>
#include<vector>
#include<string>
#include<functional>
using namespace std;
typedef unsigned long long ull;
int main(){
ull n,a,b;cin>>n;
ull sumo=0;
vector<vector<ull>> e(n);
for(int i=1;i<n;i++){
cin>>a>>b;
a--,b--;
e[a].push_back(b);
e[b].push_back(a);
}
function<void(ull,ull)> f = [&](ull i, ull fa){
sumo+=i-fa;
// cout<<"i= "<<i<<", fa= "<<fa<<", po= "<<po<<endl;
for(auto j:e[i])
if(j!=fa)
f(j,i);
};
// cout<<"size o"<<e[0].size()<<"\n";
for(auto i:e[0])
f(i,0);
cout<<sumo;
return 0;
}
// 30' 20% 16min -24'
#include<iostream>
#include<vector>
#include<string>
#include<unordered_map>
using namespace std;
// unsigned long long f(const string& s, int l,int r){
// if(l==r) return 1;
// unsigned long long a=0;
// int mid = (l+r)/2;
// f(s,l,mid);
// f(s,mid+1,r);
// return a;
// }
int main(){
string s;
cin>>s;
int ans=s.length();
unordered_map<int,unordered_map<int,int>> k;
int c=0;
for(int i=0;i<3;i++)
c=c^(1<<(s[i]-'a'));
k[0][3]=c;
if(__builtin_popcount(c)==1)
ans++;
for(int i=0;i<s.length()-3;){
c=c^(1<<(s[i]-'a'))^(1<<(s[i+3]-'a'));
// k[++i][3]=c;
i++;
if(__builtin_popcount(c)==1)
ans++;
}
for(int l=5;l<=s.length();l+=2){
c=k[0][l-2];
c=c^(1<<(s[l-2]-'a'))^(1<<(s[l-1]-'a'));
k[0][l]=c;
if(__builtin_popcount(c)==1)
ans++;
for(int i=0;i<s.length()-l;){
c=c^(1<<(s[i]-'a'))^(1<<(s[i+l]-'a'));
// k[++i][l]=c;
i++;
if(__builtin_popcount(c)==1)
ans++;
}
}
cout<<ans;
return 0;
}#蚂蚁##蚂蚁金服##笔试##蚂蚁金服校招##23届秋招笔面经#
