zoukankan      html  css  js  c++  java
  • 迅雷笔试题_红黑积木求和

    题目:

    有红黑两种颜色的方块积木,红色代表正数A、黑色代表负数B,选出17块积木排成一排,使得任意相邻7块积木之和小于0;如何挑选才能使得17块积木之和最大,最大值是多少?

    输入:

    正数A、负数B;

    A和B的绝对值均小于10000;

    样例输入:

    10  -61

    样例输出:

    28

    思路:

    用一个长度为7的滑动窗口即可解决问题。

    实现:

     1 #include <iostream>
     2 #include <bits/stdc++.h>
     3 using namespace std;
     4 
     5 #include <iostream>
     6 #include <cstdio>
     7 #include <cstring>
     8 #include <cmath>
     9 
    10 int main() {
    11 
    12     int a,b;
    13     cin >> a >> b;
    14     int count = 0;
    15     int sum =0;
    16     int num[17];
    17     for (int i=0;i<7;i++){
    18         if(a*(i+1)+b*(6-i)<0){
    19             num[i]=a;
    20             sum = sum + num[i];
    21             count = count + num[i];
    22         }else {
    23             num[i]=b;
    24             sum = sum + num[i];
    25             count = count + num[i];
    26         }
    27     }
    28 
    29 
    30     for (int i=7;i<17;i++){
    31         if (count - num[i-7]+a<0){
    32             num[i]=a;
    33             count = count - num[i-7]+a;
    34             sum = sum + num[i];
    35         }else {
    36             num[i]=b;
    37             count = count - num[i-7]+b;
    38             sum = sum + num[i];
    39         }
    40     }
    41     cout << sum << endl;
    42 }
    专注搬砖,擅长搬砖砸自己的脚~~~ Email: ltwbuaa@163.com
  • 相关阅读:
    LL(1)文法的判断,递归下降分析程序
    消除左递归
    DFA最小化,语法分析初步
    非确定的自动机NFA确定化为DFA
    正规式、正规文法与自动机
    第03组 Alpha事后诸葛亮
    第03组 Alpha冲刺(4/4)
    第03组 Alpha冲刺(3/4)
    第03组 Alpha冲刺(2/4)
    第03组 Alpha冲刺(1/4)
  • 原文地址:https://www.cnblogs.com/TonvyLeeBlogs/p/9637540.html
Copyright © 2011-2022 走看看