• Educational Codeforces Round 132 (Rated for Div. 2) A.B.D


    A. Three Doors

    题目链接:

    Problem - A - Codeforces

     题面:

     

    题意:

     共有三扇门,一开始你有一把钥匙,有两扇门后面有钥匙,一扇门后面没有钥匙(如果有钥匙,就会告诉你可以开哪扇门,如果不是钥匙就是0),问你能否把三扇门全部打开

    思路:

    可以通过一开在我们手上的钥匙来开门,然后拿新钥匙在开门的方法循环下去,直到没有新钥匙为止来判断我们一共拿到了几把钥匙(0也算一把钥匙,但是不能开门)(如果全开的话,一共有4把)

    代码:

    1. #include
    2. using namespace std;
    3. int arr[5];
    4. int main(){
    5. int t;
    6. cin >> t;
    7. while(t--){
    8. int x;
    9. cin >> x;
    10. for(int i = 1; i <= 3; i++){
    11. cin >> arr[i];
    12. }
    13. int a = 1;
    14. while(x != 0){
    15. a ++;
    16. x = arr[x];
    17. }
    18. if(a == 4){
    19. cout << "YES" << endl;
    20. }else{
    21. cout << "NO" << endl;
    22. }
    23. }
    24. return 0;
    25. }

    B. Also Try Minecraft

    题目链接:

    Problem - B - Codeforces

    题面:

    题意:

    思路:

    可以利用前缀和的思想来写,创造一个数组ldx表示从1号点到i号点总共收到的伤害,以及rdx表示从n号点到i号点总共收到的伤害.然后查询的值就是差值。只是需要注意从小到大,和从大到小的区别

    代码:

    1. #include
    2. using namespace std;
    3. #define ll long long
    4. ll arr[100005];
    5. ll ldx[100005];
    6. ll rdx[100005];
    7. int main(){
    8. int n, m;
    9. cin >> n >> m;
    10. for(int i = 1; i <= n; i++){
    11. cin >> arr[i];
    12. }
    13. ldx[1] = 0;
    14. rdx[n] = 0;
    15. for(int i = 2; i <= n; i++){
    16. ldx[i] = ldx[i - 1] + max(arr[i - 1] - arr[i], (ll)0);
    17. }
    18. for(int i = n - 1; i >= 1; i--){
    19. rdx[i] = rdx[i + 1] + max(arr[i + 1] - arr[i], (ll)0);
    20. }
    21. while(m--){
    22. int a, b;
    23. cin >> a >> b;
    24. if(a < b)
    25. cout << ldx[b] - ldx[a] << endl;
    26. else
    27. cout << rdx[b] - rdx[a] << endl;
    28. }
    29. return 0;
    30. }

    D. Rorororobot

    题目链接:

    Problem - D - Codeforces

    题面:

     

    题意:

    思路:

    如果起点,终点的横纵坐标差不是k的倍数,那么无论这么走都不能刚好停在终点。然后判断一下起点和终点的位置是不是不能走的地方,然后往上走,走到最高点,在判断中间不能走的地方有没有大于最高点即可(中间的最高值可用线段树来查询)

    代码:

    1. #include
    2. using namespace std;
    3. int arr[200005];
    4. int tree[200005 * 40];
    5. void updata(int rt){
    6. tree[rt] = max(tree[rt * 2], tree[rt * 2 + 1]);
    7. }
    8. void build(int l, int r, int rt){
    9. if(l == r){
    10. tree[rt] = arr[l];
    11. return ;
    12. }
    13. int mid = (l + r) / 2;
    14. build(l, mid, rt * 2);
    15. build(mid + 1, r, rt * 2 + 1);
    16. updata(rt);
    17. }
    18. int query(int L, int R, int l, int r, int rt){
    19. if(L <= l && r <= R){
    20. return tree[rt];
    21. }
    22. int mid = (l + r) / 2;
    23. int ans = 0;
    24. if(L <= mid){
    25. ans = max(ans, query(L, R, l, mid, rt * 2));
    26. }
    27. if(R > mid){
    28. ans = max(ans, query(L, R, mid + 1, r, rt * 2 + 1));
    29. }
    30. return ans;
    31. }
    32. int main(){
    33. ios::sync_with_stdio(false);
    34. cin.tie(0);
    35. cout.tie(0);
    36. int n, m;
    37. cin >> n >> m;
    38. for(int i = 1; i <= m; i++){
    39. cin >> arr[i];
    40. }
    41. build(1, m, 1);
    42. int q;
    43. cin >> q;
    44. while(q--){
    45. int a, b, c, d, k;
    46. cin >> a >> b >> c >> d >> k;
    47. if(b > d){
    48. swap(a, c);
    49. swap(b, d);
    50. }
    51. if(abs(a - c) % k != 0 || (b - d) % k != 0){
    52. cout << "NO" << endl;
    53. }else if(a <= arr[b] || c <= arr[d]){
    54. cout << "NO" << endl;
    55. }else{
    56. int maxn = (a + (n - a) / k * k);
    57. int maxx = query(b, d, 1, m, 1);
    58. if(maxx >= maxn){
    59. cout << "NO" << endl;
    60. }else{
    61. cout << "YES" << endl;
    62. }
    63. }
    64. }
    65. return 0;
    66. }

  • 相关阅读:
    【CSS动效实战(纯CSS与JS动效)】02 flex 布局实战(仿 JD 及 gitCode 布局)及 media 自适应初探 下
    yolov6 win10环境配置详细过程
    训练模型报错RuntimeError: Input, output and indices must be on the current device
    哈工大李治军老师操作系统笔记【23】:内存换出(Learning OS Concepts By Coding Them !)
    LUA表的排序,table.sort()的使用
    OpenGL 波浪特效
    朋友圈大佬都去读研了,这份备考书单我码住了
    Markem imaje马肯依玛士喷码机维修9450E打码机维修
    ubuntu 安装 flowiseai
    C 语言 break和continue语句
  • 原文地址:https://blog.csdn.net/m0_55682843/article/details/126764551