程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> POJ 1083

POJ 1083

編輯:C++入門知識

問題是這樣的:公司有400個房間,單號對雙號對門,中間有一條走廊,現在要搬東西,給出要搬的次數,還有每次搬動的房間號,每次搬動需要10分鐘,搬動過程中的那段走廊不能被使用,求最大搬動時長。
題解很簡單,就是遍歷所有的走廊,得出使用的次數,然後排序輸出最大的就可以了.
[cpp] 
#include <iostream> 
#include <cstring> 
#include <algorithm> 
using namespace std; 
int main() 

    int n,num,a[200][2],b[200]; 
    cin>>n; 
    while(n--) 
    { 
        cin>>num; 
        memset(b,0,sizeof(b)); 
        for(int i=0; i<num; i++) 
        { 
            cin>>a[i][0]>>a[i][1]; 
            if(a[i][0]>a[i][1]) 
            { 
                int temp=a[i][0]; 
                a[i][0]=a[i][1]; 
                a[i][1]=temp; 
            }    www.2cto.com
        } 
        for(int j=1; j<=200; j++) 
            for(int k=0; k<num; k++) 
                if((((a[k][0])<=2*j-1)&&((a[k][1])>=2*j-1)||(((a[k][0])<=2*j)&&((a[k][1])>=2*j)))) 
                    b[j-1]++; 
        sort(b,b+200); 
        if(b[199]!=0)  
            cout<<b[199]*10<<endl; 
        else 
            cout<<"10"<<endl; 
    } 
    return 0; 

作者:szq123456123

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved