happy new year!

牛牛想起飞

https://ac.nowcoder.com/acm/contest/9854/B

a数组的元素无论加减b元素,a的原数不变,先对a数组求和 再从b中挑取0-n个元素即可。

为什么开205的数组?因为b中几个数的算术和可能为负,即所有算术和在(-100,100)范围。

#include <bits stdc++.h>
using namespace std;
typedef long long ll;
bool dp[205], ex[205];
int main()
{
    int i, j, n, y, a, b, sum;
    cin &gt;&gt; n &gt;&gt; y;
    for (i = sum = 0; i &lt; n; i++)
    {
        cin &gt;&gt; a;
        sum = (sum + a) % y;
    }
    dp[sum + 100] = true;
    while (n--)
    {
        for (i = 0; i &lt; 205; i++)
        {
            ex[i] = dp[i];
        }
        cin &gt;&gt; b;
        for (j = 0; j &lt; 205; j++)
        {
            if (ex[j])
            {
                dp[(j - 100 + b) % y + 100] = true;
                dp[(j - 100 - b) % y + 100] = true;
            }
        }
    }
    for (i = 204; i &gt;= 100; i--)
    {
        if (dp[i])
        {
            cout &lt;&lt; i - 100 &lt;&lt; endl;
            break;
        }
    }
    system("pause");
    return 0;
}
全部评论
牛逼牛逼
点赞 回复 分享
发布于 2021-02-19 00:17
厉害
点赞 回复 分享
发布于 2021-01-02 13:30

相关推荐

06-20 15:23
门头沟学院 Java
难道你们背八股都不觉得累?现在每天背八股背的我想吐
想去大厂的土豆子:累不累都是对比出来的,八股可比高考、考研轻松多了
点赞 评论 收藏
分享
水墨不写bug:疑似没有上过大学
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
5
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务