热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

C语言acm竞赛习题集锦.doc杭州电子科技大学acm习题精选第1页共21页目录1、数塔问题22、并查集类问题43、递推类问题94、动态规划系列105、概率类题型136、组合数学类

253b171540df25e1b84436cbe50dfc72.gifC语言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;



推荐阅读
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 题面:P3178[HAOI2015]树上操作好像其他人都嫌这道题太容易了懒得讲,好吧那我讲。题解:第一个操作和第二个操作本质上是一样的&# ... [详细]
  • 在学习了Splay树的基本查找功能后,可能会觉得它与普通的二叉查找树没有太大的区别,仅仅是通过splay操作减少了时间开销。然而,Splay树之所以被誉为“序列之王”,主要在于其强大的区间操作能力。 ... [详细]
  • Gradle 是 Android Studio 中默认的构建工具,了解其基本配置对于开发效率的提升至关重要。本文将详细介绍如何在 Gradle 中定义和使用共享变量,以确保项目的一致性和可维护性。 ... [详细]
  • 来自FallDream的博客,未经允许,请勿转载,谢谢。一天一套noi简直了.昨天勉强做完了noi2011今天教练又丢出来一套noi ... [详细]
  • HDU 2537 键盘输入处理
    题目描述了一个名叫Pirates的男孩想要开发一款键盘输入软件,遇到了大小写字母判断的问题。本文提供了该问题的解决方案及实现方法。 ... [详细]
  • 如何使用Maven将依赖插件一并打包进JAR文件
    本文详细介绍了在使用Maven构建项目时,如何将所需的依赖插件一同打包进最终的JAR文件中,以避免手动部署依赖库的麻烦。 ... [详细]
  • Hadoop MapReduce 实战案例:手机流量使用统计分析
    本文通过一个具体的Hadoop MapReduce案例,详细介绍了如何利用MapReduce框架来统计和分析手机用户的流量使用情况,包括上行和下行流量的计算以及总流量的汇总。 ... [详细]
  • 本文总结了 #define 在 C/C++ 编程中的多种用途和技巧,包括定义常量、函数、宏以及条件编译等,并提供了详细的示例和注意事项。 ... [详细]
  • 本文详细介绍如何在SSM(Spring + Spring MVC + MyBatis)框架中实现分页功能。包括分页的基本概念、数据准备、前端分页栏的设计与实现、后端分页逻辑的编写以及最终的测试步骤。 ... [详细]
  • 【MySQL】frm文件解析
    官网说明:http:dev.mysql.comdocinternalsenfrm-file-format.htmlfrm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果 ... [详细]
  • Java连接MySQL数据库的方法及测试示例
    本文详细介绍了如何安装MySQL数据库,并通过Java编程语言实现与MySQL数据库的连接,包括环境搭建、数据库创建以及简单的查询操作。 ... [详细]
  • 本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]
  • 本文探讨了一种常见的C++面试题目——实现自己的String类。通过此过程,不仅能够检验开发者对C++基础知识的掌握程度,还能加深对其高级特性的理解。文章详细介绍了如何实现基本的功能,如构造函数、析构函数、拷贝构造函数及赋值运算符重载等。 ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
author-avatar
UP7家族--婵婵_172
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有