[2018大华软件创新挑战赛]模拟赛第四题

题目 输入 输出 限制 示例

某股票操盘手账户里有N支股票,股价互不等,分别为v1,v2...vn;每支股票的持有股数为m1,m2...mn。现在操盘手要回笼资金需要卖出股票,假设卖出价格即为当前股价,请问能回笼多少种不同的资金量。比如:两支股票,股价分别为10、11,数量为1、2,则能回笼0、10、11、22、21、32,总共6种资金量


输入的第一行指定用例数量T;
用例的第一行输入股票种类n;
用例的第二行输入股票的价格,以空格隔开;
用例的第三行输入股票的数量,已空格隔开;

输出不同资金量的个数

1<=n<=10
1<=v<=20
1<=m<=6


Input:
1
2
10 11
1 2

Output:
6

【实现代码】:

 1 #include <stdio.h>
 2
 3 int result[100000];
 4 int count;
 5
 6 void combination(int* arr,int i,int cnt)
 7 {
 8         if(i >= cnt)
 9         {
10                 int sum = 0;
11                 for(int j=0; j<cnt; j++)
12                 {
13                         sum += arr[j];
14                 }
15                 for(int j=0; j<count; j++)
16                 {
17                         if(sum == result[j]) return;
18                 }
19                 result[count++] = sum;
20                 return;
21         }
22
23         int temp = arr[i];
24         arr[i] = 0;
25         combination(arr,i+1,cnt);
26         arr[i] = temp;
27         combination(arr,i+1,cnt);
28 }
29
30 int main()
31 {
32         int t = 0;
33         scanf("%d",&t);
34         while(t--)
35         {
36                 int n = 0;
37                 scanf("%d",&n);
38
39                 int val[n];
40                 for(int i=0; i<n; i++)
41                 {
42                         scanf("%d",&val[i]);
43                 }
44
45                 int num[n];
46                 int cnt = 0;
47                 for(int i=0; i<n; i++)
48                 {
49                         scanf("%d",&num[i]);
50                         cnt += num[i];
51                 }
52
53                 int arr[n*cnt];
54                 cnt = 0;
55                 for(int i=0; i<n; i++)
56                 {
57                         for(int j=0; j<num[i]; j++)
58                         {
59                                 arr[cnt++] = val[i];
60                         }
61                 }
62                 printf("\n");
63                 combination(arr,0,cnt);
64                 printf("%d \n",count);
65         }
66 }

【代码效果】:

原文地址:https://www.cnblogs.com/usingnamespace-caoliu/p/8975261.html

时间: 2024-11-09 10:47:19

[2018大华软件创新挑战赛]模拟赛第四题的相关文章

[2018大华软件创新挑战赛] 初赛1~10题(更新中)

赛题以及注意事项(下载):https://files.cnblogs.com/files/usingnamespace-caoliu/%E5%88%9D%E8%B5%9B.rar 第一题(已优化): 给定一个正数数组,找出不相邻元素的子序列的和的最大值.如:2.5.3.9应该返回14(5+9):8.5.3.9.1应该返回17(8+9):5 4 10 100 10 5应该返回110(5+100+5): 1 #include <stdio.h> 2 #include <unistd.h>

2018大华软件大赛模拟赛第2题 (特殊的整数)

题目:有一种特殊的正整数(int类型),将数分为两侧,每侧至少有一位数,两侧的每个数字相加相等,请写出判断的方法用来检测是否这种数. 比如:1236,可以拆分为123和6. 输入:输入的第一行指定用例数量T: 用例的第二行输入正整数: 输出:输出是否为特殊的正整数 bool is_magicnum(int number) intput:212321454543622 output:11 1 #include <stdio.h> 2 #include <stdbool.h> 3 4

2018大华软件大赛 初赛

1    给定一个正数数组,找出不相邻元素的子序列的和的最大值.如:2.5.3.9应该返回14(5+9):8.5.3.9.1应该返回17(8+9):5 4 10 100 10 5应该返回110(5+100+5):    "输入的第一行指定用例数量T:用例的第一行输入指定数组长度N:用例的第二行输入指定N个数组元素C[i]:"    输出子序列的和的最大值    "1 ≤ T ≤ 101 ≤ N ≤ 1000 ≤ C[i] ≤ 500"    "int fi

【2018.11.22】ctsc2018(模拟赛!)

太蠢了……$noip$ 后第一次模拟赛竟然是这样的……完全就是打击自信 / 降智…… 1. 假面 一道神仙概率 $dp$!第一次写…… 拿到题就发现血量 $m_i$ 的上限只有 $100$! 然后 $0$ 操作就可以用 $rate(i,j)$ 动态维护第 $i$ 个人血量为 $j$ 的概率啦. $1$ 操作比较麻烦(但是它故意弄得很少). 设 $live_i$ 和 $dead_i$ 分别为 $1$ 操作范围内的第 $i$ 个人活着和死了的概率,$g_{i,j}$ 是除 $i$ 以外有 $j$ 个

【2018.9.15】陈老师模拟赛1

质量检查(quality) [问题描述] 食品安全部门要检查一些食品中是否含有违禁成分.现在总共有 n 种食品待查,对于每种食品,他们需要给出是否含有这种成分.对一份样品,检测设备可以输出是否含有违禁成分.由于检测设备相当敏感,如果将多份样品混合,只要其中任何一份含有这种添加剂,设备就会输出“含有”:否则如果设备输出“不含有”,则表示混合样品中的每一种都不含有违禁成分.又由于每次检测都非常昂贵,为了减少检测次数,部门希望有策略地将一些样品混合以后进行检测. 对于每种食品,部门都留存了两份样品,可

2018 蓝桥杯省赛 B 组模拟赛(一)

2018 蓝桥杯省赛 B 组模拟赛(一) A.今天蒜头君带着花椰妹和朋友们一起聚会,当朋友们问起年龄的时候,蒜头君打了一个哑谜(毕竟年龄是女孩子的隐私)说:“我的年龄是花椰妹年龄个位数和十位数之和的二倍”. 花椰妹看大家一脸懵逼,就知道大家也不知道蒜头君的年龄,便连忙补充道:“我的年龄是蒜头君个位数和十位数之和的三倍”. 请你计算:蒜头君和花椰妹年龄一共有多少种可能情况? 提醒:两位的年龄都是在 [10,100)[10,100) 这个区间内. 题解: 暴力枚举 answer: 1 代码如下: #

2018/5/24模拟赛总结

shzr带病AK虐爆全场... T1n皇后: 这题没啥好说的... T2有重复元素的排列问题: [问题描述] 设R={ r1, r2 , -, rn}是要进行排列的n个元素.其中元素r1, r2 , -, rn可能相同.试设计一个算法,列出R的所有不同排列. [编程任务] 给定n 以及待排列的n 个元素.计算出这n 个元素的所有不同排列. [输入格式] 由perm.in输入数据.文件的第1 行是元素个数n,1≤n≤500.接下来的1 行是待排列的n个元素. [输出格式] 计算出的n个元素的所有不

2014-11-3 NOIP模拟赛2

NOIP 2014 水题模拟赛 (请选手务必仔细阅读本页内容) 一.题目概况 中文题目名称 数列 刷漆 排队 英文题目与子目录名 seq paint layout 可执行文件名 seq paint layout 输入文件名 seq.in paint.in layout.in 输出文件名 seq.out paint.out layout.out 每个测试点时限 2 秒 1 秒 1 秒 测试点数目 10 10 10 每个测试点分值 10 10 10 附加样例文件 无 无 无 结果比较方式 全文比较(

9.2模拟赛

cogs 比赛名称 树立信心的模拟赛 T1 2739. 凯伦和咖啡 时间限制:1 s   内存限制:512 MB [题目描述] 为了在上课时保持清醒,凯伦需要一些咖啡.咖啡爱好者凯伦想知道最佳的温度来冲煮完美的咖啡.因此,她花了一些时间阅读几本食谱,其中包括广受好评的"咖啡的艺术". 她知道有n个食谱,其中第i个食谱建议应当在li和ri度之间冲煮以达到最佳的味道.凯伦认为如果至少k个食谱推荐某个温度,那么那个温度是可以接受的. 凯伦的性格比较多变,因此她会问q个问题,对于每一个问题,她