警示后人
查看原帖
警示后人
601236
_WHITE_NIGHT_楼主2023/9/3 20:30

rt

作者有点坑,在输入的时候加了一些无关的空格和换行

建议谨慎用 getchargetchar ,还是用 cincin 好

如果你还是要用 getchargetchar ,像这样(仅给出主函数)

int main()
{
//	freopen("P1531_1.in","r",stdin);
//	freopen("P1531.out","w",stdout);
    n = input(),m = input();
    for(int i = 1;i <= n;i++)
        ipt[i] = input();
    
    ST.build(1,n,1);
    for(int i = 1;i <= m;i++)
    {
    	char ch = getchar();
    	int a = input(),b = input();
        if(ch == 'Q') print(ST.query(a,b,1));
        else ST.update(a,b,1);
    }
}

变成这样:

int main()
{
//	freopen("P1531_1.in","r",stdin);
//	freopen("P1531.out","w",stdout);
    n = input(),m = input();
    for(int i = 1;i <= n;i++)
        ipt[i] = input();
    
    ST.build(1,n,1);
    for(int i = 1;i <= m;i++)
    {
    	char ch = getchar();
    	while(ch < 'A' || ch > 'Z') ch = getchar();
    	int a = input(),b = input();
        if(ch == 'Q') print(ST.query(a,b,1));
        else ST.update(a,b,1);
    }
}

也就是加上了这一行while(ch < 'A' || ch > 'Z') ch = getchar();

但愿对你A掉这道题有帮助

2023/9/3 20:30
加载中...