T3 暑假打工

感觉:难; 题意:要在规定时间赚很多钱,数据有干1天后a[i]天后给b[i]元; 我的思路:无; 思路:运用贪心策略将能拿到的最多钱的中工作长的用优先队列拿出后,; 堆 大根堆 大根堆:堆顶元素最大,用于快速找最大值;

定义用priority_queue<类型>名字;

小根堆 小根堆:堆顶元素最小,用于快速找最小值;

定义用priority_queue<类型,vector<类型>,greater<类型>>名字;

例题day1,T3,暑假打工;

用大根堆找最大的,用利益最大的方法测;

#include <bits/stdc++.h>
using namespace std;
priority_queue<int>x;
vector<pair<int,int>> jobs;
int main(){
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		int a,b;
		cin>>a>>b;
		jobs.push_back({a,b});
	}
	sort(jobs.begin(),jobs.end());
	int z=0,y=0;
	for(int i=1;i<=m;i++){
		while(z<n&&jobs[z].first<=i){
			x.push(jobs[z].second);
			z++;
		}
		if(x.size()!=0){
			y+=x.top();
			x.pop();
		}
	}
	cout<<y;
	return 0;
}

T4 我讨厌因式分解;

错点:遍历少了;

#include <bits/stdc++.h>
using namespace std;
int main(){
	long long x;
	cin>>x;
	for(long long i=-200;i<=200;i++){
		for(long long j=-200;j<=200;j++){
			if((i*i*i*i*i)-(j*j*j*j*j)==x){
				cout<<i<<" "<<j;
				return 0;
			}
		}
	}
	return 0;
}

原来开的-120--120,小了;