校招笔试题

题目描述:
给出m个字符串S1,S2,...,Sm和一个单独的字符串T。请在T中选出尽可能多的子串同时满足:

1)这些子串在T中互不相交。

2)这些子串都是S1,S2,...,Sm中的某个串。

问最多能选出多少个子串。

输入
第一行一个数m(1≤m≤10),接下来m行,每行一个串。最后一行输入一个串T。输入中所有单个串的长度不超过100000,串中只会出现小写字母。

输出
输出一个数,最多能选出多少串。


样例输入
3
aa
b
ac
bbaac
样例输出
3

提示
样例解释:把T中字符从1开始编号,用[L,R]表示从第L个字符到第R个字符所构成的子串。一种选择子串的方法是[1,1],[2,2],[3,4]一共3个串,另一种选法是[1,1],[2,2],[4,5]一共也是3个串。注意不能同时选择子串[3,4],[4,5]因为它们相交了。



体育场突然着火了,现场需要紧急疏散,但是过道真的是太窄了,同时只能容许一个人通过。现在知道了体育场的所有座位分布,座位分布图是一棵树,已知每个座位上都坐了一个人,安全出口在树的根部,也就是1号结点的位置上。其他节点上的人每秒都能向树根部前进一个结点,但是除了安全出口以外,没有任何一个结点可以同时容纳两个及以上的人,这就需要一种策略,来使得人群尽快疏散,问在采取最优策略的情况下,体育场最快可以在多长时间内疏散完成。

输入
第一行包含一个正整数n,即树的结点数量(1<=n<=100000)。

接下来有n-1行,每行有两个正整数x,y,表示在x和y结点之间存在一条边。(1<=x<=y<=n)

输出
输出仅包含一个正整数,表示所需要的最短时间


样例输入
6
2 1
3 2
4 3
5 2
6 1
样例输出
4

 

 

小明是一个数学家,他喜欢用数字给事物命名编号,他给自己编号为1,同时在2019年小明开办了一个农场,准备开始养母猪,他专门给农场的母猪用以下数列2,3,4,5,7,9,12,16,21,28,37,49,65,86,114,151...进行命名。假设农场的母猪永远不会死,小母猪出生后3年后成熟,成熟后从第三年开始每年只会生一只小母猪。第一年农场,有一只刚刚出生的小母猪和一只成熟的母猪(本年不再生小猪,下一年开始生小猪),并给他们编号为2和3。请问,第m只母猪编号为多少?其是哪一年出生的?小明还准备了1份礼物,专门颁给农场第1到m只的母猪颁奖,颁奖规则如下:选出第1到m只的母猪翻转编号(114编号翻转为411)为第k大的母猪进行颁奖,请问是第几只猪获奖?提示: f(n)=f(n-2)+f(n-3)、
小明在双十一晚会上抽奖赢得了一次天猫超市免单的机会,
享受在一个包裹内最大体积V,最大重量M内免单
假设商品i,体积Vi,重量Mi,库存Si,价格Pi
目前天猫超市的商品分为生鲜水产(1)、食品酒水(2),美妆个护(3),居家生活(4)四大类
生鲜水产不与美妆个护同包裹
请你帮助小明在购物车里添置商品使得总价值最大
输入:
输入两个参数半角逗号分隔
m,k
输出:
输出三个数字半角逗号分隔
第m只母猪编号,哪一年出生,第几只小猪获奖
输入范例:
20,3
输出范例:
465,2024,15

输入:
商品总种类n,包裹限定总体积v,包裹限定总重量m(接下来会有n行)
商品1体积,商品1重量,商品1库存,商品1价格,商品1类型
商品2体积,商品2重量,商品2库存,商品2价格,商品2类型
商品3体积,商品3重量,商品3库存,商品3价格,商品3类型
输出:
购物车里商品的总价值
输入范例:
3,40,30
10,10,10,10,1
13,10,12,11,3
3,4,6,5,3
输出范例:
33

 

 

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Main {

/** 请完成下面这个函数,实现题目要求的功能 **/
 /** 当然,你也可以不按照这个模板来作答,完全按照自己的想法来 ^-^  **/
    static String calculate(int m, int k) {


    }

    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        String[] line = in.nextLine().split(",");
        int m = Integer.valueOf(line[0]);
        int k = Integer.valueOf(line[1]);;
        System.out.println(calculate(m, k));

    }
}

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Main {

/** 请完成下面这个函数,实现题目要求的功能 **/
 /** 当然,你也可以不按照这个模板来作答,完全按照自己的想法来 ^-^  **/
   private static int totalPrice(int categoryCount, int totalVolume, int totalWeight, int[] volume, int[] weight,
                                  int[] stock, int[] price, int[] itemType) {


    }
public static void main(String[] args) {
   Scanner in = new Scanner(System.in);
        String[] line = in.nextLine().split(",");
        //总共商品种类
        int categoryCount = Integer.valueOf(line[0]);
        //快递体积
        int totalVolume = Integer.valueOf(line[1]);
        //快递重量
        int totalWeight = Integer.valueOf(line[2]);

        //物品体积
        int[] volume = new int[50];
        //重量
        int[] weight = new int[50];
        //件数
        int[] stock = new int[50];
        //价格
        int[] price = new int[50];
        //类型
        int[] itemType = new int[50];

        for (int i = 1; i <= categoryCount; i++) {
            line = in.nextLine().split(",");
            volume[i] = Integer.valueOf(line[0]);
            weight[i] = Integer.valueOf(line[1]);
            stock[i] = Integer.valueOf(line[2]);
            price[i] = Integer.valueOf(line[3]);
            itemType[i] = Integer.valueOf(line[4]);
        }

        in.close();
  
        System.out.println(totalPrice(categoryCount, totalVolume, totalWeight, volume, weight, stock, price, itemType));

    }
}

  

posted @ 2019-04-21 19:22  FigSprite  阅读(673)  评论(0编辑  收藏  举报