题面传送门 解决思路 看到 \(10^{18}\) 的范围,我们可以想到二分答案.只要对于每一个二分出的答案进行 \(check\) ,如果可行就往比它小的半边找,不可行就往比它大的半边找. 以下是 \(check\) 的过程(以不可行返回 \(true\) 为例): bool check(long long x){ long long v=0,N=n; //v代表Vasya吃掉的,N代表总共剩余的 while(N){ if(N<=x){ //如果不够Vasya吃一次了 v+=N; //Vasy…