The 5th(2010) ACM Programming Contest of HUST

为了练习java和近来结冰的脑子,做了做这套题,下面简略的总结下

题目地址:http://acm.hust.edu.cn/thx/contest.php?cid=1075

A:

题目描述:定义两类函数D(x)和F(x)

其中D(x)表示x的数字位

如果 x<10 F(x)=x 否则F(x)=F(D(x))

做法:直接暴力

 

B:

题目描述:对于两瓶k级的药,可以合成1瓶k+1级的药

给定一个N,表示N个等级,给定一个f表示卖价是买价的f倍

给定N个数,表示每个等级的买价

做法:枚举相邻的比较 pre*2与 now*f的大小关系即可

 

C:

呜呜不会~~

 

D:

题目描述:给定n个人,m件糖

给出n个人对糖果的个数的需求范围[L[i],R[i]]

求有多少种方案

做法:DP

dp[i][j]表示前i个人用了j件糖果的方案数

那么对于i这个人dp[i][j]=sum(dp[i-1][k])(max(0,j-R[i])<=k<=j-L[i])

转移可以用树状数组或者线段树优化,也可以预处理出来

复杂度n*m

 

E:

饿就是一个排序的模拟,按成绩算排名

 

F:

我采用的是非完美的算法

详细请点击http://blog.csdn.net/foreverlin1204/archive/2011/01/11/6128197.aspx

 

G:

挺不错的一个数学题,暂时还没做出来

大概意思是:给定n个三维点(n<=10000)

对于三个不同的点组成的点对i,j,k

                 |x[i],y[i],z[i]|

det[i,j,k]= |x[j],y[j],z[j]|

                |x[k],y[k],z[k]|

如果行列式值是3的倍数则计数器++

问总共有多少对,欢迎和我探讨

 

H:

按照题目给的公式算就可以了

 

I:

一个概率期望题

详细请点击http://blog.csdn.net/foreverlin1204/archive/2010/12/20/6087335.aspx

 

J:

题目描述:给定一棵树,求每个点的孩子数

分析:dfs一遍即可

 

K:

求四面体体积

详细请点击http://blog.csdn.net/foreverlin1204/archive/2011/01/08/6124184.aspx

 

L:

给定n个数字的序列,给定m个操作

有两类:(1)交换位置在x和y上的两个元素(2)交换值为x和y的两个元素

设定a[i]表示位置i上的值, b[i]表示值为i的位置,构建双映射维护即可

 

个人推荐,比较有意思的三题:F G I

以上基本上代码都是用java写的,从中发现了不少的问题,对我这个java菜鸟而言

比如排序规则,比如如何正确使用容器,比如何时要用public static不能乱用,特别是类成员

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
《Android编程:The Big Nerd Ranch指南(第5版)》是一本针对Android编程的权威指南。这本书由Phillips、Stewart和Marsicano三位经验丰富的作者撰写,并由Big Nerd Ranch出版,对于想要学习和掌握Android编程的读者来说是一本必备的参考书。 这本书的第5版是一本全面更新和改进的指南,以帮助读者掌握最新的Android编程技术。它深入介绍了Android的核心概念和最佳实践,从而帮助读者全面了解Android应用的开发过程。 这本书以互动式的方式逐步引导读者进行Android应用开发,从创建一个简单的"Hello World"应用开始,逐渐深入介绍不同方面的开发技术,包括界面设计、数据存储和管理、网络通信、多媒体和设备功能等。 它采用了清晰明了的语言和丰富的示例代码,帮助读者理解和实践各种概念和技术。此外,这本书还通过挑战性练习和应用案例来培养读者的实际编程能力和解决问题的能力。 该书还引入了与现代开发实践相关的最新主题,例如响应式编程、单元测试和持续集成等。这些主题使读者能够更好地开发和维护高质量的Android应用。 总的来说,《Android编程:The Big Nerd Ranch指南(第5版)》是一本重要的Android编程指南,对于想要学习和应用这一技术的读者来说具有很高的实用价值。无论是初学者还是有经验的开发者,都可以通过这本书提供的深入理论和实践指导,加强他们的Android编程技能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值