当前位置 |首页 > 作业代写 > C++/C代写 >
分享这个代写网站给同学或者朋友吧!


hulu2018公司笔试编程



时间限制:C/C++语言 1000MS;其他语言:3000MS

内存限制:65536KB;其他语言:589824KB

题目描述:


给定一个正整数组a,返回一个新的数组Sums,满足sums[i]的值为a重笔a[i]小的数字之和,如果不存在比a[i]小的数字,则sums[i]为0,

已知数组a中元素最大值不超过100000,数组长度不超过10000,数组元素允许重复。


输入

第一行为证书n,表示数组的长度
接下的n行数字表示数组里的元素



输出

正整数数组sums,使得sunms长度与a长度相同



样例输出

4
5
4
2
9

样例输出


6
2
0
11


非正规答案,作为参考:

#include<iostream>
#include <vector>
#include<map>
int main() {
std::map<unsigned long long, unsigned long long> m;
unsigned long long n;
std::cin >> n;
if (n == 0) return 0;
std::vector<unsigned long long> input(n);
for (unsigned long long i = 0; i < n; i++) {
std::cin >> input[i];
if (m.find(input[i]) == m.end()) {
m[input[i]] = input[i];
} else {
m[input[i]] += input[i];
}
}
unsigned long long sum = 0;
for (auto iter = m.begin(); iter != m.end(); iter++) {
unsigned long long second = iter->second;
m[iter->first] = sum;
sum += second;
}
for (unsigned long long i = 0; i < n; i++) {
std::cout << m[input[i]] << std::endl;
}
return 0;
}





时间限制:C/C++语言 1000MS;其他语言:3000MS

内存限制:131072KB;其他语言:655360KB

题目描述:


给定一个圆,圆心在原点。给定圆上一组点a[i] (i=1,2,......n),各点互相不重复,且用x轴正方向逆时针转至与该点所在半径重合时所转角度的100倍(整数)表示,取值范围是(0,36000),

我们可以从这组点钟任选三点组成一个三角形,请问最多可以组成多少个三角形?

输入

第一行为为一个正整数,n<=1000.
接下来n行,每一行有一个整数,每个数表示在圆边上的一个点。
输出
任选三点,可以组成钝角三角形的数量

样例输入

4
0
10000
12000
18000


样例输出

2

hint

补充样例
输入样例乙
4
9
0
27000
18000
输出样例乙
0

非正规答案,作为参考:

 #include<iostream>
#include <vector>
int main() {
int n;
std::cin >> n;
std::vector<int> input(n);
std::vector<int> B(36000, 0);
for (int i = 0; i < n; i++) {
std::cin >> input[i];
B[input[i]]++;
}
for (int i = 1; i < 36000; i++) {
B[i] += B[i-1];
}
unsigned long long rst = 0;
int i = 0;
for (; i < n; i++) {
unsigned long long howmany = 0;
if (input[i] < 18000) {
howmany = B[input[i]+17999] - B[input[i]];
} else if (input[i] == 18000) {
howmany = B[35999]-B[18000];
} else {
howmany = B[35999] - B[input[i]] + B[input[i]-18001];
}
rst += howmany*(howmany-1)/2;
}
std::cout << rst;
return 0;
}

QQ图片20180911190853.jpg

 // 3
#include <iostream>
#include <map>
#include <vector>
#include <queue>
int main() {
unsigned int m, n, k;
std::cin >> m >> n >> k;
std::vector<unsigned int> has_rely(m+1, 0);
std::map<unsigned int, std::vector<unsigned int>> key_release_value;
for (unsigned int i = 0; i < k; i++) {
unsigned int a, b;
std::cin >> a >> b;
if (key_release_value.find(b) == key_release_value.end()) {
std::vector<unsigned int> v;
v.push_back(a);
key_release_value[b] = v;
} else {
key_release_value[b].push_back(a);
}
has_rely[a]++;
}
std::priority_queue<unsigned int, std::vector<unsigned int>, std::greater<unsigned int>> can_do;
for (unsigned int i = 1; i <= m; i++) {
if (has_rely[i] == 0) {
can_do.push(i);
}
}
unsigned int count = 0;
unsigned int days = 0;
while (true) {
if (can_do.size() == 0) {
if (count != m) {
std::cout << 'E';
} else {
std::cout << days;
}
return 0;
}
std::vector<unsigned int> fresh_new;
unsigned int poped = 0;
while (can_do.size() != 0) {
poped++;
unsigned int job_idx = can_do.top();
can_do.pop();
fresh_new.push_back(job_idx);
if (poped == n) break;
}
count += poped;
days++;
for (auto released : fresh_new) {
for (auto can_release : key_release_value[released]) {
has_rely[can_release]--;
if (has_rely[can_release] == 0) {
can_do.push(can_release);
}
}
}
}
}

代写CS&Finance|建模|代码|系统|报告|考试

编程类:C代写,JAVA代写 ,数据库代写,WEB代写,Python代写,Matlab代写,GO语言,R代写

金融类统计,计量,风险投资,金融工程,R语言,Python语言,Matlab,建立模型,数据分析,数据处理

服务类:Lab/Assignment/Project/Course/Qzui/Midterm/Final/Exam/Test帮助代写代考辅导

天才写手,代写CS,代写finance,代写statistics,考试助攻

E-mail:850190831@qq.com   微信:BadGeniuscs  工作时间:无休息工作日-早上8点到凌晨3点


如果您用的手机请先保存二维码到手机里面,识别图中二维码。如果用电脑,直接掏出手机果断扫描。

1513067809116994.png



代写