C. Feast Coins(背包求方案数)

ICPC Arab Collegiate Programming Contest 2014 C题
题解:转化为因子考虑,因为每一种选取相同的个数

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL maxn=5005+10;
const LL maxm=55;
const LL mod=1e9+7;
LL S,N;
LL V[maxn],C[maxn];
LL f[maxm][maxn];
int mp[maxn];
int main()
{
   int T;
   scanf("%d",&T);
   int c=1;
   while(T--){
     scanf("%lld%lld",&S,&N);
     for(LL i=1;i<=N;i++){
        scanf("%lld%lld",&V[i],&C[i]);
     }
     memset(mp,0,sizeof(mp));
     vector<LL> v;v.clear();
     for(LL i=1;i<=S;i++){
        if(S%i==0){
            if(mp[i]==0){
                mp[i]=1;
                v.push_back(i);
            }
        }
     }
     LL res=0;
     LL n=v.size();
     for(LL k=0;k<n;k++){
        LL m=v[k];
        memset(f,0,sizeof(f));
        for(LL i=1;i<=N;i++){
            for(LL j=1;j<=m;j++){
                LL l=S/m;
                if(j-V[i]>=0&&f[i-1][j-V[i]]&&l*V[i]<=S&&l<=C[i]){//一定要加l<=C[i],否则会wa
                    f[i][j]+=f[i-1][j-V[i]];
                }
                f[i][j]+=f[i-1][j];
                if(l<=C[i]&&V[i]==j&&l*V[i]<=S){
                    f[i][j]+=1;
                }
            }
        }
        /*for(LL i=1;i<=N;i++){
            for(LL j=1;j<=m;j++){
                printf("%lld ",f[i][j]);
            }
            printf("\n");
        }*/
        res+=f[N][m];
     }
     if(S==0){
        res=1;
     }
     printf("Case %d: %lld\n",c++,res);
   }
   return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python的feast是一个用于特征存储和管理的开源库。下面是一个使用feast的示例: 首先,我们需要准备一些特征据。假设我们正在开发一个电商推荐系统,我们想要使用用户的浏览历史和购买记录作为特征。我们可以定义一个“user_features.csv”文件,其中包含用户的ID、浏览历史和购买记录。类似地,我们可以定义一个“product_features.csv”文件,其中包含产品的ID、价格和品类等特征。 接下来,我们可以使用feast来创建一个特征实体。我们可以使用命令行工具或编程接口,使用以下代码创建一个新的特征实体: ```python import feast # 创建一个feast客户端 client = feast.Client() # 创建一个特征实体 client.apply_entity_from_csv(entity="user", entity_source="user_features.csv", schema="user_id:int64, view_count:int64, purchase_count:int64") client.apply_entity_from_csv(entity="product", entity_source="product_features.csv", schema="product_id:int64, price:double, category:string") ``` 我们定义了两个特征实体,一个是用户(user),一个是产品(product)。通过定义它们的名称、来源和模式,我们可以让feast知道如何加载和管理这些特征。 接下来,我们可以定义一个特征集(FeatureSet)。特征集是一个包含多个特征的集合,可以用来训练模型或进行推断。以下是一个使用feast定义特征集的示例: ```python # 创建一个特征集 client.apply_feature_set(feature_set="user_view_stats", features=["user.view_count", "user.purchase_count", "product.price"], entities=["user", "product"], batch_source="user_features.csv", stream_source="user_clickstream", schema="user_id:int64, view_count:int64, purchase_count:int64, price:double") ``` 在上述示例中,我们定义了一个名为“user_view_stats”的特征集。它包含了用户的浏览次、购买次以及产品的价格特征。我们还指定了特征集的实体(即用户和产品),以及特征集的据来源(批处理和流处理)。 通过以上步骤,我们成功地创建了特征实体和特征集,并使用feast进行特征管理和存储。在实际使用feast时,还可以通过feast的查询接口获取特征据,并进行模型训练或推断等操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值