1 月饼

#include <iostream>
#include <cstring> 
#include <algorithm>
using namespace std;
const int N = 3010;
pair<double, double> a[N];
bool cmp(pair<double,double> a, pair<double,double> b){
	return (a.second / a.first) > (b.second / b.first);
}
int main()
{
	int n; double m; cin >> n >> m;
	for(int i = 1; i <= n; i ++) cin >> a[i].first;
	for(int i = 1; i <= n; i ++) cin >> a[i].second;
	sort(a + 1, a + n + 1, cmp);

	double res = 0;
	for(int i = 1; i <= n; i ++)
	{
		double v = a[i].first, w = a[i].second;
		if(m <= v)
		{
			res += (double)1.0 * m / v * w;
			break;
		}
		res += w;
		m -= v;
	}	
	printf("%.2lf\n", res);
}


2 汽车加油问题

#include <iostream>
#include <cstring> 
#include <algorithm>
#define int long long
using namespace std;
const int N = 100010;

signed main()
{
	int n, k, x; cin >> n >> k;
	int dis = n, sum = 0, res = 0;
	bool f = true;
	for(int i = 1; i <= k + 1; i ++)
	{
		cin >> x;
		if(x > n) f = false;
		if(sum + x > dis)
		{
			dis = sum + n;
			res ++;
		}
		sum += x;
	}
	if(f) cout << res << '\n';
	else cout << "No Solution!\n";
}

3 会场安排问题

#include <iostream>
#include <cstring> 
#include <algorithm>
using namespace std;
int s[101], e[101]; 
signed main()
{
	int k; cin >> k;
    for (int i = 1; i <= k; i++)
        cin >> s[i] >> e[i];
    sort(s + 1, s + k + 1); 
    sort(e + 1, e + k + 1);
    int res = 0;
	for (int i = 1, j = 1; i <= k; i++)
    {   
        if (e[j] > s[i]) res ++;
        else j++;
    }
    cout << res << '\n';	
}


4 程序存储问题

#include <iostream>
#include <cstring> 
#include <algorithm>
#include <vector>
#define int long long
using namespace std;
signed main()
{
	int n, m; cin >> n >> m;
	vector<int> vec;
	for(int i = 1, x; i <= n; i ++) 
	{
		cin >> x;
		vec.push_back(x);
	}	
	sort(vec.begin(), vec.end());
	int res = 0;
	for(auto x : vec)
	{
		if(x > m) break;
		m -= x;
		res ++;
	}	
	cout << res << '\n';
}

5 工厂机器安排

#pragma GCC optimize ("Ofast")
#pragma GCC optimize ("unroll-loops")
#include <iostream>
#include <cstring> 
#include <algorithm>
#include <vector>
#define int long long
using namespace std;
bool cmp(pair<int,int> a, pair<int,int> b){
	return a.first == b.first ? a.second > b.second : a.first > b.first;
}
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	int n, m, x, y;
	vector<pair<int,int>> mac, tas;
	vector<int> cnt(110, 0);
	int num, sum;
	while(cin >> n >> m)
	{
		num = 0, sum = 0;
		mac.clear(); tas.clear();
		for(int i = 0; i < 110; i ++) cnt[i] = 0;
		for(int i = 0; i < n; i ++)
			cin >> x >> y, mac.push_back({x, y});
		for(int i = 0; i < m; i ++)
			cin >> x >> y, tas.push_back({x, y});
			
		sort(mac.begin(),mac.end(), cmp);
		sort(tas.begin(),tas.end(), cmp);
				
		for(int i = 0, j = 0; i < m; i ++)
		{
			while(j < n && mac[j].first >= tas[i].first)
			{
				cnt[mac[j].second] ++;
				j ++;
			}
			for(int k = tas[i].second; k <= 100; k ++)
			{
				if(cnt[k])
				{
					cnt[k] --;
					num ++;
					sum += (500 * tas[i].first + 2 * tas[i].second);
					break;
				}
			}
		}
		cout << num << " " << sum << '\n';
	}
}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐