problemscpp
A collection of my answers to algorithm problems in c++.
静态 Public 成员函数 | 所有成员列表
acwing::acwing1952类 参考

AcWing 1952. 金发姑娘和 N 头牛 更多...

#include <acwing.h>

静态 Public 成员函数

static int main (istream &, ostream &)
 

详细描述

AcWing 1952. 金发姑娘和 N 头牛

在文件 acwing.h456 行定义.

成员函数说明

◆ main()

int acwing::acwing1952::main ( istream &  cin,
ostream &  cout 
)
static

在文件 acwing.cpp1220 行定义.

1220 {
1221 unsigned short n;
1222 unsigned short x;
1223 unsigned short y;
1224 unsigned short z;
1225 cin >> n >> x >> y >> z;
1226 auto as = unordered_map<unsigned int, unsigned int>();
1227 auto bs = unordered_map<unsigned int, unsigned int>();
1228 auto edges = set<unsigned int>();
1229 for(unsigned short i = 0; i < n; i++) {
1230 unsigned int a;
1231 unsigned int b;
1232 cin >> a >> b;
1233 if(!as.contains(a)) {
1234 as.insert(pair<unsigned int, unsigned int>(a, 1));
1235 edges.insert(a);
1236 } else {
1237 as[a]++;
1238 }
1239 if(!bs.contains(b)) {
1240 bs.insert(pair<unsigned int, unsigned int>(b, 1));
1241 edges.insert(b);
1242 } else {
1243 bs[b]++;
1244 }
1245 }
1246 unsigned int count = x * n;
1247 unsigned int max = count;
1248 for(unsigned int edge: edges) {
1249 if(as.contains(edge)) {
1250 count += (y - x) * as[edge];
1251 }
1252 if(max < count) {
1253 max = count;
1254 }
1255 if(bs.contains(edge)) {
1256 count -= (y - z) * bs[edge];
1257 }
1258 }
1259 cout << max;
1260 return 0;
1261 }

被这些函数引用 acwing::TEST().


该类的文档由以下文件生成: