关注
第一题 #include <bits/stdc++.h>
using namespace std;
struct node {
int id;
int val;
int sum;
};
node nn[100005];
int n;
bool cmp1(node a, node b) {
return a.val < b.val;
}
bool cmp2(node a, node b) {
return a.id < b.id;
}
int main() {
ios::sync_with_stdio(false);
//freopen("input.txt", "r", stdin);
cin >> n;
for (int i = 0; i < n; ++i) {
cin >> nn[i].val;
nn[i].id = i;
}
sort(nn, nn + n, cmp1);
int now = 0;
int pre = 0;
nn[0].sum = 0;
now += nn[0].val;
pre = 0;
for (int i = 1; i < n; ++i) {
if (nn[i].val > nn[i-1].val) {
nn[i].sum = now;
pre = now;
now += nn[i].val;
} else {
nn[i].sum = pre;
now += nn[i].val;
}
}
sort(nn, nn + n, cmp2);
for (int i = 0; i < n; ++i) {
cout << nn[i].sum << endl;
}
return 0;
}
第二题代码,三个角到圆心角之和小于360度就是钝角了 #include <bits/stdc++.h>
using namespace std;
int arr[1005];
int n;
int ct;
bool check(int a, int b, int c) {
int aa = abs(arr[a] - arr[b]);
if (aa > 18000) aa = 36000 - aa;
int bb = abs(arr[a] - arr[c]);
if (bb > 18000) bb = 36000 - bb;
int cc = abs(arr[b] - arr[c]);
if (cc > 18000) cc = 36000 - cc;
return aa + bb + cc != 36000;
}
int main() {
ios::sync_with_stdio(false);
//freopen("input.txt", "r", stdin);
cin >> n;
for (int i = 0; i < n; ++i) {
cin >> arr[i];
}
sort(arr, arr+n);
ct = 0;
for (int i = 0; i < n; ++i) {
for (int j = i+1; j < n; ++j) {
for (int k = j + 1; k < n; ++k) {
if (check(i, j, k)) {
ct ++;
}
}
}
}
cout << ct << endl;
return 0;
}
第三题拓扑排序,不过不知道为啥,怎么做都是73% #include <bits/stdc++.h>
using namespace std;
int m, n, k;
int a, b;
map<int, int> ma;
map<int, vector<int> > mb;
set<pair<int, int> > se; // 去重
void solve() {
if (m == 0) {
cout << 0 << endl;
return ;
}
if (n == 0) {
cout << "E" << endl;
return;
}
int ans = 0;
stack<int> st;
for (int i = 1; i <= m; ++i) {
if (ma[i] == 0)
st.push(i);
}
int tp;
vector<int> tv;
while(!st.empty()) {
ans ++;
for (int wo = 0; wo < n; ++wo) {
if (st.empty()) break;
tp = st.top();
st.pop();
for (int i = 0; i < mb[tp].size(); ++i) {
-- ma[mb[tp][i]];
if (ma[mb[tp][i]] == 0) {
tv.push_back(mb[tp][i]);
}
}
}
for (int i = 0; i < tv.size(); ++i) {
st.push(tv[i]);
}
tv.clear();
}
bool flag = true;
for (int i = 1; i <= m; ++i) {
if (ma[i] > 0) {
flag = false;
break;
}
}
if (flag) {
cout << ans << endl;
} else {
cout << "E" << endl;
}
}
int main() {
ios::sync_with_stdio(false);
//freopen("input.txt", "r", stdin);
cin >> m >> n >> k;
pair<int, int> tpa;
for (int i = 0; i < k; ++i) {
cin >> a >> b;
if (a == b) continue;
if (a <= 0 || a > m) continue;
if (b <= 0 || b > m) continue;
tpa.first = a;
tpa.second = b;
if (se.find(tpa) != se.end()) {
continue;
} else {
se.insert(tpa);
}
ma[a] ++;
mb[b].push_back(a);
}
solve();
return 0;
}
第四题不会
查看原帖
点赞 12
相关推荐
点赞 评论 收藏
分享
11-26 14:42
郑州轻工业大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 什么是优秀的实习经历 #
9156次浏览 224人参与
# 实习简历求拷打 #
15655次浏览 182人参与
# 被上班搭子“传染”了哪些习惯 #
6112次浏览 102人参与
# 作业帮求职进展汇总 #
83776次浏览 551人参与
# 工作后,你落下了哪些病根 #
14377次浏览 193人参与
# 秋招被挂春招仍然能投的公司 #
7506次浏览 103人参与
# 实习要如何选择和准备? #
128498次浏览 1485人参与
# 外包能不能当跳板? #
54244次浏览 256人参与
# 诺瓦星云求职进展汇总 #
233475次浏览 1736人参与
# mt对你说过最有启发的一句话 #
38450次浏览 453人参与
# 公司情报交流地 #
126590次浏览 1227人参与
# 为了找工作你花了哪些钱? #
74832次浏览 361人参与
# 你觉得机械有必要实习吗 #
69760次浏览 485人参与
# 投格力的你,拿到offer了吗? #
153262次浏览 820人参与
# 一起聊美团 #
307516次浏览 1766人参与
# 摸鱼被leader发现了怎么办 #
103326次浏览 656人参与
# 京东开奖 #
631929次浏览 3180人参与
# 秋招特别不鸣谢 #
16392次浏览 186人参与
# 考研失败就一定是坏事吗? #
202237次浏览 1383人参与
# 选实习,你更看重哪方面? #
14971次浏览 226人参与
