#29141: c++ 用map寫


as6325400 (懷真)

學校 : 國立嘉義高級中學
編號 : 175135
來源 : [140.123.236.120]
最後登入時間 :
2023-03-28 20:17:30
b139. NOIP2005 2.校门外的树 -- NOIP2005普及組 | From: [42.77.2.74] | 發表日期 : 2022-02-01 09:52

先把全部的樹當作key值

value值設1

 

然後再把要砍掉的value值改成0

最後計算value為1的容器數量

 

#include<iostream>
#include<map>

using namespace std;

int main(){
    int number,frequency,j,left,right,q,count=0,i;
    map<int,int> mp1;
    cin>>number>>frequency;
    for ( i = 0; i <= number; i++)
    {
        mp1.insert({i,1});
    }
    for ( j = 0; j < frequency; j++)
    {
        cin>>left>>right;
        for ( q = left; q <= right; q++)
        {  
            mp1.erase(q);
            mp1.insert({q,0});
        }
    }
    for ( i = 0; i <= number; i++)
    {
        if (mp1[i]==1)
        {  
            count++;
        }
       
    }
    cout<<count;
    return 0;
}
 
ZeroJudge Forum