求助啊,谢谢。好几次遇到这个问题了,今天决定问一下。
  • 板块学术版
  • 楼主lmrttx
  • 当前回复9
  • 已保存回复9
  • 发布时间2020/11/1 20:35
  • 上次更新2023/11/5 09:16:15
查看原帖
求助啊,谢谢。好几次遇到这个问题了,今天决定问一下。
344382
lmrttx楼主2020/11/1 20:35

代码: 题目是早上小Z模拟赛的膜法问题:

#include<bits/stdc++.h>
using namespace std;
inline int read(){
	int s=0,w=1;char ch=getchar();
	while(ch>'9'||ch<'0'){if(ch=='-')w=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){s=s*10+ch-'0';ch=getchar();}
	return s*w;
}
int a,b,q;
#define MAXN 1000000001
#define RI register int
int bin[30],log1[MAXN],mn[30][MAXN];
inline int query(int x,int y){
	int t=log1[y-x+1];
	return max(mn[t][x],mn[t][y-bin[t]+1]);
}
int main() {
	a=read();b=read();q=read();
	
	bin[0]=1;
	for(RI i=1;i<30;i++)bin[i]=bin[i-1]*2;
	log1[0]=-1;
	for(RI i=1;i<=1000000001;i++)log1[i]=log1[i/2]+1;
	for(RI i=1;i<=1000000001;i++)mn[0][i]=i%a+i%b;
	for(RI i=1;i<=log1[1000000000];i++)
	 for(RI j=1;j<=1000000001;j++)
	 if(j+bin[j]-1<=1000000001)
	 mn[i][j]=max(mn[i-1][j],mn[i-1][j+bin[i-1]]);
	 
	 for(RI i=1;i<=q;i++)
	 {
	 	int l,r;l=read();r=read();
	 	int xx=query(l,r);
	 	printf("%d\n",xx);
	 }
	 return 0;
}

ST表 为什么在洛谷上提交会显示编译一直有问题,会说ld返回1. 而且自己编译的话,会显示 源代码未编译。

求助,谢谢。

2020/11/1 20:35
加载中...