acm竞赛2016c语言真题,C语言acm竞赛习题集锦.doc

C语言acm竞赛习题集锦.doc

杭州电子科技大学 acm 习题精选 第 1 页 共 21 页 目录 1、 数塔问题 2 2、 并查集类问题 4 3、 递推类问题 9 4、 动态规划系列 10 5、 概率类题型 13 6、 组合数学类题型 15 7、 贪心策略 16 8、 几何问题 .19 杭州电子科技大学 acm 习题精选 第 2 页 共 21 页 数塔类问题 数塔 Problem Description 在讲述 DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少已经告诉你了,这是个 DP 的题目,你能 AC 吗 输入数据首先包括一个整数 C,表示测试实例的个数,每个测试实例的第一行是一个整数 N1 include define MAX 101 int arrMAXMAX2; void res int n; int i,j; memsetarr,0,MAX*MAX*sizeofint; scanf“d“, fori0;i0;i forj0;jarri1j11 arrij1arri1j1; else arrij1arri1j11; printf“dn“,arr001; int main int num; scanf“d“, 杭州电子科技大学 acm 习题精选 第 3 页 共 21 页 whilenum res; return 0; 免费馅饼 Problem Description 都说天上不会掉馅饼,但有一天 gameboy 正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来 gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的 10 米范围内。馅饼如果掉在了地上当然就不能吃了,所以 gameboy 马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径上接。由于 gameboy平时老呆在房间里玩游戏,虽然在游戏中是个身手敏捷的高手,但在现实中运动神经特别迟钝,每秒种只有在移动不超过一米的范围内接住坠落的馅饼。现在给这条 小径如图标上坐标 为了使问题简化,假设在接下来的一段时间里,馅饼都掉落在 0-10 这 11 个位置。开始时 gameboy 站在 5这个位置,因此在第一秒,他只能接到 4,5,6 这三个位置中期中一个位置上的馅饼。问 gameboy 最多可能接到多少个馅饼(假设他的背包可以容纳无穷多个馅饼) 输入数据有多组。每组数据的第一行为以正整数 n0 include define MAX 100001 int arrMAX13; int Maxint n1,int n2,int n3 int max; maxn1n2n1n2; maxmaxn3maxn3; return max; void resint num int i,j; int n,m,count-1; memsetarr,0,MAX*13*sizeofint; 杭州电子科技大学 acm 习题精选 第 4 页 共 21 页 fori0;i0;i forj1;j include define MAX 2000 int n,m; int arrMAX2; int resMAX; int set; void proc int i,j; int rest; set1; 用来统计集合个数 memsetres,0,n1*sizeofint; resarr00resarr011; fori1;i define MAX 2000 int n,m; int startMAX,endMAX; int res; int arrMAX; int len; int Mempty int i; fori0;i int main int64 i,arr51; int64 num; arr00; arr13; arr26; arr36; fori4;i int mainvoid int i, m, n; int64 a212 1,0,1,0,2,1,6,2; for i 4; i include define MAX 200 int arrMAX4; char strMAX; int letterchar ch ifchA ifarri3arri-123arri3 arri3arri-123; ifarri-13 ifarri1arri-132arri1 arri1arri-132; ifarri2arri-132arri2 arri2arri-132; else ifarri-10 arri1arri-102; arri2arri-102; ifarri-11 arri0arri-111; arri3arri-113; ifarri-12 ifarri1arri-122arri1 arri1arri-122; ifarri2arri-122arri2 arri2arri-122; ifarri-13 ifarri0arri-131arri0 arri0arri-131; ifarri3arri-133arri3 arri3arri-133; min3*MAX; ifletterstrlen-1 ifarrlen-10 tmparrlen-101; iftmp include define MAX 20000 int arrMAX; int main int num,temp,i,flage; int sum,start,end,max-32768; scanf“d“, whilenum0 memsetarr,0,MAX*sizeofint; fori0;i0 flage1; sumarri; ifmax include const double EPS 1e-12; inline void solveint n, int m, double p, double q ifn0 printf“0.00n“; else ifm0 printf“1.00n“; else ifp0.0q1.0 printf“0.00n“; else double lamda q*1-p/p*1-q; iffabslamda-1.0 include define MAX 1000 int arrMAX; long solveint n,int m int i,j; arr01; fori1;i-1;j ifj0ij arrj1; else arrjarrj-1; return arrm; int main 杭州电子科技大学 acm 习题精选 第 16 页 共 21 页 int num; int n,m; scanf“d“, memsetarr,0,MAX*sizeofint; whilenum scanf“dd“, printf“ldn“,solven,m; return 0; 贪心策略 FatMouse Trade Problem Description FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, JavaBean. The warehouse has N rooms. The i-th room contains Ji pounds of JavaBeans and requires Fi pounds of cat food. FatMouse does not have to trade for all the JavaBeans in the room, instead, he may get Ji* a pounds of JavaBeans if he pays Fi* a pounds of cat food. Here a is a real number. Now he is assigning this homework to you tell him the maximum amount of JavaBeans he can obtain. The consists of multiple test cases. Each test case begins with a line containing two non-negative integers M and N. Then N lines follow, each contains two non-negative integers Ji and Fi respectively. The last test case is followed by two -1s. All integers are not greater than 1000. Output For each test case, print in a single line a real number accurate up to 3 decimal places, which is the maximum amount of JavaBeans that FatMouse can obtain. Sample 5 3 7 2 4 3 5 2 20 3 25 18 24 15 15 10 -1 -1 Sample Output 13.333 31.500 include include define MAX 1000 int main 杭州电子科技大学 acm 习题精选 第 17 页 共 21 页 int i,j,m,n,temp; int JMAX,FMAX; double PMAX; double sum,temp1; scanf“dd“, whilem-1 memsetJ,0,MAX*sizeofint; memsetF,0,MAX*sizeofint; memsetP,0,MAX*sizeofdouble; fori0;i define MAX 200 int arrMAX2; int num; void res int i,j; int start; int count0,max-1; forinum-1;inum/2;i ifcountmax maxcount; count1; startarri0; forji-1;j0;j ifarrj1arrj0 arri0arrj0; arrj0arri0-arrj0; arri0arri0-arrj0; 杭州电子科技大学 acm 习题精选 第 19 页 共 21 页 arri1arrj1; arrj1arri1-arrj1; arri1arri1-arrj1; ifarri0arrj0 arrj1arri1-arrj1; arri1arri1-arrj1; res; int main scanf“d“, whilenum prc; scanf“d“, return 0; 几何问题 Rectangles Problem Description Given two rectangles and the coordinates of two points on the diagonals of each rectangle,you have to calculate the area of the intersected part of two rectangles. its sides are parallel to OX and OY . The first line of is 8 positive numbers which indicate the coordinates of four points that must be on each diagonal.The 8 numbers are x1,y1,x2,y2,x3,y3,x4,y4.That means the two points on the first rectangle arex1,y1,x2,y2;the other two points on the second rectangle are x3,y3,x4,y4. Output Output For each case output the area of their intersected part in a single line., accurate up to 2 decimal places. Sample 1.00 1.00 3.00 3.00 2.00 2.00 4.00 4.00 5.00 5.00 13.00 13.00 4.00 4.00 12.50 12.50 Sample Output 1.00 56.25 include void resdouble x1,double y1,double x2,double y2,double x3,double y3,double x4,double y4 double tmpx1,tmpy1,tmpx2,tmpy2; 杭州电子科技大学 acm 习题精选 第 20 页 共 21 页 double tmpx,tmpy; tmpxx1x2; x1x1x2x2x1; x2tmpx-x1; tmpyy1y2; y1y1y2y2y1; y2tmpy-y1; tmpxx3x4; x3x3x4x4x3; x4tmpx-x3; tmpyy3y4; y3y3y4y4y3; y4tmpy-y3; tmpx1x1x3x1x3; tmpx2x2x4x4x2; tmpy1y1y3y1y3; tmpy2y2y4y4y2; iftmpx1 include include using namespace std; int mainvoid int n, x3, y3; double s; scanf“d“, while n swapy0, y1; swapx2, y2; if x2 y2 printf“.3fn“, sqrtpowx0-x1, 2powy0-y1, 2; else s sqrtdouble2.0*x2 x1 - x0 y2*y2-1/2.0 - x2*x21/2.0; for ; x2 y2; x2 s sqrtdouble2*x2*x22*x21; printf“.3fn“, s; return 0;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501450.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA入门级教学之(文档里的is-a、is-like-a、has-a到底是什么意思)

1.is-a:【什么什么是】 描述的是一个继承关系 2.is-like-a:【什么什么像】 描述的是一个接口关系 3.has-a:【什么什么包含】 描述的是一个关联关系

c语言死循环中输入字符,如下代码,如果输入字符,为什么会造成死循环?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼上面代码有误,本来switch语句是接收int型的,有死循环;有人建议改成接收字符,上面没改完全,现在改完全了,但是会重复输出,输出如下*** ACME checkbo…

python 字符转义_2500字 字符串专题总结

我的完整施工计划已完成专题:1.我的施工计划2.数值专题这篇是字符串专题总结除了常见的数值型,字符串是另一种常遇到的类型。一般使用一对单引号或一对双引号表示一个字符串。字符串中如果遇到 \ 字符,可能是在做字符转义,所谓的转…

JAVA入门级教学之(异常机制的原理到底是什么)

* 1.异常是什么? * * 第一:异常模拟的是现实世界中"不正常的"事件 * * 第二:java中采用"类"的形式去模拟异常 * * 第三:类是可以创建对象的 * * 例如&#xff1…

python修改列表指定位置的_Python 基础教程—列表(1)

Python内置了多种序列,本次讨论:列表。列表是Python提供的容器型数据类型。可变并且有序。可变 - 列表中的每个元素的值可变,列表的长度可变,列表中的顺序可变。(支持增、删、改)有序 - 每个元素可以通过下标来确定位置1、 列表的…

JAVA入门级教学之(深入throws的异常抛出机制)

package com.lbj.javase23; import java.io.*;public class ExceptionTest04 {public static void main(String[] args) throws FileNotFoundException{//使用throws处理异常不是真正处理异常而是推卸责任,谁调用就上抛给谁//上面的m1方法如果出现了异常&#xff0c…

android 代码 shape,Android Shape控件美化实现代码

如果你对Android系统自带的UI控件感觉不够满意,可以尝试下自定义控件,我们就以Button为例,很早以前Android123就写到过Android Button按钮控件美化方法里面提到了xml的selector构造。当然除了使用drawable这样的图片外今天Android开发网谈下自…

操作系统之(一篇文章让你简单搞定:什么是进程和线程)

文章目录1.为什么引入进程2.进程究竟是什么?进程的定义和属性:3.进程的状态和转换4.什么是进程上下文5.进程的控制和管理6.为什么要引入线程7.线程的概念8.引入线程的好处9.进程和线程的区别1.为什么引入进程 1、我们知道,最早出现的OS系统是…

冒泡和快速排序的时间复杂度_八大排序算法性能分析及总结

一、排序算法说明排序的定义&#xff1a;对一个无序的序列进行排序的过程。输入&#xff1a;n个数&#xff1a;a1,a2,a3,…,an。输出&#xff1a;n个数的排列:a1,a2,a3,…,an&#xff0c;使得a1<a2<a3<…<an。排序的稳定性&#xff1a;相同值的节点相对位置是否会发…

同步android wear音乐,Android Wear首次更新:添加离线音乐 GPS功能等

凤凰科技讯 北京时间10月24日消息&#xff0c;据科技博客TechCrunch报道&#xff0c;Android Wear日前迎来了其发布后的首次大更新。谷歌为这一可穿戴设备的操作系统添加了离线音乐、蓝牙耳机以及GPS定位等功能。此次更新意味着&#xff0c;当你出去慢跑但将智能手表落在家里的…

JAVA入门级教学之(异常的处理try...catch)

* 处理异常的第二种方式&#xff1a;捕捉 try{}catch(){} * * 语法&#xff1a; * try{ * 可能出现异常的代码; * } * catch(异常类型1 变量){ * 处理异常的代码; * } * catch(异常类型2 变量…

docker 挂载目录_Docker容器数据管理

在Docker容器内部创建的文件默认存储在可写的容器层&#xff0c;容易产生几个问题:当容器不存在时&#xff0c;数据文件不能持久化&#xff0c;同时这些数据文件不方便在容器之外被其他进程使用。当容器运行的时候容器可写层严重依赖宿主机&#xff0c;不能轻易移动这些数据文件…

android 获取应用列表,获取全部应用列表

有时需对已安装的应用进行管理 &#xff0c; 这里我简单的写了获取应用程序列表。代码如下&#xff1a;package com.lml.applicationtest;import java.util.List;import android.app.Activity;import android.content.Context;import android.content.pm.PackageInfo;import an…

IndexNotReadyException: Please change caller according to com.intellij.openapi.project.IndexNotReady

打开AS有时会报这个错&#xff0c;之前没怎么在意&#xff0c;因为完全没影响&#xff0c;但是看起来标红就很难受&#xff0c;总觉得认真有强迫症的程序员才是好的程序员&#xff0c;所以特意查了解决办法&#xff0c;也很简单&#xff0c;就点击Files----->Invalidate and…

java数组有跨类建立对象_必会的 55 个 Java 性能优化细节!一网打尽!

程序员的成长之路互联网/程序员/成长/职场 关注阅读本文大概需要 10 分钟。来源&#xff1a;https://yq.aliyun.com/articles/662001在 Java 程序中&#xff0c;性能问题的大部分原因并不在于 Java 语言&#xff0c;而是程序本身。养成良好的编码习惯非常重要&#xff0c;能够显…

android平板截屏方法,Android 各种截屏方法

1 应用内截屏(无SurfaceView, TextureView)boolean cacheEnable captureView.isDrawingCacheEnabled();captureView.setDrawingCacheEnabled(true);captureView.buildDrawingCache();Bitmap bitmap captureView.getDrawingCache();cache[0] Bitmap.createBitmap(bitmap);cap…

android string 去掉斜杠,Android – PATH中的改装和斜杠字符

我正在面临一个与Retrofit的问题,并希望找到一个合适的答案,作为唯一的方式,我可以想到它是相当丑陋和不实际.Retrofit PATH注释在开始时需要一个“/”(你可以从这个从库中提取的代码中读取&#xff1a;/** Loads {link #requestUrl},{link #requestUrlParamNames},and {link #…

新手操作HTML

一、 首先得学会使用HTML5-API手册&#xff0c;因为HTML的属性有很多很多&#xff0c;如果将这些属性全部记下来的话得不偿失&#xff0c;需要花费大量的时间和经历&#xff0c;因此我们需要学会使用这个帮主文档才能全面而深入的了解HTML&#xff1b; 就像你去找对象一样&am…

nginx 判断手机端跳转_nginx基本功能和工作原理

nginx能做什么反向代理正向代理负载均衡HTTP服务器(包含动静分离)反向代理和正向代理1.正向代理简单的说,我是一个用户,我无法直接访问一个网站,但是我能访问一个代理服务器,这个代理服务器能访问那个我不能访问的网站,于是我先连上代理服务器,告诉它我需要那个无法访问网站的内…

Node.js教程-express框架

概述 Express是基于Node.js平台(建立在Node.js内置的http模块上)&#xff0c;快速、开放、极简的Web开发框架。 中文官网 http://www.expressjs.com.cn/。 Github地址&#xff1a;https://github.com/orgs/expressjs。 Express核心特性&#xff1a; 可设置中间件来响应 HTTP…