BZOJ 2460: [BeiJing2011]元素 排序,线形基,异或消元

本文介绍了一种解决矿石选择问题的方法,通过将矿石按价值排序并利用线性基来确保选择的矿石集合中没有子集的异或和为0。此问题可通过贪心算法解决,并使用了类似线性基的结构来避免冲突。

题意:有一些矿石,每个矿石有一个a和一个b值,要求选出一些矿石,b的和最大且不存在某个矿石子集它们的a的异或和为0。
解法:向按b从大到小排序,依次加入矿石,判断和前面选中的矿石是否冲突。 可以发现这个过程和前面求线性基的算法是一样的。贪心的正确性 证明可以用拟阵。 可以参考 刘雨辰的 《对拟阵的初步研究》的线性拟阵内容 。我是yy的。

//BZOJ 2460

#include <bits/stdc++.h>
using namespace std;

const int maxn = 1010;

struct node{
    long long a, b;
    node(){}
    node(int a, int b) : a(a), b(b) {}
    bool operator < (const node &rhs) const{
        return b > rhs.b;
    }
}p[maxn];
long long A[63]; //线形基

int main()
{
    int n; scanf("%d", &n); long long ans = 0;
    for(int i = 1; i <= n; i++) scanf("%lld%lld", &p[i].a, &p[i].b);
    sort(p+ 1, p+n+1);
    for(int i = 1; i <= n; i++){
        for(int j = 61; j >= 0; j--){
            if((p[i].a >> j) & 1){
                if(A[j]) p[i].a ^= A[j];
                else {A[j] = p[i].a; break;}
            }
        }
        if(p[i].a) ans += p[i].b;
    }
    printf("%lld\n", ans);
    return 0;
}
【3D应力敏感度分析拓扑优化】【于p-范数全局应力衡量的3D敏感度分析】于伴随方法的有限分析p-范数应力敏感度分析(Matlab代码实现)内容概要:本文档介绍了于伴随方法的有限分析与p-范数全局应力衡量的3D应力敏感度分析,并结合拓扑优化技术,提供了完整的Matlab代码实现方案。该方法通过有限建模计算结构在载荷作用下的应力分布,采用p-范数对全局应力进行有效聚合,避免传统方法中应力约束过多的问题,进而利用伴随法高效求解设计变量对应力的敏感度,为结构优化提供关键梯度信息。整个流程涵盖了从有限分析、应力评估到敏感度计算的核心环节,适用于复杂三维结构的轻量化与高强度设计。; 适合人群:具备有限分析础、拓扑优化背景及Matlab编程能力的研究生、科研人员与工程技术人员,尤其适合从事结构设计、力学仿真与多学科优化的相关从业者; 使用场景及目标:①用于实现高精度三维结构的应力约束拓扑优化;②帮助理解伴随法在敏感度分析中的应用原理与编程实现;③服务于科研复现、论文写作与工程项目中的结构性能提升需求; 阅读建议:建议读者结合有限理论与优化算法知识,逐步调试Matlab代码,重点关注伴随方程的构建与p-范数的数值处理技巧,以深入掌握方法本质并实现个性化拓展。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值