题目链接
原题解:
由于$+$满足幂等性,我们可以设$f_{i,j}$为从$i$号点向根$2^j$个点的权值之和,并且倍增计算出$f$。在查询是,可以像ST表一样用至多四个$f$中的路径拼出询问路径。
补充:
由于对于满足幂等性的运算来说,不论怎么对$1$做运算,结果都是$1$,所以考虑所有答案输出$1$。
过了。没想到吧。
代码(100分):
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define IL inline
#define RG register
using namespace std;
#define RI RG int
#define RC RG char int n,q; int main(){
scanf("%d%d",&n,&q);
printf("%d\n",n);
while(q--)
printf("1\n"); return 0; }