首页 > 其他分享 >202209_2

202209_2

时间:2022-10-04 10:34:21浏览次数:46  
标签:val int sum 202209 DFS ans now

CSP202209_2

目录

题目

何以包邮

思路

DFS

直接DFS,对每件物品根据选与不选进行搜索。当前总价值已经大于答案或者已经满足条件了就显然没有搜索必要,对答案更新后直接回溯即可;所有物品被搜完作为搜索的最终边界。

时间复杂度较大,只能70pts。

DP

挺明显的01背包,直接求出所有容量对应的价值后,找大于等于 m 且最小的背包价值即可。

Code

  1. DFS(70pts)

    #include<bits/stdc++.h>
    const int INF = 0x3f3f3f3f;
    using namespace std;
    
    int n, m;
    int ans = INF;
    int val[10010];
    
    void DFS(int now, int sum)
    {
    	if(sum > ans) return;
    	if(sum >= m)
    	{
    		ans = min(ans, sum);
    		return;
    	}
    	if(now > n) return;
    	DFS(now + 1, sum + val[now]);
    	DFS(now + 1, sum);
    	return;
    }
    int main()
    {
    	cin >> n >> m;
    	for(int i = 1; i <= n; i++)
    	{
    		cin >> val[i];
    	}
    	DFS(1, 0);
    	cout << ans;
    	return 0;
    }
    
  2. DP(100pts)

    #include<bits/stdc++.h>
    const int INF = 0x3f3f3f3f;
    using namespace std;
    
    int n, m, ans = INF;
    int val[101];
    int dp[300010];
    
    int main()
    {
    	cin >> n >> m;
    	for(int i = 1; i <= n; i++)
    	{
    		cin >> val[i];
    	}
    	for(int i = 1; i <= n; i++)
    	{
    		for(int j = 300001; j >= val[i]; j--)
    		{
    			dp[j] = max(dp[j], dp[j - val[i]] + val[i]);
    		}
    	}
    	for(int i = 1;i <= 300001;i++)
    	{
    		if(dp[i] >= m)
    		{
    			ans = min(ans, dp[i]);
    		}
    	}
    	cout << ans;
    	return 0;
    }
    

标签:val,int,sum,202209,DFS,ans,now
From: https://www.cnblogs.com/kevin-chance/p/16753330.html

相关文章

  • Jenkins 20220927笔记本4
                          ......
  • Jenkins 20220929笔记本5
                                  ......
  • spring-retry 20220929
     1、pom.xml<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-st......
  • SpringCloud重试retry 20220927
    SpringCloud重试retry是一个很赞的功能,能够有效的处理单点故障的问题。主要功能是当请求一个服务的某个实例时,譬如你的User服务启动了2个,它们都在eureka里注册了,那么正常情......
  • Jenkins 20220925笔记本3
                                                 ......
  • English words chapter 20220927
    作者:​DATA_MONK​​​......
  • 20220930 英文单词
    10TipstoBeaBetterCo-Workerhttps://work.chron.com/10-tips-better-coworker-2715.html 1、inandofitself表示从事物的本身来看,不考虑其他方面。 2、Don......
  • 20220930-ArrayList扩容机制源码分析②
    本部分对于使用设置初始容量的方法创建ArrayList集合的方式进行源码分析。代码publicclassArrayListSource{publicstaticvoidmain(String[]args){......
  • 20220929-ArrayList扩容机制源码分析
    示例代码publicclassArrayListSource{publicstaticvoidmain(String[]args){ArrayListarrayList=newArrayList();//跳转至第一步for......
  • 20220929
    20220929(中)t1智力大冲浪传送门思路​ 非常明显的贪心,能尽可能的少扣钱就少扣钱,即将每个游戏按其价值从大到小排序。那么考虑如何在该基础上加入时间的情况下贪心。......