码迷,mamicode.com
首页 > 其他好文 > 详细

2018“氢舞杯”编程挑战赛

时间:2018-06-16 23:01:56      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:时间   测试数据   分享图片   多行   space   efi   apple   内存限制   解决   

问题 F: 最小重量机器设计问题

时间限制: 1Sec 内存限制: 128MB 提交: 115 解决: 0

题目描述

设某一机器由n个部件组成,每一种部件都可以从m个不同的供应商处购得。设Wij 是 
从供应商j处购得的部件i的重量,Cij 是相应的价格。 
试设计一个算法,给出总价格不超过c的最小重量机器设计。 
′编程任务: 
对于给定的机器部件重量和机器部件价格,编程计算总价格不超过d的最小重量机器设 
计。

输入

第一行有 3 个正整数 n ,m和 d。接下来的 2n 行,每 
行m个数。前n行是c,后n行是w。

输出

将计算出的最小重量,以及每个部件的供应商输出

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

 1 #include<bits/stdc++.h>
 2 #define MAX_N 4000
 3 
 4 int n,m,d,minW;
 5 int w[MAX_N][MAX_N];
 6 int c[MAX_N][MAX_N];
 7 int bf[MAX_N];            //buy from
 8 int r[MAX_N];            //result
 9 
10 void determ(int i, int cc, int cw){
11     if(i==n){
12         minW = cw;
13         for(i=0;i<n;i++){
14             r[i] = bf[i];
15         }
16         return;
17     }
18     for(int j=0;j<m;j++){
19         if(cc+c[i][j]<=d && cw+w[i][j]<minW){
20             bf[i] = j;
21             determ(i+1, cc+c[i][j], cw+w[i][j]);
22         }
23     }
24 }
25 
26 int main(){
27     int i,j;
28     scanf("%d%d%d",&n,&m,&d);
29     for(i=0;i<n;i++){
30         for(j=0;j<m;j++){
31             scanf("%d",&c[i][j]);
32         }
33     }
34     for(i=0;i<n;i++){
35         for(j=0;j<m;j++){
36             scanf("%d",&w[i][j]);
37         }
38     }
39     minW = INT_MAX;
40     determ(0,0,0);
41     if(minW != INT_MAX){
42         printf("%d\n",minW);
43         for(i=0;i<n;i++){
44             printf("%d ",r[i]+1);
45         }
46    }
47 }

 

问题 D: 最多约数问题

时间限制: 1Sec 内存限制: 128MB 提交: 67 解决: 14

题目描述

正整数x 的约数是能整除x 的正整数。正整数x 的约数个数记为div(x)。例如,1,2, 
5,10 都是正整数10 的约数,且div(10)=4。设a 和b 是2 个正整数,a≤b,找出a 和b 
之间约数个数最多的数x 

输入

输入2 个正整数a≤b≤5000000,编程计算a 和b 之间约数个数最多的数。

输出

程序运行结束时,找到a 和b 之间约数个数最多的数是x,将div(x)输出

样例输入
1 36
样例输出
9




问题 E: 班级人数

时间限制: 1Sec 内存限制: 128MB 提交: 29 解决: 22

题目描述

某班学生参加程序设计大赛,最后结果及格有超过P%但不足Q%的人。现在给你P和Q,你要算出该班最少有多少人。(数据弱了一点,所以好通过)。

输入

两个实数P,Q。用空格隔开。每个数最多有两位小数。0.00<=p<q<=99.99

输出

神风堂最少的人数。

样例输入
13    14.1
67.73 67.92
样例输出
15
28






问题 J: 战场的数目

时间限制: 1Sec 内存限制: 128MB 提交: 24 解决: 15

题目描述

 

在上题中,假设战场的图形周长为p,一共有多少种可能的战场?

 

例如,p<8时没有符合要求的战场,p=8时有2种战场:

技术分享图片

 

 

p=10有9种战场:

 

 技术分享图片

 

要求输出方案总数模987654321的值。

 

输入

输入文件最多包含25组测试数据,每个数据仅包含一行,有一个整数p(1<=p<=109),表示战场的图形周长。p=0表示输入结束,你的程序不应当处理这一行。

输出

 对于每组数据,输出仅一行,即满足条件的战场总数除以987654321的余数。

样例输入
7
8
9
10
0
样例输出
0
2
0
9


问题 I: 核电站问题

时间限制: 1Sec 内存限制: 128MB 提交: 33 解决: 16

题目描述

一个核电站有N个放核物质的坑,坑排列在一条直线上。如果连续3个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质。现在,请你计算:对于给定的N,求不发生爆炸的放置核物质的方案总数。

输入

输入文件只有多行,每行对应一个正整数N<=40;

输出

输出文件有多行,每行只有一个正整数,表示方案总数

样例输入
1
2
3
4
10
样例输出
2
4
7
13
504



2018“氢舞杯”编程挑战赛

标签:时间   测试数据   分享图片   多行   space   efi   apple   内存限制   解决   

原文地址:https://www.cnblogs.com/dgwblog/p/9191664.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!