蓝桥杯算法提高训练之师座操作系统
- 格式:doc
- 大小:19.00 KB
- 文档页数:3
蓝桥杯ADV-284 算法提高GPA算法提高GPA时间限制:1.0s 内存限制:256.0MB问题描述输入A,B两人的学分获取情况,输出两人GPA之差。
输入格式输入的第一行包含一个整数n表示A的课程数,以下n行每行Si,Ci分别表示第i个课程的学分与A的表现。
GPA=Σ(Si*Ci) / Σ(Si)。
特殊地,如果Ci是'P'或者'N'(对应于通过与不通过),则第i个课程不记入GPA的计算(即当其不存在)。
A读入结束后读入B,B的输入格式与A相同。
保证2人的Σ(Si)非零输出格式输出A的GPA - B的GPA的值,保留2位小数(四舍五入)Tips:当A和B的分数相近时输出0.00。
样例输入21 102 N21 101 5样例输出2.50数据规模和约定输入的所有数字均为不超过100的非负整数#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>int main(){int n, Si, Ci;char str_Ci[5] = { 0 };double numerator, denominator, gpa_a, gpa_b;numerator = denominator = 0;scanf("%d", &n);while (n--){scanf("%d %s", &Si, str_Ci);if (strcmp(str_Ci, "P") == 0 || strcmp(str_Ci, "N") == 0) continue;else{Ci = atoi(str_Ci);numerator += Si * Ci;denominator += Si;}}gpa_a = numerator / denominator;numerator = denominator = 0;scanf("%d", &n);while (n--){scanf("%d %s", &Si, str_Ci);if (strcmp(str_Ci, "P") == 0 || strcmp(str_Ci, "N") == 0) continue;else{Ci = atoi(str_Ci);numerator += Si * Ci;denominator += Si;}}gpa_b = numerator / denominator;double diff = gpa_a - gpa_b;if (fabs(diff) < 0.01)printf("0.00");elseprintf("%.2lf", diff);return 0;}。
蓝桥杯重点总结1. 蓝桥杯概述蓝桥杯是中国最大的IT职业技能竞赛,由中国教育部主办。
赛事旨在培养和选拔优秀的计算机科学与技术人才,提高计算机科学与技术专业教学水平,推动计算机教育与产业的发展。
2. 蓝桥杯竞赛分类蓝桥杯竞赛主要分为面向高中生和大学生的两个组别,分别为蓝桥杯省赛和蓝桥杯全国赛。
蓝桥杯省赛是每年定期在各个省份举办的校内选拔赛,而蓝桥杯全国赛则是在省赛基础上选拔出的优秀选手参与的全国性比赛。
3. 竞赛科目蓝桥杯竞赛科目主要包括以下几个方向:3.1 计算机基础知识蓝桥杯竞赛对于计算机基础知识的考查较为重要。
学生需要掌握计算机的硬件组成、操作系统、网络原理、数据库基础等。
在竞赛中,会有相关的选择题和简答题考查学生对于计算机基础知识的掌握程度。
3.2 编程语言在蓝桥杯竞赛中,编程语言是非常重要的一个环节。
主要包括C/C++、Java、Python等编程语言。
学生需要熟悉编程语言的基本语法、常用数据结构和算法,并能够用编程语言解决实际问题。
3.3 算法与数据结构算法与数据结构是蓝桥杯竞赛中的重点。
学生需要熟练掌握常见的数据结构,如数组、链表、栈、队列、树等,以及经典的算法,如排序、查找、图算法等。
在竞赛中,通常会出现一些与算法和数据结构有关的编程题目。
3.4 竞赛题目解析在蓝桥杯竞赛中,学生需要解答一些与实际问题相关的编程题目。
这些题目通常涉及到实际生活中的问题,如数学问题、计算机网络问题、数据库问题等。
学生需要运用自己的编程能力和知识储备来解决这些问题。
4. 蓝桥杯竞赛的重要性蓝桥杯竞赛对于提高学生的综合素质和编程能力具有重要意义。
通过参加蓝桥杯竞赛,学生可以提高自己的解决问题的能力和创新能力,培养自己的团队合作意识和沟通能力,扩宽自己的技术视野和知识面。
此外,蓝桥杯竞赛也为学生提供了一个展示自己的平台。
优秀的蓝桥杯选手可以获得奖金、证书和荣誉,还有机会获得国内外著名高校的奖学金、实习名额或就业机会。
2020CCF非专业级别软件能力认证第一轮(CSP-S)提高级C++语言试题认证时间:2020年10月11日09:30~11:30分数组成:单项选择题15题共:30分一、单项选择题1.请选出以下最大的数()A.(550)10B.(777)8 C.210 D.(22F)16解析:答案C A=550B=7*8^2+7*8^1+7*8^0=551C=1024,D=2*16^2+2*16^1+15=5592.操作系统的功能是()。
A.负责外设与主机之间的信息交换B.控制和管理计算机系统的各种硬件和软件资源的使用C.负责诊断机器的故障D.将源程序编译成目标程序解析:答案B操作系统是计算机系统的关键组成部分,负责管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本任务。
3.现有一段8分钟的视频文件,它的播放速度是每秒24帧图像,每帧图像是一幅分辨率为2048×1024像素的32位真彩色图像。
请问要存储这段原始无压缩视频,需要多大的存储空间?()。
A.30GB.90GC.150GD.450G解析:信息存储单位答案B字节(Byte)=8bit(位)32/8=4一个像素是32位真彩色,也就一个像素占4个字节1M=1024*1024B1G=1024*1024*1024B8分钟=8*60秒8*60*24*4*2048*1024/(1024*1024*1024)=90G4.今有一空栈S,对下列待进栈的数据元素序列a,b,c,d,e,f依次进行:进栈,进栈,出栈,进栈,进栈,出栈的操作,则此操作完成后,栈底元素为()。
A.bB.aC.dD.c解析:答案B只要按照进栈出栈顺序模拟一下即可5.将(2,7,10,18)分别存储到某个地址区间为0~10的哈希表中,如果哈希函数h(x)=(),将不会产生冲突,其中a mod b表示a除以b的余数。
A.x²mod11B.2x mod11C.x mod11D.[x/2]mod11,其中[x/2]表示x/2下取整问题解析:答案DA:x²mod112->47->510->118->5会产生冲突B:2x mod112->47->310->918->3会有冲突C:x mod112->27->410->1018->7会有冲突D:[x/2]mod112->17->310->518->7没有冲突6.下列哪些问题不能用贪心法精确求解?()A.霍夫曼编码问题B.0-1背包问题C.最小生成树问题D.单源最短路径问题解析:答案B贪心策略也可以求解完全背包,但不能求解0-1背包问题7.具有n个顶点,e条边的图采用邻接表存储结构,进行深度优先遍历运算的时间复杂度为()。
蓝桥杯练习-各⼤OJ平台介绍校赛准备的不够充分,简单题失分太遗憾, 有幸参加到省赛,这次先码⼀下练习平台,等学期结束忙完之后好好练习!1.题库与⽹站资源题库-在线提交系统(Online Judge)简介下⾯是⼏个⽐较⼤的在线提交系统(OnlineJudge)⾥⾯有⼤量历年的竞赛题⽬,注册⼀个ID,然后⽤⾃⼰熟悉的语⾔(⼀般有Pascal/C/C++/Java)写好源代码提交即可,会实时返回信息告诉你是否正确。
采⽤⿊箱测试,系统⾥有⼀套标准的输⼊输出数据(对外保密,⽽且通常数据很多很怪),你的程序的输出和标准输出完全符合即可。
常见的返回信息有 AC(Accepted,通过)、WA(Wrong Answer,输出有错误)、TLE(Time LimitExceeded,超时)、MLE(Memory Limit Exceeded,内存溢出)、RE(RuntimeError,发⽣实时错误)等,只有AC了才算做对⼀题。
这⾥只是⼀个简要介绍,请⼤家在做题时先看看各⽹站上的FAQ,Enjoy it这个⽹站的建成时期较晚,但随着⽐赛的举⾏以及新题⽬的加⼊,这个题库的题⽬也⽇渐丰富。
这个题库的⼀⼤特点就是 OnlineJudge功能强⼤,它不仅使你避开了多数据处理的繁琐操作,还能告诉你程序错在了第⼏个数据。
这⼀点虽然与ACM的Judge有些出⼊,但是却⽅便了调试程序。
与UVA相⽐,这⾥的题⽬在时间空间上要求都⽐较严格,⽽且更多的考察选⼿对算法的掌握情况,所以特别推荐冲击NOI的选⼿也来做⼀做。
全美计算机奥林匹克竞赛(USACO)的训练⽹站,特点是做完⼀关才能继续往下做,与前⾯的OJ不同的是测试数据可以看到,并且做对后可以看标准解答,所以如果⼤家刚开始的时候在上⾯那些OJ上总WA却找不到原因的话,可以试着来这⾥做做,看看测试数据⼀般是从什么地⽅阴你的。
⽹站资源:注意:还有⼀种⾮常重要的⽹站资源―――⽤百度搜索你在oj上不懂的题⽬(例如:pku 1015),就可以看到了。
蓝桥杯国赛知识点一、知识概述《蓝桥杯国赛知识点》①基本定义:蓝桥杯国赛知识点涵盖很广,像算法啊,数据结构之类的内容。
算法就是为解决一个特定问题而采取的确定的、有限的步骤,打个比方就像要从你家到超市,你可以选择不同的路线方案,这就是算法。
数据结构就是数据在计算机中的存储和组织方式,好比你整理衣柜,不同类型的衣服有不同的摆放方式,这就是一种数据结构。
②重要程度:在计算机学科中那是相当重要的。
如果说计算机科学是一个大城堡,那这些知识点就是城堡的基石,很多程序的设计、优化都离不开。
③前置知识:得先掌握编程语言的基本语法,比如循环、判断这些结构怎么写,就像你要先学会写字才能写作文呢。
还有基本的数学知识,像是简单的计算、逻辑思维等。
④应用价值:实际应用场景超多的。
拿开发软件举例,软件里数据存储就得靠合理的数据结构,功能的实现往往需要用到各种算法。
二、知识体系①知识图谱:它就像一棵大树中的很多重要分叉一样,处于计算机编程能力这个大枝干的高端前段部分,与许多基础知识紧密相连。
②关联知识:和程序设计思想、计算复杂度分析这些知识点关系密切。
算法需要借助程序来体现,而衡量算法好坏的计算复杂度也离不开算法相关知识。
③重难点分析:掌握难度呢,对初学者来说有点高。
关键点在于理解算法和数据结构的原理,像递归算法,自身调用自身的概念就很绕。
④考点分析:在考试中占比很大。
考查方式有直接让写代码实现一个算法的,也有分析算法性能之类的。
三、详细讲解【理论概念类- 以算法中的贪心算法为例】①概念辨析:贪心算法就是在每一步选择中都采取当前状态下的最好或者最优决策,就像爬山的时候,每一步都往更高的地方迈,期望最终能登上山顶。
②特征分析:只顾眼前最优解,以此为基础逐步构建出整体最优解。
不过不是所有问题都适用。
③分类说明:比如按操作类型可以分为任务安排型、资源分配型等。
④应用范围:适用于一些可以通过局部最优解汇聚成全局最优解的场景,像活动安排问题。
国家开放大学《操作系统》形考任务1-4参考答案题目顺序随机,下载后可利用查找功能完成学习任务形考作业1一、单项选择题1.按照所起的作用和需要的运行环境,操作系统属于()。
A. 系统软件B. 应用软件C. 用户软件D. 支撑软件2.UNIX操作系统核心层的实现结构设计采用的是()。
A. 层次结构B. 网状结构C. 微内核结构D. 单块式结构3.UNIX命令的一般格式是()。
A. [参数] [选项] 命令名B. [选项] [参数] 命令名C. [命令名] [选项] [参数]D. 命令名[选项] [参数]4.操作系统的基本职能是()。
A. 提供方便的可视化编辑程序B. 提供功能强大的网络管理工具C. 提供用户界面,方便用户使用D. 控制和管理系统内各种资源,有效地组织多道程序的运行5.操作系统对缓冲区的管理属于()的功能。
A. 处理器管理B. 存储器管理C. 文件管理D. 设备管理6.操作系统内核与用户程序、应用程序之间的接口是()。
A. C语言函数B. shell命令C. 图形界面D. 系统调用7.工业过程控制系统中运行的操作系统最好是()。
A. 实时系统B. 分时系统C. 网络系统D. 分布式操作系统8.进程从运行状态变为阻塞状态的原因是()。
A. 输入或输出事件发生B. 输入或输出事件完成C. 时间片到D. 某个进程被唤醒9.进程控制块是描述进程状态和特性的数据结构,一个进程()。
A. 可以没有进程控制块B. 可以有多个进程控制块C. 可以和其他进程共用一个进程控制块D. 只能有唯一的进程控制块10.进程与程序之间有密切联系,但又是不同的概念。
二者的一个本质区别是()。
A. 程序保存在文件中,进程存放在内存中B. 程序是动态概念,进程是静态概念C. 程序顺序执行,进程并发执行D. 程序是静态概念,进程是动态概念11.两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来信息,或者建立某个条件后再向前执行,这种关系是进程间的()关系。
蓝桥杯考前突击知识点蓝桥杯是中国最具影响力的计算机竞赛之一,每年吸引着来自全国各地的青年才俊参与。
为了在考前突击阶段有针对性地复习,我们需要了解一些重要的知识点。
本文将就蓝桥杯考前突击知识点进行详细介绍。
一、编程语言蓝桥杯考试主要使用 C、C++、Java、Python 等编程语言进行编程题的解答。
对于参赛者来说,熟练掌握一门编程语言是非常重要的。
在考前突击阶段,我们可以重点复习该编程语言的基本语法和常用函数库,熟悉常见的数据类型和控制结构,并通过练习题加深对语言的理解和使用。
二、数据结构与算法数据结构与算法是蓝桥杯考试的重点,也是考生必须掌握的核心知识点。
其中,常见的数据结构包括数组、链表、栈、队列、树、图等,而常见的算法包括排序、查找、递归、动态规划等。
在考前突击阶段,我们可以重点复习各种数据结构的基本原理和操作,了解它们的特点和适用场景,掌握常见算法的思想和实现方法,并通过习题加深对数据结构与算法的理解和运用能力。
三、操作系统与计算机网络蓝桥杯考试还涉及到操作系统和计算机网络的相关知识。
操作系统是计算机的核心软件之一,我们需要了解操作系统的基本概念和功能,如进程管理、内存管理、文件管理等,并掌握常见操作系统的特点和使用方法。
计算机网络是信息交流的基础,我们需要了解计算机网络的基本概念和协议,如 TCP/IP 协议族、网络拓扑结构等,并熟悉常见网络设备的功能和配置方法。
四、数据库与SQL数据库是存储和管理数据的关键工具,我们需要了解数据库的基本概念和常见操作,如数据模型、数据库设计、表操作、查询语言等。
SQL(Structured Query Language)是数据库管理系统的标准语言,我们需要掌握SQL 的基本语法和常用函数,如SELECT、INSERT、UPDATE、DELETE 等。
五、软件工程与项目管理在蓝桥杯考试中,软件工程和项目管理是非常重要的知识点。
软件工程是一种系统化、规范化的软件开发方法,我们需要了解软件开发的各个阶段和活动,如需求分析、设计、编码、测试、维护等,并掌握常见的软件开发模型和方法。
蓝桥杯常用算法知识点蓝桥杯是全国性的计算机竞赛,其竞赛内容涉及多个领域,在算法部分尤为重要。
以下是蓝桥杯常用算法知识点及其相关要求。
1. 排序算法排序算法是计算机科学中的基本算法之一。
在蓝桥杯竞赛中,常考察的排序算法包括快速排序、归并排序、堆排序、冒泡排序和插入排序等。
参赛者需要了解这些排序算法的思路、时间复杂度和空间复杂度,并能够灵活应用于不同场景。
2. 查找算法查找算法是指在一组数据中查找指定元素的过程。
常用的查找算法包括线性查找、二分查找和哈希查找等。
在蓝桥杯竞赛中,参赛者需要了解这些算法的思路和复杂度,并能够根据场景选择合适的算法来解决问题。
3. 图论算法图是计算机科学中一个重要的研究领域,图的表示和操作是蓝桥杯竞赛中的一个重要知识点。
图论算法包括最短路径算法、最小生成树算法、拓扑排序算法、最大流算法和最小割算法等。
参赛者需要了解这些算法的思路和复杂度,并能够灵活应用于不同场景。
4. 动态规划算法动态规划是解决最优化问题的一种常用算法,该算法通常适用于具有重叠子问题和最优子结构性质的问题。
蓝桥杯竞赛中经常考察最长公共子序列、背包问题和最长上升子序列等问题。
参赛者需要了解动态规划的思路和复杂度,并能够灵活应用于不同场景。
5. 字符串算法字符算法是指解决字符串处理问题的算法,这些问题通常包括字符串匹配、字符串排序和编辑距离等。
在蓝桥杯竞赛中,参赛者需要了解常用字符串算法的思路和复杂度,并能够灵活应用于不同场景。
综上所述,蓝桥杯竞赛中的常用算法知识点包括排序算法、查找算法、图论算法、动态规划算法和字符串算法等。
参赛者需要掌握这些算法的基本思想和复杂度,并能够灵活应用于不同的问题场景。
在备战竞赛过程中,参赛者应多加练习,并注重算法思维的培养,以提高解决问题的能力和效率。
ALGO-9import java.io.*;public class Main{public static void main(String args[])throws IOException{BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));int n=Integer.parseInt(bf.readLine());System.out.println((int)(Math.pow(2,n)-n-1)*2);}}10import java.io.*;import java.util.Arrays;import java.util.HashSet;import java.util.Iterator;import java.util.Set;public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));int n = Integer.parseInt(br.readLine());int[] arr = new int[n];String st[] = br.readLine().split(" ");for (int a = 0; a < arr.length; a++) {arr[a] = Integer.parseInt(st[a]);}Arrays.sort(arr);int m = Integer.parseInt(br.readLine());int[] tag = new int[m];String str[] = br.readLine().split(" ");for (int a = 0; a < tag.length; a++) {tag[a] = Integer.parseInt(str[a]);}Arrays.sort(tag);func(arr, tag);}public static void func(int[] arr, int[] tag) {int x;for (int a = 0; a < arr.length; a++) {x = Arrays.binarySearch(tag, arr[a]);if (x >= 0) {System.out.print(arr[a] + " ");}}System.out.println();Set<Integer> set = new HashSet<Integer>();for (int a = 0; a < arr.length; a++) {set.add(arr[a]);}for (int a = 0; a < tag.length; a++) {set.add(tag[a]);}int[] sor = new int[set.size()];Iterator<Integer> it = set.iterator();while (it.hasNext()) {for (int a = 0; a < sor.length; a++) {sor[a] = it.next();}}Arrays.sort(sor);for (int a = 0; a < sor.length; a++) {System.out.print(sor[a] + " ");}System.out.println();int y;for (int a = 0; a < arr.length; a++) {y = Arrays.binarySearch(tag, arr[a]);if (y < 0) {System.out.print(arr[a] + " ");}}System.out.println();}}11import java.util.Scanner;public class Main{public static void main(String []args){Scanner input = new Scanner(System.in);int n = input.nextInt();if(1<=n && n<=10){if(n==1){System.out.println("1");}else{int []tag = new int[n];tag[0] = 1;tag[1] = 2;if(n==1){System.out.println(tag[0]);}for(int a=2;a<n;a++){tag[a] = tag[a-1] + tag[a-2];}System.out.println(tag[n-1]);}}}}12import java.io.BufferedReader;import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));int number = Integer.valueOf(br.readLine());toString(Integer.toBinaryString(number));}private static void toString(String binary) {char[] temp = binary.toCharArray();boolean control = false;for (int i = 0; i < temp.length; i++) {if (temp[i] == '1') {if (control)System.out.print("+");elsecontrol = true;System.out.print("2");int mi = temp.length - i - 1;if (mi == 0)System.out.print("(0)");else if (mi > 1) {System.out.print("(");toString(Integer.toBinaryString(mi));System.out.print(")");}}}}}13import java.io.*;import java.util.*;public class Main {public static void main(String args[]) throws IOException{BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));String s=bf.readLine();String[] ss=s.split(" ");int[] numa=new int[ss.length];int[] numb=new int[ss.length];int[] numc=new int[ss.length];for(int i=0;i<ss.length;i++){numa[i]=Integer.parseInt(ss[i]);numb[i]=1;numc[i]=1;}int a1=Integer.MIN_V ALUE;int a2=Integer.MIN_V ALUE;for(int i=0;i<numa.length;i++){for(int j=0;j<i;j++){if(numa[i]<numa[j]&&numb[i]<numb[j]+1){numb[i]=numb[j]+1;}a1=Math.max(a1, numb[i]);}}for(int i=0;i<numa.length;i++){for(int j=0;j<i;j++){if(numa[i]>numa[j]&&numc[i]<numc[j]+1){numc[i]=numc[j]+1;}}a2=Math.max(a2, numc[i]);}System.out.println(a1);System.out.println(a2);}}14import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main {private static int n, count;public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));n = Integer.parseInt(br.readLine());String m = br.readLine();long a = Long.parseLong(m, n);long b = Long.parseLong(new StringBuilder(m).reverse().toString(), n);if (a == b)System.out.println("STEP=" + 0);elsefunc(a, b);}private static void func(long a, long b) {count++;if (count > 30) {System.out.println("Impossible!");return;}long sum = a + b;String str = "";while (sum >= n) {long tmp = sum % n;sum /= n;if (tmp >= 10)str = (char) (55 + tmp) + str;elsestr = tmp + str;}if (sum >= 10)str = (char) (55 + sum) + str;elsestr = sum + str;String reverse = new StringBuilder(str).reverse().toString();if (!str.equals(reverse)) {a = Long.parseLong(str, n);b = Long.parseLong(reverse, n);func(a, b);} else {System.out.println("STEP=" + count);return;}}}15import java.util.Scanner;public class Main {public static void main(String[] args) {double[][] p = new double[1024][1024];Scanner sc = new Scanner(System.in);int i, j, k = 0;double d1 = sc.nextDouble();double c = sc.nextDouble();double d2 = sc.nextDouble();p[0][1] = sc.nextDouble();int n = sc.nextInt();n++;for (i = 1; i < n; i++) {p[i][0] = sc.nextDouble();p[i][1] = sc.nextDouble();}p[n++][0] = d1;double f = c * d2;for (i = 0; i < n; i++) {if (p[i + 1][0] - p[i][0] > f) {System.out.println("No Solution");return;}}double min = 0, max, d;for (i = 0; i < n - 1; i++) {d = p[i + 1][0] - p[i][0];while (d > 0) {while (p[i + 1][0] - p[k][0] - d >= f)k++;for (j = k; j <= i; j++)if (p[j][1] < p[k][1])k = j;max = f - (p[i + 1][0] - p[k][0] - d);if (max > d)max = d;d -= max;min += max / d2 * p[k][1];}}System.out.println(String.format("%.2f", min));}}16import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int N = scanner.nextInt();int R = scanner.nextInt();char[] c = "0123456789ABCDEFG".toCharArray();String s1 = N + "=";String s = "";while (N != 0) {int t = N % R;if (t < 0) {t = t - R;N = N / R + 1;} elseN = N / R;s = c[t] + s;}System.out.println(s1 + s + "(base" + R + ")");}}17import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.StreamTokenizer;public class Main {public static void main(String[] args) throws IOException {StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));st.nextToken();int N = (int) st.nval;st.nextToken();int K = (int) st.nval;st.nextToken();long M = (long) st.nval;String str = String.valueOf(M);long dp[][] = new long[K + 1][N + 1];for (int i = 1; i <= N; i++) {dp[0][i] = Long.parseLong(str.substring(0, i));}for (int i = 1; i <= K; i++) {for (int j = 1 + i; j <= N; j++) {for (int k = i; k <= N; k++) {int font = 0;for (int l = k; l < j; l++) {font = str.charAt(l) - '0' + font * 10;}if (dp[i][j] < dp[i - 1][k] * font)dp[i][j] = dp[i - 1][k] * font;}}}System.out.println(dp[K][N]);}}18import java.util.Scanner;public class Main {private static String[] a = new String[20];private static int[] b = new int[20];private static int max;private static int n;public static void main(String[] args) {Scanner scanner = new Scanner(System.in);n = scanner.nextInt();for (int i = 0; i < n; i++)a[i] = scanner.next();String string = scanner.next();f(string, string.length());System.out.println(max);}private static void f(String s, int length) {for (int i = 0; i < n; i++)if (a[i].indexOf(s) == 0 && b[i] < 2) {int length1 = s.length();int length2 = a[i].length();b[i]++;int p = 1;length = length + length2 - length1;while (p < length2) {f(a[i].substring(length2 - p, length2), length);p += 1;}length = length - length2 + length1;b[i]--;}max = length > max ? length : max;}}19import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main{static int x;static int y;static int n;public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));n = Integer.parseInt(br.readLine());int[][] tag = new int[2 * n + 1][2 * n + 1];int[][] arr = new int[n * n][2];out: for (int i = 1; ; i++) {String[] str = br.readLine().split(" ");for (int j = 0; j < 1; j++) {x = arr[i][0] = Integer.parseInt(str[0]);y = arr[i][1] = Integer.parseInt(str[1]);tag[x][y] = Integer.parseInt(str[2]);if (x == 0 && y == 0 && tag[x][y] == 0){dp(tag);break out;}}}}public static void dp(int[][] tag) {int[][] temp = new int[2 * n][2 * n];int k;for (int i = 2; i <= 2 * n; i++) {for (int t = min(i, n), j = t; j > 0; j--) {for (k = t; k > 0; k--) {temp[j][k] = max(temp[j][k], temp[j - 1][k - 1]);temp[j][k] = max(temp[j][k], temp[j - 1][k]);temp[j][k] = max(temp[j][k], temp[j][k - 1]);if (j == k)temp[j][k] += tag[j][i - j];elsetemp[j][k] += tag[j][i - j] + tag[k][i - k];}}}System.out.println(temp[n][n]);}public static int max(int a, int b) {return a > b ? a : b;}public static int min(int a, int b) {return a > b ? b : a;}}20import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while (scanner.hasNext()) {String str1 = scanner.nextLine();String str2 = scanner.nextLine();showResult(str1, str2);System.out.println();}}private static void showResult(String str1, String str2) {char chl = str2.charAt(str2.length() - 1);System.out.print(chl);int index = str1.indexOf(chl);if (index > 0) {showResult(str1.substring(0, index), str2.substring(0, index));}if (index < str1.length() - 1) {showResult(str1.substring(index + 1),str2.substring(index, str2.length() - 1));}}}21import java.io.*;import java.util.*;public class Main {private static int v[][]=new int[31][20001];public static void main (String args[])throws Exception{//Scanner sc=new Scanner(System.in);BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));//int n=sc.nextInt();//int m=sc.nextInt();int n=Integer.parseInt(bf.readLine());int m=Integer.parseInt(bf.readLine());int a[]=new int[m+1];for(int i=1;i<=m;i++)a[i]=Integer.parseInt(bf.readLine());//a[i]=sc.nextInt();for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){if(j<a[i])v[i][j]=v[i-1][j];elsev[i][j]=Math.max(v[i-1][j], v[i-1][j-a[i]]+a[i]);}}System.out.println(n-v[m][n]);}}22import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner s = new Scanner(System.in);int n = s.nextInt();int m = s.nextInt();int f[][] = new int[250][10];for (int i = 0; i <= n; i++) {f[i][1] = 1;}for (int i = 2; i <= m; i++) {for (int j = 0; j <= n - m; j++) {if (i > j) {f[j][i] = f[j][i - 1];} else {f[j][i] = f[j][i - 1] + f[j - i][i];}}}System.out.println(f[n - m][m]);}}23import java.util.Scanner;public class Main {public static void main(String args[]) {Scanner sc = new Scanner(System.in);double a = sc.nextDouble();double b = sc.nextDouble();double c = sc.nextDouble();double d = sc.nextDouble();for(double x=-100;x<=100;x+=.001) {if(Math.abs(a*x*x*x+b*x*x+c*x+d) < .01) {System.out.printf("%.2f ", x);x++;}}}}24import java.util.Scanner;public class Main{static int p;static int k;static String S;static int wordsize;static String[] Word;static int num = 0;static int maxnum = 0;static int kefenge = 0;public static void main(String[] args) {Scanner sc = new Scanner(System.in);p = sc.nextInt();k = sc.nextInt();S = "";sc.nextLine();for (int i = 0; i < p; i++) {S = S + sc.nextLine();}wordsize = sc.nextInt();Word = new String[wordsize];for (int i = 0; i < wordsize; i++) {Word[i] = sc.next();}zhaodanci(S);if(kefenge<k){num = num-(k-1);}System.out.println(num);// System.out.println(kefenge);}public static void zhaodanci(String s){boolean meizhaodao = true;for(int i = 0;i<s.length();i++){for(int j = 0;j<wordsize;j++){if(s.substring(i,s.length()).length()<Word[j].length()){continue;}if(s.substring(i,i+Word[j].length()).length()<Word[j].length()){continue;}if(s.substring(i,i+Word[j].length()).equals(Word[j])){// System.out.println(s+":"+Word[j]);num++;if(i != 0){kefenge++;}zhaodanci(s.substring(i+1,s.length()));return;}}}}}25该题暂时没有人完全正确,暂时没有该语言的参考程序。
问题描述安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序。
身份证号码为18位的数字组成,出生日期为第7到第14位输入格式第一行一个整数n,表示有n个身份证号码余下的n行,每行一个身份证号码。
输出格式按出生日期从大到小排序后的身份证号,每行一条样例输入5466272307503271156215856472207097978234804580401078365404475727700034980710351408803093165样例输出404475727700034980234804580401078365215856472207097978710351408803093165466272307503271156数据规模和约定n<=100000参考代码见下页参考代码见下页参考代码见下页#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;struct node{char s[30];int year;int mon;int day;friend bool operator < (node a,node b){a.year=(a.s[6]-'0')*1000+(a.s[7]-'0')*100+(a.s[8]-'0')*10+a.s[9]-'0';a.mon=(a.s[10]-'0')*10+a.s[11]-'0';a.day=(a.s[12]-'0')*10+a.s[13]-'0';b.year=(b.s[6]-'0')*1000+(b.s[7]-'0')*100+(b.s[8]-'0')*10+b.s[9]-'0';b.mon=(b.s[10]-'0')*10+b.s[11]-'0';b.day=(b.s[12]-'0')*10+b.s[13]-'0';if (a.year<b.year) return 0;else if (a.year>b.year) return 1;if (a.mon<b.mon) return 0;else if (a.mon>b.mon) return 1;if (a.day<b.day) return 0;else if (a.day>b.day) return 1;for (int i=0;i<18;i++){if (a.s[i]>b.s[i]) return 1;else if (a.s[i]<b.s[i]) return 0;}return 0;}};node a[100010];int main(){int n,i,j,k;scanf("%d",&n);for (i=0;i<n;i++){scanf("%s",a[i].s);}sort(a,a+n);for (i=0;i<n;i++){printf("%s\n",a[i].s);}return 0;}。
参考代码见下页
问题描述
师座这天在程序设计课上学了指针和结构体以后,觉得自己可以轻松的写出操作系统,为了打败大微软帝国,他给这个系统起了个响亮的名字“操师座系统”,你是师座手下的首席架构师,被要求写这个操作系统的文件系统部分,要求如下:这个文件系统有的所有文件都有一个独一无二的文件名,除此之外分为两类文件,一类文件是数据存储文件,它可以存储一个字符串信息,另一类文件是快捷方式,它会指向另一个文件,有可能是数据块也有可能是快捷方式。
.
这个文件系统支持3条命令:
1.创建命令:create <FileName> <FileType> <FileInfo>
这个命令的意思是,创建一个文件名为<FileName>,文件类型为<FileType>,文件信息为<FileInfo>,文件类型为0或者1,0表示数据块,1表示快捷方式,如果是数据块,那么<FileInfo>表示储存的字符串,如果这是一个快捷方式,
<FileInfo>表示指向的文件的名称,如果当前已存在名为<FileName>的文件,则更新这个文件的信息。
.
2.打开命令:open <FileName>
这个命令是打开文件名为<FileName>的文件,如果这是一个快捷方式,则会打开这个快捷方式指向的文件,直到打开一个数据块时,显示这个数据块储存的信息并换行。
.
3.退出命令:exit
得到这个命令以后,你的程序需要安全终止。
输入格式
若干条命令构成,最后一条命令必然为exit。
输出格式
输出每次使用open命令的显示结果。
样例输入
create shizuo 0 lu
create lyf 0 luoyuf
create p1 1 shizuo
open p1
create p2 1 p1
open p2
create p1 1 lyf
open p2
exit
样例输出
lu
lu
luoyuf
数据规模和约定
总命令条数不超过1000条。
保证<FileName>,<FileType>,<FileInfo>不包含空格和不合法字符,每个长度不超过20个字符。
提示
尽量让程序高效。
并不需要一开始读入所有的命令,可以读一条命令处理一条命令,就像平时操作命令行一样,可以体现一种在线操作的特点。
来源
by tff,ld
#include<iostream>
#include<cstdio>
#include<map>
#include<string>
#include<utility>
using namespace std;
map<string, pair<string,int> > m;
string cmd, fn, fi;
int ft;
int main() {
while (pare("exit") != 0) {
cin >> cmd;
if(pare("create")==0){
cin >> fn >> ft >> fi;
m[fn].first = fi;
m[fn].second = ft;
}
else if (pare("open") == 0) {
cin >> fn;
while (m[fn].second != 0)fn = m[fn].first;
cout << m[fn].first << endl;
}
}
return 0;
}。