fpy游戏人生 题解分享 · 2024/4/11
刷题统计(编程题) - 题解
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
1368330567 题解分享 · 2024/4/11
刷题统计(编程题) - 题解
超时了,怎么优化 ``` #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
Sqhh99 题解分享 · 2024/4/10
刷题统计(编程题) - 题解
``` #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
Heng_Xin 题解分享 · 2024/4/8
刷题统计(编程题) - 题解
```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
bkbqwq 题解分享 · 2024/4/9
刷题统计(编程题) - 题解
``` #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
3020219474 题解分享 · 2024/4/8
刷题统计(编程题) - 题解
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