【nowcoder】 4th T1 动态点分治

题目链接:https://www.nowcoder.com/acm/contest/175/A

题目名字吓死人

std:

【nowcoder】 4th T1 动态点分治

【nowcoder】 4th T1 动态点分治

太可啪了

一道简单的模拟题。虽然我把题意想错了。

按照题意模拟输出和继承。


WA 点: 因为数据K范围在263之内(long long:263-1,unsigned long long int :264-1)

所以会很容易爆

也会爆回[l,r]范围内 就会WA


如何避免?

首先假设 x 为继承的值

那么每次改变都是x=x*k

如果每次改变的范围都在r/k的范围内 那么就可避免爆

代码如下:

 #include<bits/stdc++.h>
#define ll long long
using namespace std; int n;
ll l,r,k,x;
bool check=false; ll Read(){
ll xxx=,fff=;char ch=getchar();
while(ch>''||ch<''){if(ch=='-') fff=-;ch=getchar();}
while(ch<=''&&ch>=''){xxx=(xxx<<)+(xxx<<)+ch-'';ch=getchar();}
return xxx*fff;
} int main(){
n=Read();
while(n--){
l=Read();r=Read();k=Read();
check=false;
switch(k){
case : if(l<=&&r>=){
putchar('');putchar(' ');
check=true;
}
case : if(l<=&&r>=){
putchar('');putchar(' ');
check=true; }
break;
default:for(x=;;){
if(l<=x&&x<=r) {
printf("%lld ",x);
check=true;
}
if(x<=r/k) x*=k;else break;
}
}
if(!check) {
puts("None.");
}
else putchar('\n');
}
return ;
}

PE几次以后才知道puts()自动换行

上一篇:Java平台与内存管理


下一篇:关于Git中的一些常用的命令