原题解:
由于$+$满足幂等性,我们可以设$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; }
原文:https://www.cnblogs.com/Hansue/p/13061262.html