关于map
  • 板块学术版
  • 楼主XYzero
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/9/1 17:30
  • 上次更新2024/9/1 21:36:38
查看原帖
关于map
917025
XYzero楼主2024/9/1 17:30

rt,有一道题目它给了 nn 条线段,每条线段都有 左端点 lil_i 和右端点 rir_i,现在让你把所有线段覆盖的数都加 11,即对于任意 li,ril_i,r_i,al,al+1......ara_l,a_{l + 1}...... a_r 都加上一,(数组 aa 初始为 00 )。

然后然你求 max(a)max(a),即数组 aa 的最大值。

但 ri≤109r_i \le 10^9,明显开不下数组,但 stdstd 中通过如下代码实现:

        map<int,int>c;
        for (int i = 1; i <= n; i++) {
            cin >> l[i] >> r[i];
           c[l[i]]++;
	        c[r[i] + 1]--;
        }
        int res = 0,ans = INT_MIN;
        for(auto to : c){
        	int val = to.second;
        	res += val;
        	ans = max(ans,res);
	    }

便实现了,想问这个原理是啥,map是如何用 auto 来遍历的,还有本蒟蒻想仿照这样找最小值,却都是 00,请求 dalao 解答。

2024/9/1 17:30
加载中...