社区讨论
“+1”写法与“不+1”写法
B4079[CSP-X2019 山东] 金币参与者 3已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mm96j5u5
- 此快照首次捕获于
- 2026/03/02 20:53 5 天前
- 此快照最后确认于
- 2026/03/02 20:59 5 天前
“+1”写法就是纯写错了
真正的“不+1”(二分)写法如下:
CPP//#include <windows.h>//MessageBox(NULL,"下面","上面",1);
#include <iostream>
#include<cmath>
#include <string>
#include <cstring>
#include <algorithm>//sort(a+1,a+n+1);
using namespace std;
//max(n)=1e18-1
//max(r)=3741657384
long long n;
long long sum(long long day){
long long a,b;
a=(1+day/7)*(day/7)/2*7;
b=(day%7)*(day/7+1);
return a+b;
}
int main() {
cin>>n;
long long l=1,r=3741657384,mid;
while(l<=r){
mid=(l+r)/2;
if(sum(mid)<n)l=mid+1;
else if(sum(mid)>n)r=mid-1;
else if(sum(mid==n))break;
}
cout<<l;
return 0;
}
求关注
回复
共 2 条回复,欢迎继续交流。
正在加载回复...