CE求调(灌水区大佬多)
  • 板块灌水区
  • 楼主Point_LUO
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/3/29 22:44
  • 上次更新2024/3/30 09:46:49
查看原帖
CE求调(灌水区大佬多)
609818
Point_LUO楼主2024/3/29 22:44

代码如下

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+1;

int n,m,ans[N<<2];
double mx[N<<2];

int ls(int x){return x<<1;}
int rs(int x){return x<<1|1;}

int query(int rt,int l,int r,double maxx)
{
	if(mx[rt]<=maxx) return 0;
	if(l==r) return mx[rt]>maxx;
	if(mx[ls(rt)]<=maxx) return query(rs(rt),((l+r)>>1)+1,r,maxx);
	return query(ls(rt),l,(l+r)>>1,maxx)+ans[rt]-ans[ls(rt)];
}

void Change(int rt,int l,int r,int x,double k)
{
	if(l==x&&r==x)
	{
		ans[x]=1;
		mx[x]=k;
		return;
	}
	int mid=(l+r)>>1;
	if(x<=mid) Change(ls(rt),l,mid,x,k);
	else Change(rs(rt),mid+1,r,x,k);
	mx[rt]=max(mx[ls(rt)],mx[rs(rt)]);
	ans[rt]=ans[ls(rt)]+query(rs,mid+1,r,mx[ls(rt)]); //错误指向此行
}

int main()
{
	cin>>n>>m;
	int x,y;
	for(int i=1;i<=m;i++)
	{
		scanf("%d%d",&x,&y);
		Change(1,1,n,x,1.0*y/x);
		printf("%d\n",ans[1]);
	}
	return 0;
}

显示

[Error] invalid conversion from 'int (*)(int)' to 'int' [-fpermissive]

bdfs显示是

尝试将一个函数指针(指向函数返回int类型的函数,接受一个int类型参数)转换为int类型

但我好像也没用指针?

请问各位大佬这个要怎么改啊QWQ

2024/3/29 22:44
加载中...