大体状况
67/300
简直辣鸡
T1 fantasy
题目大意
求一个乱起八糟的东西。
分析
经过各种找规律
然后发现就是一个模拟k进制
卡常几乎击杀了所有人
代码
#include<bits/stdc++.h>
using namespace std;
#define Komachi is retarded
#define REP(i,a,b) for(register int i=(a),i##_end_=(b);i<i##_end_;i++)
#define LREP(i,a,b) for(register LL i=(a),i##_end_=(b);i<i##_end_;i++)
#define LL long long
#define UI unsigned int
#define M 104
void Rd(int &res){
char c;res=0;
while((c=getchar())<48);
do res=(res<<3)+(res<<1)+(c^48);
while((c=getchar())>47);
}
void Rd(LL &res){
char c;res=0;
while((c=getchar())<48);
do res=(res<<3)+(res<<1)+(c^48);
while((c=getchar())>47);
}
void Wt(UI x){
static char stk[24],len;
do stk[++len]=x%10^48;
while(x/=10);
while(len)putchar(stk[len--]);
}
int main(){
int T,Now[M],Nxt[3004];
Rd(T);
while(T--){
memset(Now,0,sizeof(Now));
register int k,kp,si=0;
register UI Ans=0;
LL l,r;
Rd(k),Rd(l),Rd(r);kp=k-1;
REP(i,0,3004)Nxt[i]=i%k;
for(LL x=l,j=0;x;x/=k) (si+=Now[j++]=x%k)%=k;
register int p=l%20000116;
LREP(i,l,r+1){
Ans+=(1ll*p*p+i+804)/233*si;
if(++p==20000116)p=0;
register int j=0;
while(Now[j]==kp)
Now[j++]=0;
si=Nxt[si+j+1];
Now[j]++;
}
Wt(Ans);
puts("");
}
return 0;
}
T2 goodbye
T3 reality
均在博客上= =
总结
水分一点都不成功的全场二位数场。
可以说是很烦了。