为什么printf,scanf可以过而关闭流同步的cin,cou不能过?
查看原帖
为什么printf,scanf可以过而关闭流同步的cin,cou不能过?
439327
南瓜桐楼主2022/4/11 17:57
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
namespace wzl{
const int maxm = 1e5 + 1;
const int maxn = 1e5 + 1;
int m,n;
int dp[maxm][30]={};
inline void make_st(){
	for(int i = 1; (1<<i) <= m; ++i){
		for(int x = 1; x+(1<<i)-1 <= m; ++x){
			dp[x][i] = max(dp[x][i-1],dp[x+(1<<(i-1))][i-1]);
		}
	}
	return;
}
inline int query(int x,int y){
	int d = log2(y-x+1);
	return max(dp[x][d],dp[y-(1<<d)+1][d]);
}
void main(){
//	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
	cin>>m>>n;
	for(int i = 1; i <= m; ++i){
		cin>>dp[i][0];
	}
	make_st();
	do{
		int a,b;
//		cin>>a>>b;
		scanf("%d%d",&a,&b); 
//		cout<<query(a,b)<<endl;
		printf("%d\n",query(a,b));
	}while(--n);
	return;
}
}


int main(){
//	freopen("a.in","r",stdin);
//	freopen("a.out","w",stdout);
	wzl::main();
	return 0;
}
//洛谷 P1816 忠诚 

注释的是cin,cout的。 虽然我知道我已经问过一遍了类似的了但我还是不太懂

2022/4/11 17:57
加载中...