zoukankan      html  css  js  c++  java
  • bzoj 4004 向量拟阵

    题解RT.

    eps = 1e-10 WrongAnswer

    eps = 1e-5 Accepted

     1 /**************************************************************
     2     Problem: 4004
     3     User: idy002
     4     Language: C++
     5     Result: Accepted
     6     Time:516 ms
     7     Memory:2844 kb
     8 ****************************************************************/
     9  
    10 #include <cstdio>
    11 #include <cstring>
    12 #include <algorithm>
    13 #define eps 1e-5
    14 #define N 510
    15 using namespace std;
    16  
    17 int n, m;
    18 double aa[N][N]; 
    19 int cost[N];
    20 int vid[N];
    21 int kid[N];
    22  
    23 int sg( double x ) {
    24     return (x>-eps)-(x<eps);
    25 }
    26 bool cmp( int a, int b ) { return cost[a]<cost[b]; }
    27 bool join( int id ) {
    28     for( int i=1; i<=m; i++ ) {
    29         if( sg(aa[id][i])==0 ) continue;
    30         if( kid[i]==0 ) {
    31             kid[i]=id;
    32             return true;
    33         } 
    34         int uid = kid[i];
    35         double k = aa[id][i]/aa[uid][i];
    36         for( int j=i; j<=m; j++ )
    37             aa[id][j] -= k*aa[uid][j];
    38     }
    39     return false;
    40 }
    41 int main() {
    42     scanf( "%d%d", &n, &m );
    43     for( int i=1; i<=n; i++ )
    44         for( int j=1; j<=m; j++ )
    45             scanf( "%lf", &aa[i][j] );
    46     for( int i=1; i<=n; i++ )
    47         scanf( "%d", cost+i );
    48     for( int i=1; i<=n; i++ )
    49         vid[i] = i;
    50     sort( vid+1, vid+1+n, cmp );
    51     memset( kid, 0, sizeof(kid) );
    52     int cnt=0, ans=0;
    53     for( int i=1; i<=n; i++ ) {
    54         int id = vid[i];
    55         if( join(id) ) {
    56             cnt++;
    57             ans+=cost[id];
    58         }
    59     }
    60     printf( "%d %d
    ", cnt, ans );
    61 }
    View Code
  • 相关阅读:
    jdk动态代理底层实现
    SpringMvc执行流程及底层代码流程
    JavaWeb02-JSP数据交互
    JavaWeb01-动态网页
    异常总结
    优雅代码
    flask 脚本迁移语句
    git 拉取分支合并master&&回滚
    创建型设计模式
    基于mybatis的一个分表插件
  • 原文地址:https://www.cnblogs.com/idy002/p/4564451.html
Copyright © 2011-2022 走看看