Codeforces Round #241 (Div. 2) C
来源:互联网 发布:周易生辰八字起名软件 编辑:程序博客网 时间:2024/05/22 09:41
题目链接:C. Booking System
题意:n个旅游团,每个团有一定人数,和开销,现在一个餐馆有k个桌子,每个桌子能坐一定人数,要把这些桌子分配给旅游团,一定要能坐的人数大于旅游团人数才能坐下,问最多能赚的钱,并输出旅游团桌子匹配方案。
思路:贪心,从钱最多的旅游团开始放,每次从最小的桌子开始找,然后注意最后输出的id号,所以排序前要多存一个id
代码:
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;const int N = 1005;int n, vis[N], k;struct Visit { int num, value, id;} v[N];struct Table { int num, id;} t[N];bool cmp(Visit a, Visit b) { if (a.value != b.value) return a.value > b.value; return a.num > b.num;}bool cmp2(Table a, Table b) { return a.num < b.num;}int main() { scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d%d", &v[i].num, &v[i].value); v[i].id = i; } sort(v, v + n, cmp); scanf("%d", &k); for (int i = 0; i < k; i++) { scanf("%d", &t[i].num); t[i].id = i; } sort(t, t + k, cmp2); int ans1 = 0, ans2 = 0, ans[N]; memset(ans, -1, sizeof(ans)); for (int i = 0; i < n; i++) { for (int j = 0; j < k; j++) { if (vis[j]) continue; if (t[j].num >= v[i].num) { vis[j] = 1; ans[i] = t[j].id; ans1++; ans2 += v[i].value; break; } } } printf("%d %d\n", ans1, ans2); for (int i = 0; i < n; i++) { if (ans[i] == -1) continue; printf("%d %d\n", v[i].id + 1, ans[i] + 1); } return 0;}
1 0
- Codeforces Round #241 (Div. 2) C
- Codeforces Round #241 (Div. 2) A~C
- 【codeforces】Codeforces Round #370 (Div. 2) C
- Codeforces Round #241 (Div. 2)
- Codeforces Round #241 (Div. 2)
- Codeforces Round #241 (Div. 2) A B C题解
- Codeforces Round #105 (Div. 2) C
- Codeforces Round 134 div 2 C题
- Codeforces Round #137 (Div. 2), problem: (C)
- Codeforces Round #153 (Div. 2) C题
- Codeforces Round #158 (Div. 2) C题
- Codeforces Round #162 (Div. 2) C
- Codeforces Round #166 (Div. 2) c. Secret
- Codeforces Round#170(Div 2)C
- Codeforces Round #173 (Div. 2) Problem C
- Codeforces Round #192 (Div. 2) C. Purification
- Codeforces Round #196 (Div. 2) C. Quiz
- Codeforces Round #197 (Div. 2) (C~E)
- solr+tomcat例子
- 学习笔记_oracle——体系结构
- 2014校园招聘总结
- action的学习
- 学习笔记_oracle——备份与恢复
- Codeforces Round #241 (Div. 2) C
- Loadrunner IP欺骗
- Java开发中的23种设计模式详解
- 学习笔记_oracle——游标与动态SQL
- 检测重复文件功能实现(改进版本1)
- Codeforces Round #241 (Div. 2) D
- Remove '@override' annotation解决办法
- solr资料网址
- fedora19/20 安装nvidia驱动