密码安全基石:加盐哈希原理与Python/Java实战
2026/8/30 23:46:49
给定 $n$ 个区间,求至多可以选择多少个互不相交的区间。
排序、贪心
将所有区间按右端点排序,根据贪心的思路,右端点越靠前的越应该优先选择。
#include<bits/stdc++.h>usingnamespacestd;structRegion{ints,f;}E[1005];boolcmp(Region a,Region b){returna.f<b.f;}intmain(){intn,t=0,ans=0;// t 记录当前的右端点scanf("%d",&n);for(inti=0;i<n;i++)scanf("%d%d",&E[i].s,&E[i].f);sort(E,E+n,cmp);for(inti=0;i<n;i++)if(t<=E[i].s)ans++,t=E[i].f;printf("%d\n",ans);return0;}