Acwing 周赛110 5046
Acw 5046
思路
dp, 表示前i种药且吃第i种药使智商达到的方案,根据题意可知
先将各区间按右端点排序, 求j的区间可用二分.
代码
//9.24
int n,m,k;
int f[N],s[N];
//acw 110
struct seg
{
int l,r;
bool operator <(const seg &a) const
{
if(r!=a.r) return r<a.r;
return l<a.l;
}
}w[N];
int get_l(int x)
{
int l=1,r=m+1;
while(l<r)
{
int mid=(l+r)/2;
if(w[mid].l<=x) l=mid+1;
else r=mid;
}
return r;
}
int get_r(int x)
{
int l=1,r=m+1;
while(l<r)
{
int mid=(l+r+1)/2;
if(w[mid].r<=x) l=mid;
else r=mid-1;
}
return r;
}
void solve()
{
cin>>n>>m;
for(int i=2;i<=m+1;i++) cin>>w[i].l>>w[i].r;
sort(w+1,w+m+2);
int res=0;
f[1]=1,s[1]=1;
for(int i=2;i<=m;i++)
{
int l=get_l(w[i].l);
int r=get_r(w[i].r);
f[i]=(s[r]-s[l-1])%mod;
s[i]=(s[i-1]+f[i])%mod;
if(w[i].r>=n) res=(res+f[i])%mod;
}
cout<<(res+mod)%mod<<endl;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)