站外题玄关求调
查看原帖
站外题玄关求调
815807
zouyuhao20120225楼主2024/5/18 16:45

有一个 ? × ? 的矩阵 ? ,在每行任取一个位置,把这些位置的元素相加得到一个和 ? ,求前 ? 小的和。

【输入格式】 第一行一个整数 ? 。

接下来 ? 行,每行 ? 个整数,表示 ? ( ? , ? ) 。

【输出格式】 输出一行 ? 个整数,表示前 ? 小的和。

这是题面,附我的拙劣代码

#include<iostream>
#include<queue> 
#include<deque>
using namespace std;

int n,a;
priority_queue<int> pq;
queue<int> qu;
deque<int> dq;
int main(){
   cin>>n;
   for(int i=1;i<=n;i++){
   	if(i==1){
   		for(int j=1;j<=n;j++){
   			cin>>a;
   			pq.push(a);
   		}
   		while(pq.size()>n) pq.pop();
   	}
   	else{
   		while(pq.size()){
   			qu.push(pq.top());
   			pq.pop();
//				cout<<qu.back()<<" ";
   		} 
   		for(int j=1;j<=n;j++){
   			cin>>a;
   			for(int k=1;k<=n;k++){
   				pq.push(qu.front()+a);
//					cout<<qu.front()<<" ";
   				qu.push(qu.front());
   				qu.pop();
   			}
   		}
//			cout<<"\n";
   		while(pq.size()>n) pq.pop();
   	}
   }
   while(pq.size()) dq.push_back(pq.top()),pq.pop();
   while(dq.size()){
   	cout<<dq.back()<<" ";
   	dq.pop_back();
   }
   return 0;
}

大佬求调qwq

感觉和P1392有点像

2024/5/18 16:45
加载中...