求助 搞不清指针i的使用
查看原帖
求助 搞不清指针i的使用
757864
ruye楼主2023/10/28 15:28
const int N = 2e5 + 10;
int n;
pii a[N];

signed main(){
    IOS;
    cin >> n;
    for(int i = 1; i <= n; i ++ ){
        cin >> a[i].first >> a[i].second;
        a[i].second += a[i].first;
    }
    sort(a + 1, a + n + 1);
    priority_queue<int, vector<int>, greater<int> >q;

    int time = 0, i = 1, ans = 0; 
    while(1){
        if(q.empty()){ 
            if(i == n + 1) break;
            else time = max(time, a[i].first);
        }
        while(a[i].first <= time && i <= n) q.push(a[i ++ ].second);
        while(q.size() && q.top() < time) q.pop();
        
        if(q.size()){
            q.pop();
            ans ++ ; 
            time ++;
        }
    }
    cout << ans << endl;

大概就是不知道指针i该指向什么 初始值0好像可以 1好像也可以 不知道什么时候该++ 什么时候不动

大佬们 一般定义指针i的时候 有什么思路吗

2023/10/28 15:28
加载中...