今日头条2018_春招实习_编程2(混合货币组合,混合背包问题)

原创 2018年04月15日 19:59:25



分析:

package 实习面试笔试题.今日;

import java.util.Scanner;

public class Main2_01背包和完全背包混合 {
    //01背包和完全背包组合
    //给定货币组合,有些货币可以取一次,有些货币可以取多次
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt();
        int m=sc.nextInt();
        int count=sc.nextInt();

        int [] nums=new int[n+m];
        //普通币
        for(int i=0;i<n;i++){
            nums[i]=sc.nextInt();
        }
        //纪念币
        for(int j=n;j<n+m;j++){
            nums[j]=sc.nextInt();
        }


        int [] dp=new int[count+1];
        //初始化,因为0的金额只有一种
        dp[0]=1;

        for(int i=0;i<n+m;i++){
            if(i<n){
                //普通货币,完全背包
                for(int j=1;j<=count;j++){
                    if(j>=nums[i]){
                        //因为是求组合总数
                        dp[j]=dp[j]+dp[j-nums[i]];
                    }
                }
            }else if(i<n+m){
                //纪念币,01背包
                for(int j=count;j>=1;j--){
                    if(j>=nums[i]){
                        dp[j]=dp[j]+dp[j-nums[i]];
                    }
                }
            }
        }
        System.out.println(dp[count]%1000000007);
    }

}

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiakexiaohu/article/details/79952435

2018今日头条秋招 笔试 (2017/09/10)

20170910 头条笔试【改错题】二分查找 http://blog.csdn.net/v_july_v/article/details/7093204//首先要把握下面几个要点: //right=...
  • bojackhosreman
  • bojackhosreman
  • 2017-09-11 10:33:20
  • 2742

今日头条笔试之字母交换

一、题目描述 【编码题】字符串S由小写字母构成,长度为n。定义一种操作,每次都可以挑选字符串中任意的两个相邻字母进行交换。询问在至多交换m次之后,字符串中最多有多少个连续的位置上的字母相同? ...
  • cxzzxc123456
  • cxzzxc123456
  • 2018-01-14 19:19:11
  • 930

今日头条笔试题(一)

车厢排序一列火车有n个车厢标记为1,2,3,4,5,6…n 现在因为某些原因,需要调整车厢的相对顺序 例如需要将车厢顺序调整为2,3,1,4,5,6…n 由于车厢庞大,且车厢只能停留在铁轨上,所...
  • qq_34781336
  • qq_34781336
  • 2017-12-23 15:57:22
  • 1945

今日头条的一条笔试题

今日头条的一道基于贪婪思想的笔试题 一。 题目介绍 头条的2017校招开始了!为了这次校招,我们组织了一个规模宏大的出题团队。每个出题人都出了一些有趣的题目,而我们现在想把这些题目组合成若干场...
  • lccla120712
  • lccla120712
  • 2017-04-18 12:14:18
  • 3132

2018今日头条内推笔试2

对于这道题,假设     区间最小数*区间所有数的和    记为一个区间的K值 我们首先要明确一点:假设有一个区间,它的最小值为a,我们对这个区间进行扩张,当扩张的值大于等于a时,这个区间的K值只增不...
  • xiao_dondon
  • xiao_dondon
  • 2017-08-23 13:22:06
  • 1288

今日头条一面笔试面试题!!!!!完整

参加字节跳动的面试,笔试一个小时,面试一个多小时,中午在公司食堂吃了顿饭,然后完毕,邮件通知我挂掉了。先笔试,然后拿着卷子,面试官会根据笔试题从后往前问,整个过程感觉学习到超级多东西 先说笔试题~来...
  • github_35924246
  • github_35924246
  • 2017-07-21 23:54:32
  • 11619

今日头条 笔试 后端 等待答案

时间限制:C/C++语言 1000MS;其他语言 3000MS内存限制:C/C++语言 65536KB;其他语言 589824KB题目描述:P为给定的二维平面整数点集。定义 P中某点x,如果x满足 P...
  • m0_37693059
  • m0_37693059
  • 2017-08-22 21:37:14
  • 1390

2018今日头条内推笔试1

按照y坐标j降序排序,然后从第一个元素开始从后往前找,当x坐标变大时,这个点就是“最大”点,更新x值,继续往后找,直至全部遍历; 例如有5个点,横坐标分别为9,6,3,1,5           ...
  • xiao_dondon
  • xiao_dondon
  • 2017-08-22 23:30:51
  • 3136

今日头条校招笔试

import java.util.ArrayDeque; import java.util.Arrays; import java.util.Scanner;public class Main { ...
  • qq_17612199
  • qq_17612199
  • 2016-09-21 21:50:50
  • 1646

20170330今日头条笔试题

只有四个编程题 1 2 3 #include using namespace std; int main() { string s; cin>>s; ...
  • KgdYsg
  • KgdYsg
  • 2017-03-31 07:15:42
  • 1542
收藏助手
不良信息举报
您举报文章:今日头条2018_春招实习_编程2(混合货币组合,混合背包问题)
举报原因:
原因补充:

(最多只允许输入30个字)