今天学了莫比乌斯反演,竟然破天荒的自己推出来了一个题目!有关莫比乌斯反演的题解,和上次的01分数规划的题解明天再写吧~~~

学长们都在刷面试题,我也去试了试,120分钟,写出6题要有一点熟练度才行。先填上水题咯~·~~,4题可以进面试了,还是可以去面试的啦,开心~~~

多线程协作打印(完美世界2017秋招真题)

建立m个线程,每个线程只能打印一种字符,要求线程同时运行,交替打印n次字符。

比如: n=3 m=2打印字符为A和B。要求线程1打印3次A,线程2打印3次B,在屏幕输出ABABAB

注意: 需要检查输入有效性,遇到错误输入时,请打印error并安全退出

输入

打印次数n和字符序列。比如:2  ABC(三个字符需要三个打印线程)

样例输入

2  ABC

输出

每个线程打印n次字符,交替打印。在屏幕上输出n次字符序列

样例输出

ABCABC

时间限制

C/C++语言:1000MS

其他语言:3000MS

内存限制

C/C++语言:65536KB

其他语言:589824KB

水到炸!!!
#include <bits/stdc++.h>

using namespace std;

int main()
{
int n;
char str[];
scanf("%d%s",&n,str);
if(n<) {
puts("error");
return ;
} for(int i = ; i < n; i++) {
printf("%s",str);
}
puts(""); return ;
}
 

2.编程题

按序找到数组中最小的k个数(完美世界2017秋招真题)

对于一个无序数组,数组中元素为互不相同的整数,请返回其中最小的k个数,顺序与原数组中元素顺序一致。

输入

第一行为数组的长度n,需要返回的数目k,n >= k

接下来n行为数组的n个元素,每行为一个整数

样例输入

4 2

1

2

3

4

输出

输出为k行,每行为一个整数

样例输出

1

2

时间限制

C/C++语言:100MS

其他语言:2100MS

内存限制

C/C++语言:10KB

其他语言:524298KB

排序两次即可!

 
 

最短最优升级路径(完美世界2017秋招真题)

游戏网站提供若干升级补丁,每个补丁大小不一,玩家要升级到最新版,如何选择下载哪些补丁下载量最小。

输入

第一行输入              第一个数为用户版本  第二个数为最新版本,空格分开

接着输入N行补丁数据        第一个数补丁开始版本 第二个数为补丁结束版本 第三个数为补丁大小,空格分开

样例输入

1000 1050

1000 1020 50

1000 1030 70

1020 1030 15

1020 1040 30

1030 1050 40

1040 1050 20

输出

对于每个测试实例,输出一个升级路径以及最后实际升级的大小

样例输出

1000->1020->1040->1050(100)

时间限制

C/C++语言:1000MS

其他语言:3000MS

内存限制

C/C++语言:65536KB

其他语言:589824KB

最短路记录路径即可!

#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
const int maxn = ;
const ll inf = 9876543212345678LL; struct Edge {
int from,to;
ll dist;
}; struct HeapNode {
ll d;
int u;
bool operator < (const HeapNode& rhs) const {
return d > rhs.d;
}
}; bool broken[][]; struct Dij {
int n,m;
vector<Edge> edges;
vector<int> G[maxn];
bool done[maxn];
ll d[maxn];
int p[maxn]; void AddEdge(int from,int to,ll dist) {
edges.push_back((Edge){from,to,dist});
m = edges.size();
G[from].push_back(m-);
} long long dij(int s,int t) {
priority_queue<HeapNode> Q;
for(int i = ; i < n; i++)
d[i] = inf;
d[s] = ;
memset(done,,sizeof(done));
Q.push((HeapNode){,s});
while(!Q.empty()) {
HeapNode x = Q.top(); Q.pop();
int u = x.u;
if(done[u]) continue;
done[u] = true;
for(int i = ; i <(int)G[u].size(); i++) {
Edge& e = edges[G[u][i]];
if(d[e.to]>d[u]+e.dist) {
d[e.to] = d[u] + e.dist;
p[e.to] = G[u][i];
Q.push((HeapNode){d[e.to],e.to});
}
}
} return d[t];
} }sol; map<int,int> mp; int main()
{
freopen("in.txt","r",stdin);
int s,t;
scanf("%d%d",&s,&t); int cnt = ;
mp[s] = ;
mp[t] = ; int u,v,c;
while(scanf("%d%d%d",&u,&v,&c)!=EOF) {
if(mp.count(u)==)
mp[u] = cnt++;
if(mp.count(v)==)
mp[v] = cnt++; u = mp[u];
v = mp[v];
sol.AddEdge(u,v,c);
} printf("%I64d\n",sol.dij(,)); return ;
}
 

孪生质数(完美世界2017秋招真题)

数学中有很多奇特的现象,孪生质数就是一种(孪生素数就是指相差2的质数对,例如3和5,5和7,11和13…),现在要求输出所有在m和n范围内的孪生质数。

输入

输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)

样例输入

100 150

输出

对于每个测试实例,要求输出所有在给定范围内孪生质数,就是说,输出的孪生质数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开 ; 如果给定的范围内不存在孪生指数,则输出 “no” ; 每个测试实例的输出占一行。

样例输出

101 103 107 109 137 139

时间限制

C/C++语言:1000MS

其他语言:3000MS

内存限制

C/C++语言:65536KB

其他语言:589824KB

 
筛一下素数,然后检查一下!
 
随手4题,看来比赛最近打少了,最近手速有点低了,4题稳进面试咯!
还有两题待填~~~
 

即时战略游戏编队(完美世界2017秋招真题)

									题目描述

你正在玩一个RST(即时战略)游戏。此时你已经有很多队士兵,每一队里的士兵战队力相同。该游戏士兵种类以战斗力区分,既战斗力一样的士兵算作一种。你想重新调整编队,将现有的队列合并成战斗力相同的两队,请想出有多少种编队方法吧。

比如:你现在有两队士兵,第一队有4个士兵,每个士兵战斗力都是1,第二队有2个士兵,每个士兵战斗力都是2. 这时你有三种编队方法,可以将这些士兵合并成战斗力相同的两个队伍:

方法一:队伍1有4个战斗力为1的士兵,队伍2有2个战斗力为2的士兵,两队的战斗力都是4

方法二:队伍1有2个战斗力为2的士兵,队伍2有4个战斗力为1的士兵,两队的战斗力都是4

方法三:队伍1有2个战斗力为1的士兵和1个战斗力为2的士兵,队伍2有2个战斗力为1的士兵和1个战斗力为2的士兵,两队的战斗力都是4

输入

两个int型数组,长度均为n(0

int[] count:里面的元素代表每一队士兵的士兵数量,大于0小于1000

int[] value:里面的元素代表每一队士兵的士兵战斗力,大于0小于1000

注意:count和value数组的队伍是一一对应的

例如,上面题目描述中的例子里:

int[] count = {4, 2}     //表示你一共有两队士兵,这两队士兵的士兵数量分别为4和2

int[] value = {1, 2}     //表示你这两队士兵的战斗力分别为1和2(并且是跟count数组一一对应的。也就是说,士兵数量为4的队伍每个士兵的战斗力为1,士兵数量为2的队伍每个士兵的战斗力为2)

样例输入

对于每个测试实例,要求输出一个long值,表示有多少种均分法(有多少种方法可以将你的所有队伍合并成战斗力相同的两队)。

输出

两个int型数组,长度均为n(0

int[] count:里面的元素代表每一队士兵的士兵数量,大于0小于1000

int[] value:里面的元素代表每一队士兵的士兵战斗力,大于0小于1000

注意:count和value数组的队伍是一一对应的

例如,上面题目描述中的例子里:

int[] count = {4, 2}     //表示你一共有两队士兵,这两队士兵的士兵数量分别为4和2

int[] value = {1, 2}     //表示你这两队士兵的战斗力分别为1和2(并且是跟count数组一一对应的。也就是说,士兵数量为4的队伍每个士兵的战斗力为1,士兵数量为2的队伍每个士兵的战斗力为2)

样例输出

{4, 2}  {1, 2}

时间限制 C/C++语言:2000MS 其它语言:4000MS
内存限制 C/C++语言:65536KB 其它语言:589824KB
#include <bits/stdc++.h>

using namespace std;

vector<int> str2int(string str) {
vector<int> res;
int num = ;
for(int i = ; i < (int)str.length(); i++) {
if(str[i] == ' ') continue;
if(isdigit(str[i])) {
num *= ;
num += str[i] - '';
}
if(str[i] == ',' || i == (int)str.length() - ) {
res.push_back(num);
num = ;
}
}
return res;
} int main()
{
// freopen("in.txt","r",stdin);
string str;
map<int,int> mp; getline(cin,str);
str = str.substr(,str.length()-);
//cout <<str; vector<int> cnt = str2int(str); getline(cin,str);
str = str.substr(,str.length()-); vector<int> val = str2int(str); int sum = ; for(int i = ; i < (int)cnt.size(); i++) {
sum+=val[i]*cnt[i];
if(mp.count(val[i])) {
mp[val[i]] +=cnt[i];
}
else mp[val[i]] = cnt[i];
} if(sum%) {
puts("");
return ;
} cnt.clear();
val.clear(); cnt.push_back();
val.push_back(); for(auto it = mp.begin(); it!=mp.end(); it++) {
val.push_back(it->first);
cnt.push_back(it->second);
} int n = mp.size();
int m = sum/; int dp[n+][m+]; memset(dp,,sizeof(dp));
dp[][] = ;
for(int i = ; i <= n; i++) {
for(int j = ; j <=cnt[i]; j++) {
for(int k = ; k <= m; k++) {
if(k>=j*val[i])
dp[i][k] +=dp[i-][k-j*val[i]];
}
}
} cout<<dp[n][m]<<endl; return ;
}
 
 
 
 

ACM-ICPC(10 / 10)——(完美世界2017秋招真题)的更多相关文章

  1. 小米2017秋招真题——电话号码分身问题(Java版)

    原题描述如下: 通过对各个数字对应的英文单词的分析,可以发现一些规律: 字母Z为0独占,字母W为2独占,字母U为4独占,字母X为6独占,字母G为8独占: 在过滤一遍0.2.4.6.8后,字母O为1独占 ...

  2. 第K个幸运数(京东2017秋招真题)

    题目 4和7是两个幸运数字,我们定义,十进制表示中,每一位只有4和7两个数的正整数都是幸运数字.前几个幸运数字为:4,7,44,47,74,77,444,447... 现在输入一个数字K,输出第K个幸 ...

  3. 算法是什么我记不住,But i do it my way. 解一道滴滴出行秋招编程题。

    只因在今日头条刷到一篇文章,我就这样伤害我自己,手贱. 刷头条看到一篇文章写的滴滴出行2017秋招编程题,后来发现原文在这里http://www.cnblogs.com/SHERO-Vae/p/588 ...

  4. Leetcode - 剑指offer 面试题29:数组中出现次数超过一半的数字及其变形(腾讯2015秋招 编程题4)

    剑指offer 面试题29:数组中出现次数超过一半的数字 提交网址: http://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163 ...

  5. 美团点评2017校招笔试真题-算法工程师A

    美团点评2017校招笔试真题-算法工程师A 1.下面哪种STL容器的实现和其它三个不一样 A. set B. deque C. multimap D. map 正确答案: B STL的容器可以分为以下 ...

  6. 美团点评2017校招笔试真题-算法工程师B

    美团点评2017校招笔试真题-算法工程师B 1.以下关于经典的k-means聚类的说法哪个是错误的? A:k-means聚类算法是全局收敛的 B:k-means的聚类结果和初始聚类中心点的选取有关 C ...

  7. 爱奇艺2017秋招笔试(C++智能设备方向)

    虽然有方向,但是好像题目都是随机题库抽取. 选择题都很基础...挖坑,待更新 编程: 一. 奇异数: 如果一个数字满足以下条件,我们就称它为奇异数: 1.   这个数字至少有两位 2. 这个数的最低两 ...

  8. 2017微软秋招A题

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 There is an integer array A1, A2 ...AN. Each round you may ch ...

  9. [刷题]ACM/ICPC 2016北京赛站网络赛 第1题 第3题

    第一次玩ACM...有点小紧张小兴奋.这题目好难啊,只是网赛就这么难...只把最简单的两题做出来了. 题目1: 代码: //#define _ACM_ #include<iostream> ...

随机推荐

  1. VUE--mixins的一些理解。

    概念:混入 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式.混入对象可以包含任意组件选项.当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项. 用法: 1.创建混 ...

  2. 关于箭头函数的this指向问题

    document.onclick = function(){ // 普通函数的this是在运行的时候才临时绑定的,也就是说,函数不运行,你绝对不可能知道this是谁 // 下面这个函数如果是自调用,t ...

  3. C#知识点提要

    本篇博文主要对asp.net mvc开发需要撑握的C#语言知识点进行简单回顾,尤其是C# 3.0才有的一些C#语言特性.对于正在学asp.net mvc的童鞋,不防花个几分钟浏览一下.本文要回顾的C# ...

  4. VMware虚拟网卡设置问题

    具体操作过程如下: (1)为虚拟机添加虚拟网卡 (2)添加后会自动分配子网ip,不用修改.点击应用,确定. (3)添加完成后本机的网络上会多出一个网络适配器,根据虚拟机器中的ip设置此ip地址, 这里 ...

  5. 1.2 js基础

    1.onchange    99%用到select上边. 2.js是干什么的,修改css样式和属性   3.选项卡步骤   1.获取元素 2.循环给按钮加自定义属性 3.循环给按钮加事件   4.封装 ...

  6. 深入redis内部之redis启动过程之一

    redis作为一个服务器,它的启动是从main函数开始的.redis.c 1. 进程重命名 #ifdef INIT_SETPROCTITLE_REPLACEMENT spt_init(argc, ar ...

  7. Python编码规范杂记(很乱:))

    Python编码规范 导入模块 每一个(第三方)模块的导入都需要两个import语句, 如下 使用import some的方式导入模块, 如果有还有子模块的话, 则from father.son im ...

  8. react native 完美解决启动白屏

    先讲下我的RN版本0.58.5 首先安装react-native-splash-screen(目前使用的版本是3.2.0) 项目地址https://github.com/crazycodeboy/re ...

  9. Linux systemd资源控制初探

    Linux systemd资源控制初探 本文记录一次cgroup子目录丢失问题,并简单探索了Linux systemd的资源控制机制. 问题现象 我们希望通过systemd拉起服务并通过cgroup限 ...

  10. springboot整合activeMq 跳坑

    安装 activeMq 安装请看我的另一篇https://www.cnblogs.com/milicool/p/8420926.html 版本 springboot 2.0.5.RELEASE 项目结 ...