Codeforce_732

浅浅的花香味﹌ 2022-07-15 17:08 258阅读 0赞
  1. A Buy a Shovel

水题,问买鞋子的个数,直接暴力。

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5. int k,r,ans=0;
  6. scanf("%d%d",&k,&r);
  7. for (int i=1;i<10000;i++){
  8. if (i*k%10==0||i*k%10==r){
  9. ans=i;
  10. break;
  11. }
  12. }
  13. printf("%d\n", ans);
  14. }
  15. B Cormen --- The Best Friend Of a Man

贪心,优先选择中间的。

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int a[505];
  4. int main(int argc, char const *argv[])
  5. {
  6. int n,k,ans=0;
  7. scanf("%d%d",&n,&k);
  8. for (int i=0;i<n;i++) scanf("%d",&a[i]);
  9. for (int i=1;i<n;i++){
  10. int cnt=a[i]+a[i-1];
  11. if (cnt<k){
  12. a[i]+=k-cnt;
  13. ans+=k-cnt;
  14. }
  15. }
  16. printf("%d\n", ans);
  17. for (int i=0;i<n;i++){
  18. if (i) printf(" ");
  19. printf("%d",a[i] );
  20. }
  21. printf("\n");
  22. return 0;
  23. }
  24. C Sanatorium

因为只考虑吃饭的总数,那么来去的那一天可以移到一天去不算,待的整天数为max(a,b,c)-1,直接求了。

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main(int argc, char const *argv[])
  4. {
  5. long long a,b,c;
  6. scanf("%I64d%I64d%I64d",&a,&b,&c);
  7. long long m=max(max(a,b),c);
  8. long long ans=0;
  9. if (a<m) ans+=m-1-a;
  10. if (b<m) ans+=m-1-b;
  11. if (c<m) ans+=m-1-c;
  12. printf("%I64d\n", ans);
  13. return 0;
  14. }
  15. D Eams

二分需要的天数,对于每次二分的天数,从后往前扫一遍看是否满足。

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int N=1e5+5;
  4. int d[N],a[N];
  5. int n,m;
  6. int vis[N],cnt[N];
  7. std::vector<int> v;
  8. int ok(int t){
  9. memset(vis,0,sizeof(vis));
  10. memset(cnt,0,sizeof(cnt));
  11. int p=0;v.clear();
  12. for (int i=t;i>=1;i--){
  13. if (d[i]&&!vis[d[i]]){
  14. vis[d[i]]=1;
  15. cnt[d[i]]=a[d[i]];
  16. v.push_back(d[i]);
  17. }else{
  18. if (p<v.size()){
  19. cnt[v[p]]--;
  20. if (!cnt[v[p]]) p++;
  21. }
  22. }
  23. }
  24. for (int i = 1; i <= m; ++i)
  25. {
  26. /* code */
  27. if (!vis[i]) return 0;
  28. }
  29. return p==v.size();
  30. }
  31. int main()
  32. {
  33. scanf("%d%d",&n,&m);
  34. for (int i=1;i<=n;i++) scanf("%d",&d[i]);
  35. for (int i=1;i<=m;i++) scanf("%d",&a[i]);
  36. int l=0,r=n+1;
  37. while (l+1<r){
  38. int mid=(l+r)/2;
  39. if (ok(mid)) r=mid;
  40. else l=mid;
  41. }
  42. if (r==n+1) r=-1;
  43. printf("%d\n", r);
  44. }
  45. E Sockets
  46. F Tourist Reform

发表评论

表情:
评论列表 (有 0 条评论,258人围观)

还没有评论,来说两句吧...

相关阅读