Rank1
BAD
A. 喜剧的迷人之处在于
签。
正好早上还在改一个要分解质因数的题,所以一眼就出思路了。
首先将 \(a\) 的平方因子全部除去,剩下的就是 \(b\) 必须的因数,即若设将平方因子全部除去后的 \(a\) 为 \(a'\),则 \(b\) 应表示为 \(a'\times x^2\),从 \(L\) 这个下界开始只用找一次即可。处理好 \(a'\),那么 \(x\) 下界为 \(\lfloor {\sqrt{\lfloor {\frac{L}{a'}} \rfloor}} \rfloor\),特判下界是否合法,若不合法则判断 \(x+1\) 是否合法即可,若合法答案即为 \(\left(x+1\right)\times \left(x+1\right)\times a'\)。
点击查看代码
#include<bits/stdc++.h>
#define fo(x,y,z) for(register ll (x)=(y);(x)<=(z);(x)++)
#define fu(x,y,z) for(register ll (x)=(y);(x)>=(z);(x)--)
using namespace std;
typedef long long ll;
#define lx ll
inline lx qr()
{char ch=getchar();lx x=0,f=1;for(;ch<'0'||ch>'9';ch=getchar()) if(ch=='-') f=-1;for(;ch>='0'&&ch<='9';ch=getchar()) x=(x<<3)+(x<<1)+(ch^48);return x*f;
}
#undef lx
#define qr qr()
#define fi first
#define se second
const int Ratio=0;
const int N=1e6+5;
const int mod=1e6+777;
const int inf=1e9;
int n;
int pri[N],tot,bi[N],cnt;
bool yz[N];
namespace Wisadel
{short main(){// freopen(".in","r",stdin),freopen(".out","w",stdout);n=qr;fo(i,2,1000000){if(!yz[i]) pri[++tot]=i;fo(j,1,tot){if(i*pri[j]>1000000) break;yz[i*pri[j]]=1;if(i%pri[j]==0) break;}}fo(i,1,n){ll a=qr,l=qr,r=qr;fo(j,1,tot){if(pri[j]*pri[j]>a) break;ll cas=pri[j]*pri[j];while(a%cas==0) a/=cas;}ll zc=l/a;zc=sqrt(zc);if(zc*zc*a==l){printf("%lld\n",zc*zc*a);continue;}bool can=0;if((zc+1)*(zc+1)*a>r) printf("-1\n");else printf("%lld\n",(zc+1)*(zc+1)*a);}return Ratio;}
}
int main(){return Wisadel::main();}
B. 镜中的野兽
赛时自认为想到了 \(n=2\) 的性质但是假了遂 0pts,感觉小样例给的误导挺大的,之后就再也改不过来了,快结束时证了性质的错误性,但唐完了没打 10pts 暴力。
题解给人一种简单又不简单的美感。
C. 我愿相信由你所描述的童话
赛时打了抽象暴力,喜提 0pts。打到一半的时候想到了换成 dp 做,但一直没想好怎么设计状态。
暴力打好预计能有 30pts。
正解依旧抽象。
D. Baby Doll
这种全是不明意义函数并且捆绑的题,看一眼就没兴趣了。
赛后 5k 讲了神秘的解法,听不懂(
题解给了抽象的做法,看不懂(
(我太蒻了
末
高二开学第一次模拟赛,寄寄寄。
本来 10min 切 T1 挺自信的,结果一看三道数学题整不会了,纯纯罚坐 3.5h。
一些也许能拿到的暴力也没拿到,能力问题?心态问题?状态问题?
希望尽快调整吧,能这样纯粹的学 OI 的日子也不多了。
这两天打算出一个数据结构专题复习树状数组。
完结撒花~