程序设计大赛试题及答案

合集下载

第六届蓝桥杯程序设计大赛题目及答案

第六届蓝桥杯程序设计大赛题目及答案

第六届省赛1.方程整数解方程: a^2 + b^2 + c^2 = 1000(或参见【图1.jpg】)这个方程有整数解吗?有:a,b,c=6,8,30 就是一组解。

你能算出另一组合适的解吗?请填写该解中最小的数字。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

10#include<stdio.h>int main(){int a,b,c;for(a=1;a*a<=1000;a++){for(b=1;b*b<=1000;b++){for(c=1;c*c<=1000;c++){if(a*a+b*b+c*c==1000){printf("%d %d %d\n",a,b,c);}}}}return 0;}2.星系炸弹在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。

每个炸弹都可以设定多少天之后爆炸。

比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。

有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。

请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。

比如:2015-02-19 请严格按照格式书写。

不能出现其它文字或符号。

2017-08-05#include <stdio.h>int main(){int monthDays[12]={31,28,31,30,31,30,31,31,30,31,30,31};int days=1000;int year=2014, month=11, day=9;int i;for(i=0;i<days;i++){day++;if(day>monthDays[month-1]){day=1;month++;if(month>12){month=1;year++;if((year%400==0) ||(year%4==0 && year%100!=0))monthDays[1]=29;elsemonthDays[1]=28;}}}printf("%d-%d-%d\n",year,month,day);getchar();return 0;}3.奇妙的数字小明发现了一个奇妙的数字。

程序设计竞赛试题和题解

程序设计竞赛试题和题解

程序设计竞赛试题和题解付浩fuch@Contents完全平方数 (2)拉丁方阵 (3)取石子游戏 (5)乡村医院 (7)未知星球 (9)无聊的游戏 (10)最短路径 (12)完全平方数描述一个非负整数n是完全平方数当且仅当存在非负整数m,使得n=m2据说完全平方数具有某种神奇的力量,谁知道呢。

聪明的你一定想到了,这道题的任务就是编写一个程序,判断给定的n是否是完全平方数。

输入格式输入包含多组数据。

每组数据占一行,包含一个非负整数n,n不超过109输入以n=-1结束输出格式对每组输入数据输出一行,如果n是完全平方数则输出”Yes”,否则输出”No”输入样例1234-1输出样例YesYesNoNoYes解答一般的语言都有开平方运算吧?拉丁方阵描述拉丁方阵是一种n×n的方阵,方阵中恰有n种不同的元素,每种元素恰有n个,并且每种元素在一行和一列中恰好出现一次。

著名数学家和物理学家欧拉使用拉丁字母来作为拉丁方阵里元素的符号,拉丁方阵因此而得名。

例如下图是一个3×3的拉丁方阵:如果一个拉丁方阵的第一行和第一列按照元素的先后顺序来排列,那么这称为拉丁方阵的标准型,例如下图就是一个3x3的拉丁方阵标准型,第一行和第一列都是”1 2 3”。

你的任务是,编写一个程序读入一个方阵,判断其是否为拉丁方阵;进一步地,判断是否为标准型。

输入格式输入包含多组数据。

每组数据第一行为正整数n,表示方阵的大小。

其后n行,每行有n个1到n之间的整数,整数之间恰有一个空格,表示方阵的内容。

输入保证1≤n≤100输入以n=0结束,不要处理这个数据。

输出格式每组数据对应于一行输出。

如果输入是拉丁方阵,但不是标准型则输出1;如果输入是标准型则输出2;如果输入不是拉丁方阵则输出0输入样例21 12 233 2 12 1 31 3 231 2 33 2 12 1 254 35 2 15 4 1 3 21 52 4 32 13 5 43 24 15 31 2 32 3 13 1 2输出样例112解答按定义做判断。

【职业技能大赛计算机程序设计员赛项】理论试题及参考答案

【职业技能大赛计算机程序设计员赛项】理论试题及参考答案

【职业技能大赛计算机程序设计员赛项】理论试卷注 意 事 项1、本试卷依据计算机程序设计员国家职业标准命制,考试时间:60分钟。

2、请在试卷标封处填写姓名、准考证号和所在单位的名称。

3、请仔细阅读答题要求,用碳素笔或钢笔在规定位置填写答案。

一、单项选择(第1题~第60题,每题1分,共60分。

)1.操作系统是对( )进行管理的软件。

A 、软件B 、硬件C 、计算机资源D 、应用程序 2.现代操作系统的两个基本特征是( )和资源共享。

A 、多道程序设计B 、实现分时与实时处理C 、程序的并发执行D 、中断处理3.计算机系统中用来连接CPU 、内存储器和I/O 接口的总线称为系统总线。

( )总线属于系统总线技术的一种。

A 、IEEE1394B 、PCIC 、RS-232D 、USB 4.下列不属于网络操作系统的是( )。

A 、Windows NTB 、DOSC 、LinuxD 、NetWare 5.下面哪一个是有效的IP 地址( )。

A 、202.280.130.45B 、192.202.130.45C 、280.192.33.45D 、130.192.290.45 6.在Word 中,如果要选择多处不连续的文本,可以( )。

A 、按住Shift 键不放,用鼠标分别选中欲选择的文本 B 、按住Alt 键不放,用鼠标分别选中欲选择的文本 C 、按住Ctrl 键不放,用鼠标分别选中欲选择的文本 D 、无法做到7.在Excel 工作表中,假定C3:C6区域内保存的数值依次为10、15、20、45,则函数=AVERAGE(C3:C6)的值为( )。

A 、22B 、22.5C 、45D 、90 8.在一棵具有n 个结点的完全二叉树中,分枝结点的最大编号为( )。

A 、((n+1)/2)上限取整B 、((n+1)/2)下限取整C 、(n/2)下限取整D 、((n-1)/2)上限取整 9.设某棵三叉树中有40个结点,则该三叉树的最小高度为( )。

第八届程序设计大赛初赛试题及答案

第八届程序设计大赛初赛试题及答案

第八届程序设计大赛初赛试题说明:请将所有答案写到试卷第1页及第2页。

一、读程序写结果(40分)1、(5分)2、(5分)3、(10分)结果:结果:结果:4、(10分)5、(5分)6、(5分)结果:结果:结果:二、代码填空(30分)1、(5分)2、(5分)空一:____acm / lg (5分)空一:if(begin>end) return (5分)3、(12分)4、(8分)空一:siruan /= 10 (3分)空一:s[i] - '0' (4分)空二:hm - lg (3分)空二:siruan[sum % 11] (4分)空三:lghm = acm(lghm) (6分)三、思维题(15分)数据1:T1=1,T2=2,T3=3,T4 = 4 数据2:T1=1,T2=2,T3=5,T4 = 10 答案:(acm)1 2->(siruan) 2min 答案:(acm)1 2->(siruan) 2min (acm) <-1 (siruan) 1min (acm) <-1 (siruan) 1min(acm) 1 3->(siruan) 3min (acm) 5 10->(siruan) 10min(acm) <-1 (siruan) 1min (acm) <-2 (siruan) 2min(acm) 1 4-> (siruan) 4min (acm) 1 2-> (siruan) 2min最短时间:2+1+3+1+4 = 11min 最短时间:2+1+10+2+2 = 17min数据3:T1 = 5,T2 = 2,T3=1,T4=10,T5=8 答案:(acm)1 2->(siruan) 2min(acm) <-1 (siruan) 1min(acm) 8 10->(siruan) 10min(acm) <-2 (siruan) 2min(acm) 1 2-> (siruan) 2min(acm) <-1 (siruan) 1min(acm) 1 5 ->(siruan) 5min最短时间:2+1+10+2+2+1+5 = 23min四、编程题(15分)程序代码:#include<stdio.h>#include<string.h>int s[110];int main(){int i;int a, n, m;while (scanf("%d%d", &a, &n)!=EOF){memset(s, 0x00, sizeof(s));m = n;for (i=0; i<m; i++){s[i] += a * (n--);s[i+1] = s[i] / 10;s[i] %= 10;}if (s[m]) printf("%d", s[i]);for (i=m-1; i>=0; i--)printf("%d", s[i]);printf("\n");}return 0;}一、读程序写结果(40分)1、(5分)#include <stdio.h>int main(){char acm[] = "I love acm!";char siruan[] = "I love siruan!";char def[] = "Welcome to join us!";int chose = 0;switch (chose){case 0: printf("%s\n", acm);case 1: printf("%s\n", siruan);default : printf("%s", def);}return 0;}输出结果:2.(5分)#include <stdio.h>int main(){int acm = 0, siruan = 1;if (acm = siruan) printf("%s", "May you success!");else printf("%s", "May you success,too!");return 0;}输出结果:3.(10分)#include <stdio.h>#include <math.h>int main(){int i,j,k,n;char lghm[14]="ILOVEACMSIRUAN";n = 3;for (i=0; i<n-1; i++) printf(" ");printf("%c\n",lghm[0]);for (i=1; i<n; i++){for (j=abs(n-i-1); j>0; j--) //abs(n)返回值为整形n的绝对值printf(" ");printf("%c",lghm[2*i-1]);for (k=1; k<=2*i-1; k++) printf(" ");printf("%c\n",lghm[2*i]);}for (i=n; i<=2*n-3; i++){for (j=abs(n-i-1); j>0; j--) printf(" ");printf("%c",lghm[2*i-1]);for (k=1; k<=4*n-5-2*i; k++) printf(" ");printf("%c\n",lghm[2*i]);}for (i=0; i<n-1; i++) printf(" ");printf("%c\n",lghm[4*n-5]);return 0;}输出结果:4.(10分)#include <stdio.h>#include <string.h>struct Student{char name[20];int num;} stu[5];{stu[0].num = 521; strcpy(stu[0].name, "sichuan wenchuan");stu[1].num = 521; strcpy(stu[1].name, "bless");stu[2].num = 420; strcpy(stu[2].name, "sichuan yaan");stu[3].num = 420; strcpy(stu[3].name, "love");stu[4].num = 420; strcpy(stu[4].name, "god");}void swap(int a, int b){struct Student tmp;tmp.num = stu[a].num;stu[a].num = stu[b].num;stu[b].num = tmp.num;strcpy(, stu[a].name);strcpy(stu[a].name, stu[b].name);strcpy(stu[b].name, );}void bubble_sort(int n){int i,j,flag,temp;for(i = 0; i < n-1; i++){flag = 1;for(j = 0; j < n-i-1; j++){if(stu[j].num > stu[j+1].num){swap(j, j+1);flag = 0;}else if (stu[j].num == stu[j+1].num && strcmp(stu[j].name,stu[j+1].name)<0){ swap(j, j+1);}}if(flag) break;}}int main(){init();bubble_sort(5);for (i=0; i<5; i++)printf("%-4d%s\n", stu[i].num, stu[i].name);return 0;}输出结果:6.(5分)#include <stdio.h>int acm(){int lg = 1314520;int hm = 0;while(lg > 0){hm = hm * 10 + lg % 10;lg /= 10;}return hm;}int main(){int siruan = acm();printf("%d", siruan);return 0;}输出结果:二、代码填空(30分)1.(5)如果没有计算器,我们如何求3的平方根?可以先猜测一个数,比如1.5,然后用3除以这个数字。

程序设计题库及答案详解

程序设计题库及答案详解

程序设计题库及答案详解一、选择题1. 下列哪个选项不是面向对象编程的三大特性?A. 封装B. 继承C. 多态D. 过程化答案:D2. 在Java中,以下哪个关键字用于定义类?A. classB. interfaceC. enumD. struct答案:A3. 以下哪个是Python中的循环结构?A. forB. whileC. both A and BD. none of the above答案:C二、填空题1. 程序设计中的________是用来定义数据的属性和方法的集合。

2. 在C语言中,________关键字用于声明一个函数。

答案:void 或者 int(根据函数返回类型而定)3. 在JavaScript中,________方法用于将字符串转换为数字。

答案:parseInt 或 parseFloat(根据转换类型而定)三、简答题1. 请简述什么是递归函数,并给出一个简单的递归函数示例。

答案:递归函数是指在函数内部调用自身的函数。

递归函数通常用于解决可以分解为相同问题的子问题的问题。

以下是一个计算阶乘的递归函数示例:```cint factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}```2. 解释什么是堆栈,并说明它们在程序设计中的应用。

答案:堆栈是两种不同的数据结构。

堆是一种优先队列,其中最大或最小元素可以在对数时间内被找到。

栈是一种遵循后进先出(LIFO)原则的数据结构。

在程序设计中,堆栈广泛应用于内存管理、函数调用、表达式求值、回溯算法等领域。

四、编程题1. 编写一个函数,实现字符串的反转。

```pythondef reverse_string(s):return s[::-1]```2. 给定一个整数数组nums,请找出数组中最长递增子序列的长度。

答案:```pythondef lengthOfLIS(nums):if not nums: return 0dp = [1] * len(nums)for i in range(1, len(nums)):for j in range(i):if nums[i] > nums[j]:dp[i] = max(dp[i], dp[j] + 1)return max(dp)```五、案例分析题1. 描述一个场景,其中使用多线程可以提高程序的效率,并解释为什么。

VisualBasic程序设计》试题及其答案

VisualBasic程序设计》试题及其答案

一、填空题(每题1分,共10分)1.把数学式子:ο25sin 21π+写成VB 的数值表达式为( Sqr(1+3.14159/2*Sin(25*3.14159/180)) )。

2.设A=5,B=6,C=7,D=8,表达式3>2*B OR A=C AND B<>C OR C>D 的值是( True )。

3.若Case 子句中的表达式表列具有形式:<表达式1> To <表达式2>,则它的含义是:当测试表达式的值等于( 指定范围内的值 )时,执行该Case 子句相应的语句块。

4.执行下面的程序段后,x 的值为( 12 )。

x=0For i=1 To 8 Step 3x=x+iNext i5.在图片框上放置的控件称为图片框的( 子 )对象,而窗体是图片框的( 父 )对象。

6.将命令按钮Command1的Caption 属性值赋给文本框Text1的Text 属性使用的语句为( Text1.Text=Command1.Caption )7.复选框的Value 属性为( 1 )时,表示复选框被选中。

8. 使用滚动条可以获取某一范围内的数值输入。

为使垂直滚动条的Value 属性值从下往上递增变化,应设置滚动条Min 属性值大于( Max )属性值。

9.语句:Dim A(-3 to 4) as Integer 定义的一维数组A 的元素个数是( 8 )。

10.给定如下子过程:Function fun(ByVal num As Long) As LongDim k As Long,i As Integerk=1For i=1 To numk=k*iNext iEnd Function执行语句Print fun(5) 后在窗体上显示的结果为(0)。

二、单项选择题(每题1.5分,共30分)1.装载窗体是窗体的( C )。

A) 对象 B) 属性 C) 事件 D) 方法2.设a="Visual Basic",下面使b的值为"Basic"的赋值语句正确的是( B )。

百度之星Astar2012程序设计大赛初赛试题及参考答案

百度之星Astar2012程序设计大赛初赛试题及参考答案

百度之星Astar2021程序设计大赛初赛试题〔第一场〕————及B题答案比赛说明百度之星初赛:2021年6月2日、6月3日10:00Am~12:00Pm本次大赛的初赛的初赛采取在线答题、编译,离线判题的形式,选手报名后,可以在6月2日、6月3日任选一天参加比赛,也可选择两场都参加。

针对每题,交题后,系统将给出程序编译是否正确的结果,但不会给出程序是否通过全部测试数据的评价;当场比赛完毕后,所有选手的针对每题所写的程序将被离线评判,每题根据程序通过测试数据的数目计算得分。

每场初赛根据单场所有题目总分计算成绩,选出当场成绩在前400名的选手进入复赛〔第一场已经进入复赛的选手参加第二场比赛如果再次晋级,将被不在第二场参与排名〕。

2021年6月2日,2021百度之星Astar2021程序设计大赛初赛翻开大幕。

这里提供了初赛第一场的题目,供有未进初赛和其它有兴趣的朋友研究。

初赛第一场共4题。

分别是度度熊就是要第一个出场、小小度刷礼品、集合的交与并、轮子上的度度熊。

目录比赛说明······················· 1·A:度度熊就是要第一个出场·············· 2·B:小小度刷礼品··················· 5·C:集合的交与并····················6·D:轮子上的度度熊···················6·A:度度熊就是要第一个出场题目描述Baidu年会安排了一场时装秀节目。

《Visual_Basic程序设计》试题及其答案

《Visual_Basic程序设计》试题及其答案

《Visual_Basic程序设计》试题及其答案Visual_Basic程序设计试题及其答案Visual_Basic程序设计是一门与Windows操作系统密切相关的编程语言,广泛应用于图形用户界面(GUI)的开发。

下面是一套Visual_Basic程序设计的试题,以及详细的答案解析。

一、概念题(共10题,每题2分,共20分)1. 什么是Visual_Basic程序设计?答案:Visual_Basic程序设计是一种基于BASIC语言的集成开发环境(IDE),用于Windows平台的程序开发和编程。

2. Visual_Basic程序设计的特点是什么?答案:Visual_Basic具有简单易学、图形化编程界面、可视化设计、事件驱动等特点。

3. 什么是控件?答案:控件是Visual_Basic程序设计中用于构建用户界面的基本元素,如按钮、文本框、标签等。

4. Visual_Basic程序中的数据类型有哪些?答案:Visual_Basic支持多种数据类型,包括整数、浮点数、字符串、布尔值等。

5. 什么是条件结构?答案:条件结构是一种根据不同条件执行不同操作的程序结构,如If语句和Select Case语句。

6. 什么是循环结构?答案:循环结构是一种重复执行特定操作的程序结构,如For循环和While循环。

7. 什么是函数?答案:函数是一段可重复调用的代码,通常用于实现特定功能,并可以返回结果。

8. 如何定义和调用函数?答案:在Visual_Basic中,可以使用Function关键字定义函数,并使用函数名调用函数。

9. 什么是异常处理?答案:异常处理是一种处理程序运行过程中可能出现的错误或异常情况的机制,以保证程序的稳定性。

10. Visual_Basic程序如何进行调试?答案:Visual_Basic提供了丰富的调试工具,包括断点调试、单步调试等,以帮助程序员发现和解决问题。

二、编程题(共2题,每题40分,共80分)题目一:设计一个Visual_Basic程序,实现计算器的基本功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

试题1、数学黑洞(程序文件名maths.c/maths.cpp)【问题描述】任给一个4位正整数,其各位数位上的数字不全相同,将数字重新组合成一个最大的数与最小的数相减,重复这个过程,最多7步,必得6174。

对任给的4位正整数(各位数位上的数字不全相同),编程输出掉进黑洞的步数。

【输入】一行,一个4位正整数n(1000< n<9999)【输出】掉进黑洞的步数输入1234输出32、进制转换(程序文件名conver.c/conver.cpp)【问题描述】任给一个十进制整数n,及正整数m(m<=16且m≠10), 将n转换成m进制并输出。

【输入】一行,两个整数n,m(0 ≤ n ≤ 500000,2 ≤ m ≤ 16,且m≠10),中间用一个空格隔开,其中n 表示十进制数。

【输出】转换后的数【输入输出样例】输入255 8输出3773、分数线划定(程序文件名score.c/score.cpp)【问题描述】公务员选拔工作正在 A 市如火如荼的进行。

为了选拔优秀人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。

面试分数线根据计划录取人数的150%划定,即如果计划录取m名公务员,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。

现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。

【输入】第一行,两个整数n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n),中间用一个空格隔开,其中n 表示报名参加笔试的选手总数,m 表示计划录取的人数。

输入数据保证m*150%向下取整后小于等于n。

第二行到第 n+1 行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号k(1000 ≤ k ≤ 9999)和该选手的笔试成绩s(1 ≤ s ≤ 100)。

数据保证选手的报名号各不相同。

【输出】第一行,有两个整数,用一个空格隔开,第一个整数表示面试分数线;第二个整数为进入面试的选手的实际人数。

从第二行开始,每行包含两个整数,中间用一个空格隔开,分别表示进入面试的选手的报名号和笔试成绩,按照笔试成绩从高到低输出,如果成绩相同,则按报名号由小到大的顺序输出。

【输入输出样例】输入6 31000 903239 882390 957231 841005 951001 88输出88 51005 952390 951000 901001 883239 88【样例说明】m*150% = 3*150% = 4.5,向下取整后为4。

保证4 个人进入面试的分数线为88,但因为88有重分,所以所有成绩大于等于88 的选手都可以进入面试,故最终有5 个人进入面试。

4、生日礼物(gift.c/gift.cpp)【问题描述】小新今天过生日,他妈妈带他到一家购物中心,他妈妈告诉他他今天可以在这家商店选购3件礼物,但这3件礼物必须满足条件:后面礼物的价格不得高于前面礼物的价格,如有5件商品价格分别是12,11,8,9,10,则小新挑选礼物方案只能是(12,11,8)、(12,11,9)、(12,11,10)这三种方案中的一种,小新对挑选礼物的方案很感兴趣,请编程计算挑选礼物的方案数。

【输入】第一行,一个整数n(n≤1000),表示待选商品的总数。

第二行n个整数,用空格隔开,分别表示每件商品的价格(每件商品的价格≤10000)。

【输出】共一行,包含1 个整数,表示挑选礼物的方案数。

【输入输出样例】输入512 11 8 9 10输出35、资金预算(budget.c/budget.cpp)【问题描述】小新的亲戚开了一家建材批发部,近来由于价格不稳定,故需要制定按月执行的仓储计划,该批发部有n个供货月份,每个月仓储预算、商品价格预算、客户需求量分别为Pi,Si,Di,,每月客户需求必须得到保证。

当然,也可以在价格适当时进行囤货,即用仓库所储备的商品供货。

若存货不足,就要购买商品供货,如某月要购货,则该月要加上一笔购货预算资金Ri。

例如,有2个预算月份,P1,S1,D1,R1分别为0,10,100,10;P2,S2,D2,R2分别为0,100,100,10;则方案1:第一个月买够D1的货,第二个月买够D2的货,预算等于(D1×S1+R1)+(D2×S2+R2)=(100×10+10)+(100×100+10)=11020。

方案2:第一个月买够2个月的商品,第二个月不用买货,可用囤积的商品供货,但需要支付第一个月的仓储费,预算等于((D1+D2)×S1+R1)+(P1×D2)=((100+100)×10)+(0×100)=2010。

显然方案2优于方案1。

人工进行这样的预算费时费力,请你编程帮小新亲戚安排预算从而实现利润的最大化。

【输入】输入文件第一行是整数n(1≤ n ≤20),表示有n个月份;接着有n行,每行4个数据,分别表示 Pi,Si,Di,Ri,即仓储费用,商品价格预算,客户需求量及购货预算。

其中1≤ i ≤n,0≤Pi,Si,Ri≤100000; ,∑Di≤500。

【输出】仅1行,数据是最小总预算。

样例1:【输入1】20 10 100 100 100 100 10【输出1】2010样例2:【输入2】2100 10 100 100 100 100 10【输出2】110206、热带鱼(fish.c/fish.cpp)【问题描述】一个晴朗的星期天,小新在商场看见美丽的热带鱼,五彩斑斓的热带鱼在碧绿的水草映照下格外绚丽夺目,大大小小的鱼儿有的慢悠悠的散着步,有的疾驰如闪电,小新不禁被美丽的鱼儿所吸引,他非常想将这些美丽的小精灵们全买回家,但鱼儿的种类太多了,所以小新决定每种鱼最多只买1条,由于鱼儿间会相互争斗蚕食,故有些鱼儿是不能同时买回家的,小新想买尽可能多的鱼,但他身上的钱有限,只能在资金许可的范围内买鱼,怎么办?请你设计一个最佳方案,在资金许可的范围选择花费资金最多的一种买鱼方案。

程序运行时间10s内。

【输入】文件的第一行为两个正整数m(m≤1000)与n(n≤30),分别表示资金与鱼的种类;以下行,每行2个正整数,分别表示某种鱼的编号(编号≤30)及价格(价格≤10000);接着,每行2个正整数p与q ,表示编号p与编号q 的鱼不能共处,当p、q均等于0时,表示输入文件结束。

【输出】输出文件为2行,分别为2个正整数,第一行整数表示所买鱼的条数,第二行整数表示所花费的资金。

样例1:【输入1】15 31 302 393 181 30 0【输出1】样例2:【输入2】180 66 805 604 403 302 501 201 43 55 60 0【输出2】41807、电脑游戏(game.c/game.cpp)【问题描述】小新正在玩一个简单的电脑游戏。

游戏中有一条环形马路,马路上有n 个机器人工厂,两个相邻机器人工厂之间由一小段马路连接。

小新以某个机器人工厂为起点,按顺时针顺序依次将这n 个机器人工厂编号为1~n,因为马路是环形的,所以第n 个机器人工厂和第1 个机器人工厂是由一段马路连接在一起的。

小新将连接机器人工厂的这n 段马路也编号为1~n,并规定第i 段马路连接第i 个机器人工厂和第i+1 个机器人工厂(1 ≤ i ≤ n-1),第n 段马路连接第n 个机器人工厂和第1个机器人工厂。

游戏过程中,每个单位时间内,每段马路上都会出现一些金币,金币的数量会随着时间发生变化,即不同单位时间内同一段马路上出现的金币数量可能是不同的。

小新需要机器人的帮助才能收集到马路上的金币。

所需的机器人必须在机器人工厂用一些金币来购买,机器人一旦被购买,便会沿着环形马路按顺时针方向一直行走,在每个单位时间内行走一次,即从当前所在的机器人工厂到达相邻的下一个机器人工厂,并将经过的马路上的所有金币收集给小新,例如,小新在i(1 ≤ i ≤ n)号机器人工厂购买了一个机器人,这个机器人会从i 号机器人工厂开始,顺时针在马路上行走,第一次行走会经过i 号马路,到达i+1 号机器人工厂(如果i=n,机器人会到达第1 个机器人工厂),并将i 号马路上的所有金币收集给小新。

游戏中,环形马路上不能同时存在2 个或者2 个以上的机器人,并且每个机器人最多能够在环形马路上行走p 次。

小新购买机器人的同时,需要给这个机器人设定行走次数,行走次数可以为1~p 之间的任意整数。

当马路上的机器人行走完规定的次数之后会自动消失,小新必须立刻在任意一个机器人工厂中购买一个新的机器人,并给新的机器人设定新的行走次数。

以下是游戏的一些补充说明:1. 游戏从小新第一次购买机器人开始计时。

2. 购买机器人和设定机器人的行走次数是瞬间完成的,不需要花费时间。

3. 购买机器人和机器人行走是两个独立的过程,机器人行走时不能购买机器人,购买完机器人并且设定机器人行走次数之后机器人才能行走。

4. 在同一个机器人工厂购买机器人的花费是相同的,但是在不同机器人工厂购买机器人的花费不一定相同。

5. 购买机器人花费的金币,在游戏结束时再从小新收集的金币中扣除,所以在游戏过程中小新不用担心因金币不足,无法购买机器人而导致游戏无法进行。

也因为如此,游戏结束后,收集的金币数量可能为负。

现在已知每段马路上每个单位时间内出现的金币数量和在每个机器人工厂购买机器人需要的花费,请你告诉小新,经过m 个单位时间后,扣除购买机器人的花费,小新最多能收集到多少金币。

【输入】第一行 3 个正整数,n,m,p,意义如题目所述。

接下来的 n 行,每行有m 个正整数,每两个整数之间用一个空格隔开,其中第i 行描述了i 号马路上每个单位时间内出现的金币数量(1 ≤金币数量≤ 100),即第i 行的第j(1 ≤ j ≤m)个数表示第j 个单位时间内i 号马路上出现的金币数量。

最后一行,有 n 个整数,每两个整数之间用一个空格隔开,其中第i 个数表示在i 号机器人工厂购买机器人需要花费的金币数量(1 ≤金币数量≤ 100)。

【输出】共一行,包含1 个整数,表示在m 个单位时间内,扣除购买机器人花费的金币之后,小新最多能收集到多少金币。

【输入样例】2 3 21 2 32 3 41 2【输出样例】5【数据范围】对于 40%的数据,2 ≤ n ≤ 40,1 ≤m≤ 40。

对于 90%的数据,2 ≤ n ≤ 200,1 ≤m≤ 200。

对于 100%的数据,2 ≤ n ≤ 1000,1 ≤m≤ 1000,1 ≤ p ≤m。

7、电脑游戏(game.c/game.cpp)【问题描述】小新正在玩一个简单的电脑游戏。

相关文档
最新文档