zoukankan      html  css  js  c++  java
  • [JLOI2015]装备购买

    线性基+贪心

    这题毒瘤在卡精度

    在模质数意义下进行线性基可避免精度误差

    #include"cstdio"
    #include"cstring"
    #include"iostream"
    #include"algorithm"
    #include"cmath"
    using namespace std;
    
    const int MAXN=505;
    const int MOD=19260817;
    
    int n,m,cnt,sum;
    struct rpg{
    	int v[MAXN],val;
    }a[MAXN],lb[MAXN];
    
    bool cmp(rpg a,rpg b){return a.val<b.val;}
    
    int getinv(int x){return x==1?1:(long long)(MOD-MOD/x)*getinv(MOD%x)%MOD;}
    
    int main()
    {
    	scanf("%d%d",&n,&m);
    	for(int i=1;i<=n;++i){
    		for(int j=1;j<=m;++j){
    			scanf("%d",&a[i].v[j]);
    		}
    	}for(int i=1;i<=n;++i) scanf("%d",&a[i].val);
    	sort(a+1,a+n+1,cmp);
    	for(int i=1;i<=n;++i){
    		for(int j=1;j<=m;++j){
    			if(!a[i].v[j]) continue;
    			if(!lb[j].val){lb[j]=a[i];lb[j].val=1;sum+=a[i].val;++cnt;break;}
    			int tmp=(long long)a[i].v[j]*getinv(lb[j].v[j])%MOD;
    			for(int k=m;k>=j;--k) a[i].v[k]-=(long long)lb[j].v[k]*tmp%MOD,a[i].v[k]%=MOD;
    		}
    	}printf("%d %d
    ",cnt,sum);
    	return 0;
    }
    
  • 相关阅读:
    老杳:2017年中国集成电路产业十大新闻
    RMA退货流程解决方案
    Linux
    vue.js
    NET Core度身定制的AOP框架
    Timeline
    HTTP
    MVC 常用扩展点:过滤器、模型绑定等
    装箱拆箱
    jQuery Tree
  • 原文地址:https://www.cnblogs.com/AH2002/p/10390067.html
Copyright © 2011-2022 走看看