zoukankan      html  css  js  c++  java
  • zoj 3008 3010

    3008 Gold Coins

    (刚开始以为会超时,会有数学方法,网上搜索了一下居然都是深度搜索)

    分解质因数之后深度搜索

    如果没有1 ≤ t ≤ n 这个条件可以直接用数学方法计算

    View Code
    #include<cstring>
    #include<cstdio>
    #include<algorithm>
    #include<cstdlib>
    #define MAXN 10010
    using namespace std;

    long long ans,n,k;
    long long a[MAXN],b[MAXN];

    void DFS(long long i, long long c)
    {
    long long j;
    if(c>n||c<=0)//百思不得其解为什么要c<=0才AC,不可能会溢出的呀!!
    return;
    if(i>=k)
    {
    ans++;
    return ;
    }
    for(j=0;j<=b[i];j++)
    {
    if(j)
    c*=a[i];
    DFS(i+1,c);
    }
    }

    int main()
    {
    long long m,i,t;
    while(scanf("%lld%lld",&n,&m)!=EOF)
    {
    ans=k=0;
    t=n;
    for(i=2;i*i<=t;i++)
    if(t%i==0)
    {
    a[k]=i;
    b[k]=1;
    t/=i;
    while(t%i==0)
    {
    b[k]++;
    t/=i;
    }
    b[k]*=m;
    k++;
    }
    if(t>1)
    {
    a[k]=t;
    b[k]=m;
    k++;
    }
    DFS(0,1);
    printf("%lld\n",ans);
    }
    return 0;
    }


    3009 The Lamp Game

    开始以为是位DP,结果还是深度搜索枚举所有情况(最多1024)

    View Code
    #include<cstring>
    #include<cstdio>
    #include<algorithm>
    #include<cstdlib>
    #define MAXN 1050
    using namespace std;

    int s[MAXN],n;
    double c[11],ans;

    void DFS(int i, int state, double t)
    {
    if(t < ans)
    return;
    if(i==n)
    {
    if(state+1==(1<<n))
    ans=t;
    return ;
    }
    DFS(i+1,state,t);
    DFS(i+1,state^s[i],t*c[i]);
    }

    int main()
    {
    int i,j,k,m;
    while(scanf("%d%d",&n,&m),n+m)
    {
    ans=-1.0;
    for(i=0;i<n;i++)
    {
    scanf("%d",&k);
    for(s[i]=(1<<i);k--;)
    {
    scanf("%d",&j);
    j--;
    s[i]=s[i]|(1<<j);
    }
    scanf("%lf",c+i);
    c[i]=(100.0-c[i])/100.0;
    }
    DFS(0,0,m*1.0);
    if(ans>0)
    printf("%.2lf\n",ans);
    else
    puts("-1");
    }
    return 0;
    }



  • 相关阅读:
    Linux系统常用工具集
    Storm安装部署
    Linux下搭建Elasticsearch7.6.2集群
    解决SpringMVC @RequestBody无法注入基本数据类型
    微服务概念
    HashMap的原理简单介绍
    mysql进阶
    vue 路由缓存 keep-alive include和exclude无效
    el-date-picker 时间日期格式,选择范围限制
    RedisTemplate使用rightPushAll往list中添加时的注意事项
  • 原文地址:https://www.cnblogs.com/xchaos/p/2413851.html
Copyright © 2011-2022 走看看