NEUQ-ACM预备队week8-创新互联
NEUQ-ACM预备队week8
1.疯狂的采药(P1616)(完全背包模板题)
网页标题:NEUQ-ACM预备队week8-创新互联
浏览路径:http://azwzsj.com/article/ppiig.html
一定要开long long,数据有坑(java是long)
为贵州等地区用户提供了全套网页设计制作服务,及贵州网站建设行业解决方案。主营业务为网站建设、成都网站制作、贵州网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!讲解可以看另一篇完全背包讲解
和一维01背包
import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner sc =new Scanner(System.in);
long bagWeight = sc.nextInt();
long n=sc.nextInt();
long[] weight = new long[10005];
int flag=0;
long[] value = new long[10005];
while (sc.hasNext()){weight[flag]=sc.nextInt();
value[flag]=sc.nextInt();
flag++;
}
if(n==1) System.out.println((bagWeight/weight[0])*value[0]);
else{long[] dp = new long[(int) (bagWeight+1)];
for (int i = 0; i< n; i++){// 遍历物品
for (int j = (int) weight[i]; j<= bagWeight; j++){// 遍历背包容量
dp[j] = Math.max(dp[j], dp[(int) (j - weight[i])] + value[i]);
}
}
System.out.println(dp[(int) bagWeight]);
}}
}
2.樱花(P1833)(混合背包)这个用java太麻烦了www,难搞哦
- dp[j]表示消耗了j分钟最多可以有多少美学值,a[i]表示第i朵花最多可以看多少次
- 当a[i]=0时,用完全背包
- 其他时候用多重背包(01可以算是只能一次的多重背包)
#includeusing namespace std;
int c[100001],a[1000001],t[1000001],te1,te2,ts1,ts2,n,tz;//c[],t[]为题目等于,a[]表示最多看的次数,te1小时1,te2分钟1,ts1小时2,ts2分钟2,tz总时间
int dp[1001];//dp[j]表示消耗了j分钟最多可以有多少美学值
char cc;//符号':'
int main()
{
cin>>te1>>cc>>te2>>ts1>>cc>>ts2;
tz=60*(ts1-te1)+ts2-te2;
cin>>n;
for(int p=1;p<=n;p++) scanf("%d%d%d",&t[p],&c[p],&a[p]);
for(int i=1;i<=n;i++)
{
if(a[i]==0){
for(int j=t[i];j<=tz;j++) dp[j]=max(dp[j],dp[j-t[i]]+c[i]);
}
else{
for(int l=1;l<=a[i];l++)
for(int j=tz;j>=l*t[i];j--) dp[j]=max(dp[j],dp[j-t[i]]+c[i]);
}
}
cout<
3.摆花(P1077)(01背包)压成一维01背包
import java.util.Scanner;
public class Main {public static void main(String[] args) {int n,m,mod=1000007;
int[] a=new int[105];
int[] dp=new int[105];
Scanner sc= new Scanner(System.in);
n=sc.nextInt();
m=sc.nextInt();
for (int i = 1; i<=n ; i++) {a[i]=sc.nextInt();
}
dp[0]=1;
for (int i = 1; i<=n ; i++) {for (int j = m; j >=0 ; j--) {for (int k = 1; k<=Math.min(a[i],j) ; k++) {dp[j]=(dp[j]+dp[j-k])%mod;
}
}
}
System.out.println(dp[m]);
}
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网页标题:NEUQ-ACM预备队week8-创新互联
浏览路径:http://azwzsj.com/article/ppiig.html