weight

Posted gongcheng456

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了weight相关的知识,希望对你有一定的参考价值。

题目链接:

技术图片

就是大概这么个东西

根据题意,我们可以清楚的知道:这个题我不会,这个题需要先将2n个数进行排序

这样每对于一个小的前(后)缀和总会在队列最前或队列最后

设这个数为k

那么判断总的Sum(n)-k是否在集合之中就可以啦

当然,如果不在集合之中,我们就要重新的回溯一遍

直到成功

PS:若k既满足于前缀和又满足于后缀和,先放在前面

因为技术图片

下放代码:

//weight
#include <bits/stdc++.h>

using namespace std;

const int N = 0x3f3f3f3f;
int n, s[N], m, a[N], t[N], flag, ans[N], all;

inline int read()

    int x = 0, y = 1;
    char z = getchar();
    while (z < 0 || z > 9)
    
        if (z == -)
        
            y = -1;
            z = getchar();
        
    
    while (z >= 0 && x <= 9)
    
        x = (x << 3) + (x << 1) + z - 0;
        z = getchar();
    


inline void dfs(int l, int r, int now, int sum1, int sum2)

    if (flag)
        return;
    if (l == r)
    
        int w3 = all - sum1 - sum2;
        if (t[w3])
        
            ans[l] = w3;
            flag = 1;
        
        return;
    
    int w1 = s[now] - sum1;
    if (w1 <= 500 && w1 >= 1 && t[w1]) //属于前缀
    
        ans[l] = w1;
        dfs(l + 1, r, now + 1, s[now], sum2);
    
    if (flag)
        return;
    int w2 = s[now] - sum2;
    if (w2 <= 500 && w2 >= 1 && t[w2]) //属于后缀
    
        ans[r] = w2;
        dfs(l, r - 1, now + 1, sum1, s[now]);
    


int main()

    scanf("%d", &n);
    for (int i = 1; i <= 2 * n; i++) //前后缀和
        scanf("%d", &s[i]);
    scanf("%d", &m);
    for (int i = 1; i <= m; i++)
    
        scanf("%d", &a[i]);
        t[a[i]] = 1;
    
    sort(s + 1, s + 2 * n + 1);
    all = s[2 * n];
    dfs(1, n, 1, 0, 0);
    for (int i = 1; i <= n; i++)
        printf("%d ", ans[i]);
    return 0;

 

以上是关于weight的主要内容,如果未能解决你的问题,请参考以下文章

Unity 使用Animation Clip(动画片段) 对Animation Rig的Rig Weight (rig权重) 进行调整,出现无法调整的问题,及解决方法

Android Layout_Weight 属性不起作用[重复]

11.按要求编写Java应用程序。 创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)减速(车速自减)修改车牌号,查询车的(代码片段

如何从代码中动态设置 layout_weight 属性?

layout_weight布局中遇到的问题记录一下

体重减150×0.6+48用Python代码怎么写?