• 2022“杭电杯”中国大学生算法设计超级联赛(7)D、H


    D

    根据题意有四种方块,左右都白、左白右黑、左黑右白和左右都黑,其中黑与黑面连在一起可以认为是合成一块,那么求最少和最多就依据贪心的思想,最少肯定是尽可能的黑与黑碰在一起,最多肯定是尽可能地让黑与黑碰不到一起

    最少的情况:优先把左右都黑的放在一起,然后最左边可以放一个左白右黑,最右边可以放一个左黑右白,然后考虑左白右黑和左黑右白,两块可以合成一块,剩下的左右都白只能单独

    最多的情况:优先在左右都黑的两边放上左右都白,放完后优先在最左边优先放左黑右白,在最右边优先放左白右黑,将他们和左右都黑可以搭配使用,总归是判定为一个

    AC代码:

    1. #include
    2. #define rep(i,a,n) for(int i=a;i
    3. using namespace std;
    4. using LL = long long;
    5. int main() {
    6. ios::sync_with_stdio(false);
    7. cin.tie(nullptr);
    8. int T;
    9. cin >> T;
    10. rep (oo, 0, T) {
    11. int E, L, R, B;
    12. cin >> E >> L >> R >> B;
    13. int minn = 0, maxx = 0;
    14. int E1, L1, R1, B1;
    15. E1 = E, L1 = L, R1 = R, B1 = B;
    16. if (B > 0) {
    17. if (L > 0) {
    18. L--;
    19. }
    20. if (R > 0) {
    21. R--;
    22. }
    23. minn++;
    24. }
    25. minn += min({L, R});
    26. int x = min({L, R});
    27. L -= x;
    28. R -= x;
    29. minn += E + L + R;
    30. if (E1 >= B1) {
    31. maxx = E1 + B1 + R1 + L1;
    32. }
    33. else {
    34. if (B1 > 0) {
    35. maxx++;
    36. B1--;
    37. }
    38. B1 -= E1;
    39. maxx += 2 * E1;
    40. if (L1 + R1 >= B1) {
    41. maxx += B1;
    42. maxx += L1 + R1 - B1;
    43. }
    44. else {
    45. maxx += L1 + R1;
    46. }
    47. }
    48. cout << minn << " " << maxx << '\n';
    49. }
    50. return 0;
    51. }

    H

    a,b,c三边要保证构成三角形,每次选择一条边减去一个正整数,最后不能走的人算输,这个可以想成取石头博弈,那么取石头博弈的最终是没有石头,而这个题的最终是三边都为1的时候相当于没石头了

    AC代码:

    1. #include
    2. #define rep(i,a,n) for(int i=a;i
    3. using namespace std;
    4. using LL = long long;
    5. int main() {
    6. ios::sync_with_stdio(false);
    7. cin.tie(nullptr);
    8. int T;
    9. cin >> T;
    10. rep (oo, 0, T) {
    11. int a, b , c;
    12. cin >> a >> b >> c;
    13. a--, b--, c--;
    14. if (a ^ b ^ c) {
    15. cout << "Win\n";
    16. }
    17. else {
    18. cout << "Lose\n";
    19. }
    20. }
    21. return 0;
    22. }

  • 相关阅读:
    vsFTP简单安装测试
    干货 | 一条语句更新多个表
    stm32和电机开发(直流有刷电机和步进电机)
    【山东科技大学OJ】2413 Problem C: 逆序输出
    Web开发中会话跟踪的隐藏表单字段(隐藏input)方法
    纵目科技冲刺科创板上市:拟募资20亿元,股东阵容强大
    JimuReport积木报表 v1.6.5 版本发布—免费报表工具
    C++语言之输入输出介绍
    动态内存管理
    【Oracle篇】rman全库异机恢复:从RAC环境到单机测试环境的转移(第四篇,总共八篇)
  • 原文地址:https://blog.csdn.net/eyuhaobanga/article/details/126251125