2 条题解

  • 1
    @ 2021-8-7 20:49:57

    C++ :

    #include <iostream>
    #include <algorithm>
    #include <queue>
    #include <vector>
    #include <limits.h> 
    using namespace std;
    const int N=1e4+5;
    
    priority_queue<int,vector<int>,greater<int> > q;
    int n;
    pair<int,int> p[N];
    
    int main()
    {
    	while(cin>>n){
    		int maxd=INT_MAX;
    		for(int i=0;i<n;i++){
    			cin>>p[i].second>>p[i].first;
    		}
    		sort(p,p+n);
    		for(int i=0;i<n;i++){
    			if(q.size()<p[i].first) q.push(p[i].second);
    			else {
    				if(p[i].second>q.top()){
    					q.pop();
    					q.push(p[i].second);
    				}
    			}
    		}
    		int ans=0;
    		while(!q.empty()){
    			ans+=q.top();
    			q.pop();
    		}
    		cout<<ans<<endl;				
    	}
    	return 0;
    }
    
    • 0
      @ 2021-11-29 19:08:17
      #include <iostream>
      #include <algorithm>
      #include <queue>
      #include <vector>
      #include <limits.h> 
      using namespace std;
      const int N=1e4+5;
      
      priority_queue<int,vector<int>,greater<int> > q;
      int n;
      pair<int,int> p[N];
      
      int main()
      {
      	while(cin>>n){
      		int maxd=INT_MAX;
      		for(int i=0;i<n;i++){
      			cin>>p[i].second>>p[i].first;
      		}
      		sort(p,p+n);
      		for(int i=0;i<n;i++){
      			if(q.size()<p[i].first) q.push(p[i].second);
      			else {
      				if(p[i].second>q.top()){
      					q.pop();
      					q.push(p[i].second);
      				}
      			}
      		}
      		int ans=0;
      		while(!q.empty()){
      			ans+=q.top();
      			q.pop();
      		}
      		cout<<ans<<endl;				
      	}
      	return 0;
      }
      • 1

      信息

      ID
      56
      时间
      1000ms
      内存
      128MiB
      难度
      1
      标签
      递交数
      72
      已通过
      49
      上传者