题解分享
题解分享简介
刷题统计(编程题) - 题解
include
using namespace std;
typedef long long ll;
int main(){
ios::sync\_with\_stdio(false),cout.tie(0),cin.tie(0);
```
ll a,b,n;
cin>>a>>b>>n;
```
//每周可以做多少题
ll s=5\a+2\b;
//一周
ll res=n/s\7;
//剩余
```
n%=s;
```
//枚举
ll d[]={a,a,a,a,a,b,b};
for(int i=0;n>0;i++)
{
```
n-=d[i];
res++;
```
}
cout<<res<<endl;
return 0;
}
查看全文
0
0
0
2
刷题统计(编程题) - 题解
超时了,怎么优化
```
#include <iostream>
using namespace std;
long long ans,a,b,n;
long long sum(long long day)
{
long long X;
long long week=day/7;
long long duoyu=day%7;
if(duoyu>5)
X=week*(5*a+2*b)+5*a + (duoyu-5)*b;
if(duoyu<=5)
X=week*(5*a+2*b) + duoyu*a;
return X;
}
int main()
{
cin >> a>>b>>n;
int l=1,r=1e18;
while(l<=r)
{
int mid=(l+r)>>1;
if(sum(mid)>=n)
{
ans=mid;
r=mid-1;
}
else
{
l=mid+1;
}
}
cout << ans;
return 0;
}
```
```
查看全文
0
0
0
1
刷题统计(编程题) - 题解
```
#include <bits/stdc++.h>
using namespace std;
using LL = long long;
int main()
{
std::ios::sync_with_stdio(0);
std::cin.tie(0);
LL a = 0,b = 0,n = 0;
std::cin >> a >> b >> n;
LL discuss = (n / (a * 5 + b * 2)) * 7;
LL remainder = n % (a * 5 + b * 2);
for (int i = 0; i < 5 && remainder > 0; i++) {
++discuss;
remainder -= a;
}
for (int j = 0; j < 2 && remainder > 0; j++) {
++discuss;
remainder -= b;
}
std::cout << discuss;
return 0;
}
```
查看全文
0
0
0
1
刷题统计(编程题) - 题解
```Cpp
#include <iostream>
using namespace std;
using ll = long long;
int main() {
ll a, b, n;
cin >> a >> b >> n;
// 1-5 做 a 题
// 6-7 做 b 题
// 问从星期一开始, 第几天 >= n
// 那么一周可以做 (5*a + 2*b) 题
// n 题可以写 n / (5*a + 2*b) 周 + x = n % (5*a + 2*b) 对x进行模拟
ll tmp = 5*a + 2*b; // 一周做的题
ll res = n / tmp; // 得到可以做几周
res *= 7; // 得到可以做几天
n %= tmp; // 不够除(之前的余数)
for (int i = 1; i <= 7; ++i) { // 模拟即可
if (i <= 5) {
if (n > 0) {
n -= a;
} else
break;
} else {
if (n > 0) {
n -= b;
} else
break;
}
++res;
}
cout << res << '\n';
return 0;
}
```
查看全文
0
0
0
1
刷题统计(编程题) - 题解
```
#include <bits/stdc++.h>
int main()
{
int count1 = 0, count2 = 0, i = 0;
long n, a, b, tmp;
scanf("%ld %ld %ld", &a, &b, &n);
tmp = n / (5 * a + 2 * b); // 周数
while (count1 * a + count2 * b < n - tmp * (5 * a + 2 * b))
{
if (i < 5)
count1++;
else
count2++;
i = (i + 1) % 7;
}
printf("%ld", count1 + count2 + tmp * 7);
return 0;
}
```
查看全文
0
0
0
0
刷题统计(编程题) - 题解
include
using namespace std;
int main() {
long long int a,b,n,i,j,k,sum,sum1=0,t;
cin>>a>>b>>n;
sum=5a+2b;//一周做的题
k=n/sum;//做了几周
t=n-sumk;//做完最大整周剩的题
if(t==0) {
cout
=t) {
break;
}
}
cout<<7k+i;
}
return 0;
}
查看全文
0
0
0
0



