A. 矩阵转置

#include<bits/stdc++.h>
using namespace std;
int h,w;
int main(){
	cin>>h>>w;
	vector<vector<int>>a(h,vector<int>(w));
	for(int i=0;i<h;i++){
		for(int j=0;j<w;j++){
			cin>>a[i][j];
		}
	}
	for(int j=0;j<w;j++){
		for(int i=0;i<h;i++){
			cout<<a[i][j]<<" ";
		}
		cout<<endl;
	}
	return 0;
}

本题考察对二维数组的运用,考点是在普通数组的二维数组达到极限时需要使用vector数组,错误点在没有想到vector数组和没有想到vector数组

C. 暑假打工

#include <bits/stdc++.h>
using namespace std;
int n,m,sum=0,k=1;
struct w{
	int a,b;
};
w s[100001];
priority_queue<w>p;
bool cmp(w a1,w b1){
	return a1.a<b1.a;
}
bool operator<(w a1,w b1){
	return a1.b<b1.b;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>s[i].a>>s[i].b;
	}
	sort(s+1,s+1+n,cmp);

	for(int i=1;i<=m;i++){
		while(k<=n&&s[k].a<=i){
			p.push(s[k]);
			k++;
		}		
		if(!p.empty()){
			sum+=p.top().b;
			p.pop();
		}
	}
	cout<<sum;
	return 0;
}

本题考察在对暴力解决超时的时候,需要使用栈来解决问题,错误点是没有想到使用栈,以及对栈的使用不熟练,需要加强训练,并且考察到了struct来存储两种信息

D. 我喜欢因式分解

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

本题考察暴力算法,无知识点需整理,错误点在没有对暴力算法理解透彻,需加强练习 总结:对vector数组,栈,结构体需熟练,对暴力解需加强练习

重点:栈,结构体