zoukankan      html  css  js  c++  java
  • bzoj3550: [ONTAK2010]Vacation(单纯形法+线性规划)

    传送门

    直接暴力把线性规划矩阵给打出来然后单纯形求解就行了
    简单来说就是每个数记一个(d_i)表示选或不选,那么就是最大化(sum d_ic_i),并满足一堆限制条件
    然后不要忘记限制每个数最多选一次
    (据说还可以费用流然而实在不会啊……)

    //minamoto
    #include<bits/stdc++.h>
    #define R register
    #define inf 1e18
    #define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i)
    #define fd(i,a,b) for(R int i=a,I=b-1;i>I;--i)
    #define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
    using namespace std;
    char buf[1<<21],*p1=buf,*p2=buf;
    inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}
    int read(){
        R int res,f=1;R char ch;
        while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1);
        for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0');
        return res*f;
    }
    const int N=2005;const double eps=1e-8;
    double a[N][N];int n,k,m;
    void pivot(int l,int e){
        double t=a[l][e];a[l][e]=1;fp(i,0,m)a[l][i]/=t;
        fp(i,0,n)if(i!=l&&fabs(a[i][e])>eps){
            t=a[i][e],a[i][e]=0;
            fp(j,0,m)a[i][j]-=t*a[l][j];
        }
    }
    void simplex(){
        while(true){
            int l=0,e=0;double mn=inf;
            fp(i,1,m)if(a[0][i]>eps){e=i;break;}if(!e)break;
            fp(i,1,n)if(a[i][e]>eps&&a[i][0]/a[i][e]<mn)mn=a[i][0]/a[i][e],l=i;
            pivot(l,e);
        }
    }
    int main(){
    //  freopen("testdata.in","r",stdin);
        n=read(),k=read();fp(i,1,n*3)a[0][i]=read();
        fp(i,1,n*3)a[i][i]=a[i][0]=1;
        fp(i,1,n*2+1){
            fp(j,0,n-1)a[i+n*3][i+j]=1;
            a[i+n*3][0]=k;
        }m=3*n,n=5*n+1;simplex();
        printf("%d
    ",(int)(-a[0][0]+0.5));return 0;
    }
    
  • 相关阅读:
    1058 A+B in Hogwarts (20)
    1046 Shortest Distance (20)
    1061 Dating (20)
    1041 Be Unique (20)
    1015 Reversible Primes (20)(20 分)
    pat 1027 Colors in Mars (20)
    PAT 1008 Elevator (20)
    操作系统 死锁
    Ajax的get方式传值 避免& 与= 号
    让IE浏览器支持CSS3表现
  • 原文地址:https://www.cnblogs.com/bztMinamoto/p/10103013.html
Copyright © 2011-2022 走看看